Gentoo Archives: gentoo-amd64

From: Marc Joliet <marcec@×××.de>
To: gentoo-amd64@l.g.o
Subject: Re: [gentoo-amd64] Systemd migration: opinion and questions
Date: Wed, 20 May 2015 08:01:26
Message-Id: 20150520100113.1c44169f@marcec
In Reply to: [gentoo-amd64] Systemd migration: opinion and questions by Marc Joliet
1 Hi,
2
3 it's been a while, but there are a few things to report. So here it goes:
4
5 Am Tue, 24 Feb 2015 21:15:45 +0100
6 schrieb Marc Joliet <marcec@×××.de>:
7
8 [...]
9 > == Network migration on my desktop ==
10 >
11 > My desktop has a somewhat more complicated network setup than the laptop (which
12 > uses NetworkManager). The wan0 network device is no problem, but I also have a
13 > bridge with one physical device connected to it, and one dummy device.
14 >
15 > Thus, I had to migrate my netifrc based configuration. Due to word of mouth, I
16 > decided on netctl. I originally ignored systemd-networkd because I keep
17 > hearing that it's only for simple networks, but after looking at the man page
18 > it appears that it can do (almost) everything that I needed it to, although I'm
19 > not sure about dummy device support. I need that for MATLAB, which stupidly
20 > requires the presence of an interface named eth0, whose MAC address it verifies
21 > during its licence check. This became a problem after renaming my network
22 > devices following the news entry 2013-03-29-udev-upgrade ("Upgrading udev to
23 > version >=200").
24 >
25 > What surprised me was that netifrc doesn't seem to integrate dummy devices
26 > properly, i.e., it doesn't seem to be possible to rename them in
27 > /etc/conf.d/net directly. I implemented that via an appropriate call to ip in
28 > an /etc/local.d file, and had "net.eth0" depend on "local". So /etc/conf.d/net
29 > looked like this:
30 >
31 > config_eth0="172.16.1.1/24"
32 > mac_eth0="00:18:f3:97:17:72"
33 > rc_net_eth0_provide="!net"
34 > rc_net_eth0_need="local"
35 >
36 > And the local.d script executed
37 >
38 > ip link set dev dummy0 name eth0
39 >
40 > In comparison, the netctl configuration has everything in one place:
41 >
42 > # cat /etc/netctl/dummy
43 > Description='A dummy interface (for MATLAB)'
44 > Interface=eth0
45 > Connection=dummy
46 > IP=static
47 > Address=172.16.1.1
48 > IPCustom=( 'link set dev eth0 address 00:18:f3:97:17:72' )
49 >
50 > It also takes care of loading the dummy kernel module, so I don't don't need an
51 > /etc/modules-load.d/ entry, whereas with netifrc/OpenRC I needed to load it
52 > manually via /etc/conf./modules (though maybe that has changed?).
53
54 A few days ago I finally got around to giving systemd-networkd a whirl, as I
55 said I would in the sub-thread started by Rich. It turns out that it fulfils
56 the needs of my computers just fine, and has (together with systemd-resolved)
57 fully replaced netctl. The only thing I'm not sure of is how extensive IPv6
58 support is. The man page suggests that only DHCPv6 is supported, but not
59 stateless configuration. Not that my LAN has IPv6, but it'd be nice to know
60 how future proof it is.
61
62 (This was made a tiny bit easier since I recently got rid of most of the server
63 functionality of my desktop, i.e., it has stopped acting as a router. So I'm
64 only using the built-in ethernet port now, and will remove the other soon.)
65
66 I also switched the laptop over, which was using NetworkManager, but now uses
67 wpa_supplicant directly with systemd-networkd on top (basically swapping out
68 one upper layer for another). It required a small bit of configuration so that
69 wpa_gui had a socket to connect to, and so that it could save the configuration
70 file, but that was just two additional lines (along with two minimal *.network
71 files, although now that I think about it I'm not even sure whether they're
72 needed). It appears to work as fine as it did when running NetworkManager, so
73 I'm happy to be rid of NM.
74
75 One thing I noticed about systemd-networkd is that it, too, follows the theme
76 of being designed around dynamic changes, namely network/device
77 addition/removal. This becomes apparent when you learn that you can use wild
78 cards to match devices. For example, when using the new udev network device
79 naming scheme (aka "predictable names"), "en*" matches all ethernet ports and
80 "wl*" matches all wireless ports. So that's interesting, I think, and I'm
81 curious to see how systemd-networkd will evolve.
82
83 I would now like to take a moment to mourn the unmerging of dhcpcd, which
84 fulfilled its task of configuring the IP address (and other associated tasks) of
85 my computers marvellously for over 8 years (first emerged on: Wed Jan 10
86 14:44:09 2007).
87
88 Done? Great, now let's celebrate the unmerging of NetworkManager :-D .
89 *phweeee* *balloon popping* *other generic party sounds*
90
91 > == Stuff I liked ==
92 >
93 [...]
94 > == Questions ===
95 >
96 > === ACPID: needed or not? ===
97 >
98 > Does acpid provide anything that systemd does not, and if so, what kind of
99 > "conflicts" might I see? The Gentoo Wiki page says that acpid is likely not
100 > needed.
101 >
102 > FWIW, I already unmerged it and have not noticed any missing functionality,
103 > even after over a week of regular usage. So I'm tending towards "no, not
104 > needed".
105
106 I have not noticed anything amiss in the many months I have been using my
107 systems without acpid. So my "tendency" has morphed into "assuredness".
108
109 > === Timers ===
110 >
111 > Can a systemd timer depend on a mount point such that it waits until the mount
112 > point exists before running? Or will it fail after a timeout? I want to
113 > research this myself, but haven't gotten around to it yet.
114 >
115 > The problem I have is that my external HDD does not come up properly on cold
116 > boot, so that I have to unplug it and plug it back in in order for the kernel
117 > to fully initialise it and for it to mount, which is problematic for my backup
118 > fcron jobs, since they have &bootrun set. This means that the backup script
119 > will fail, unless I'm a) fast enough at re-plugging the HDD, and b) fast enough
120 > at logging in (so that my automounter mounts the HDD. I will then have to
121 > manually re-run it (i.e., fcrondyn -x "run <ID>") or wait for the next time
122 > it's supposed to run.
123 >
124 > Naturally, I would like a more robust system than that, and hope that systemd
125 > timers can make my life easier here.
126
127 I ended up asking specifically about the HDD problem on gentoo-user, and was
128 redirected to the linux-usb ML. I already mentioned the final diagnosis on
129 gentoo-user, but haven't repeated it here yet:
130
131 "After diagnosing the problem with the help of Alan Stern and Matthew
132 Dharm, the conclusion was that the sector size translation must be
133 triggered by some interaction between the drive and the BIOS. The test I
134 performed to determine this was:
135
136 - unplug the drive,
137 - turn on the computer,
138 - plug the drive in once GRUB has started, and
139 - boot the kernel,
140
141 after which the drive worked fine. So this does not seem to be anything
142 that can be fixed in the kernel. Perhaps if I had an EFI compatible
143 mainboard, I wouldn't be seeing this problem, but I don't, so I can't even
144 try it out :-/ ."
145
146 So, as sad as it is, my "solution" is to follow those four basic steps whenever
147 I turn my computer on, and then I don't get any problems.
148
149 [...]
150 > === Suspend on the desktop ===
151 >
152 > Like I mentioned above, my Desktop can *almost* suspend reliably, after trying
153 > it out once every year or two (it's over 8 years old). Mostly it would just
154 > not wake back up. The latest status (before systemd) was that the kernel
155 > crashed after waking up (but I think that was a known bug that was fixed in the
156 > meantime).
157 >
158 > Now with systemd, it wakes back up properly, but one of the soundcard drivers
159 > (ice1724) is apparently unreliable, so that sound stops working after wakeup.
160 > Plus, access to the soundcard was blocked by rtkit. I believe what one would
161 > normally do is unload the module before suspending, but the only way I could
162 > find to tell systemd to do that requires creating a file in /usr (as done here,
163 > for example: http://forums.fedoraforum.org/showthread.php?t=294065). Is there
164 > a better way?
165
166 Well, I ended up doing this, and suspend/resume *almost* works, but still not
167 quite: I couldn't access my USB3 HDD as a regular user anymore after resume, and
168 it seems that my desktop shuts itself off after a while. Although maybe that
169 has to do with the empty CMOS battery? Or a failed hibernation attempt? Just
170 some random ideas.
171
172 Again, I'm not pushing this, I'm just trying it out every now and then. My
173 main motivation here is to waste as little electricity as is possible with this
174 old desktop. What I would like to be able to do is to pause whatever I'm
175 doing, suspend, do something else for a while, and then resume, *without*
176 having to restart applications. (Even better would be to buy a new, more energy
177 efficient computer, but I cannot afford that right now.)
178
179 @Duncan: it seems to me that the btrfs RAID has yet to be a problem during
180 resume (doesn't mean it won't be, but that's what I've seen so far).
181
182 [...]
183
184 Greetings
185 --
186 Marc Joliet
187 --
188 "People who think they know everything really annoy those of us who know we
189 don't" - Bjarne Stroustrup

Replies

Subject Author
[gentoo-amd64] Re: Systemd migration: opinion and questions Duncan <1i5t5.duncan@×××.net>