]> www.opopop.net Git - reminder/blob - Debian_Jessie_with_eudev_instead_of_udev_from_systemd.mdwn
(no commit message)
[reminder] / Debian_Jessie_with_eudev_instead_of_udev_from_systemd.mdwn
1 ## Introduction
2
3 At the end of that previous page [Avoid systemd on Debian Jessie with
4 Mate](http://www.opopop.net/Avoid_systemd_on_Debian_Jessie_with_Mate/),
5 I noticed that eliminating *systemd* won't be fully accomplished
6 without also using an alternative to *udev*.
7
8 I will show here that it is possible to use *eudev* to reach that
9 goal. *eudev* is originally a Gentoo project, and it has been packaged
10 for the latest Devuan distribution, see that
11 [announcement](https://dev1galaxy.org/viewtopic.php?id=1888). So it
12 should be easy to port that for straight Debian.
13
14 ## Modification to source code
15
16 I started with source code version 3.2.5-1 from the latest Devuan. The
17 goal is to obtain a smooth upgrade from the *udev* and *libudev*
18 packages in Jessie (as it is what I am using). To ensure that, the new
19 packages will provide the old names.
20
21 For your convenience, all of the source files and the .deb packages
22 (for i386) are here:
23
24 If you have installed the needed development packages, it's easy to
25 rebuild files "libeudev1_3.2.5-1bu1_i386.deb" and
26 "eudev_3.2.5-1bu1_i386.deb" with these simple commands:
27
28     # the 4 source files have to be downloaded in your current working directory
29     dpkg-source -x eudev_3.2.5-1bu1.dsc
30     cd eudev-3.2.5
31     dpkg-buildpackage -rfakeroot
32     cd ..
33
34 Notice that .udev packages and a development package of libeudev1 are also
35 generated in the process.
36
37 To install the two packages, you will need some local package repository. An easy
38 method to do it is to run:
39
40     mkdir -p ~/my-repo/dists/jessie/main/binary-i386
41     mv libeudev1_3.2.5-1bu1_i386.deb eudev_3.2.5-1bu1_i386.deb ~/my-repo/
42     dpkg-scanpackages ~/my-repo /dev/null | gzip > ~/my-repo/dists/jessie/main/binary-i386/Packages.gz
43
44 Notice that "dpkg-scanpackages" is available through package
45 *dpkg-dev*.
46
47 Then add line (if you are user "joe"):
48
49     deb file:/home/joe/my-repo/ jessie main 
50
51 to /etc/apt/sources.list and update the available packages in aptitude
52 to take the content of your local repository into account.
53
54 You can then try to upgrade to the new *eudev* and *libeudev* with
55 aptitude. You will get a conflict. Choose to solve it by suppressing
56 *udev* and *libudev*, proceed with the upgrade and you are done! There
57 will be some warnings during the installation because we are playing
58 hard with the package versioning system, but they are harmless.
59
60 ## Final remarks
61
62 It should be obvious, but the process above is intended for a Jessie
63 system without systemd as the init process. Actually it has only be
64 tested in that framework.
65
66 The only issue encountered was about firmare loading. The Jessie
67 kernel 3.16 handles radeon uvd in a way which makes me loose
68 resume/suspend. So I suppressed the needed firmware file. This
69 triggers a futile attempt (because the file is not there) at
70 user-space firmware loading. But with *eudev*, which lacks user-space
71 firmware loading, this leads to a 60s delay in the boot process.
72
73 I will not add user-space firmware loading to *eudev*, as it is
74 considered obsolete by the kernel people. Instead, you can either:
75
76 1) reduce the 60s delay by inserting for instance:
77
78     echo 5 > /lib/class/firmware/timeout
79
80 before the 'udevadm settle' command in /etc/init.d/eudev
81
82 2) upgrade to a better radeon driver, for instance the one of kernel
83 4.9 from jessie-backport
84
85 I have finally chosen solution 2).