X-Git-Url: http://www.opopop.net/cgi-bin/gitweb.cgi?p=reminder;a=blobdiff_plain;f=Debian_Jessie_with_eudev_instead_of_udev_from_systemd.mdwn;h=0e9fad90b999cb796a964360083d4abac8941a94;hp=0000000000000000000000000000000000000000;hb=3e13060ac57a0aaf0f2a26229a01fa1707bdf897;hpb=aac90c34e3acddbf9471bf0307a2a149beada173 diff --git a/Debian_Jessie_with_eudev_instead_of_udev_from_systemd.mdwn b/Debian_Jessie_with_eudev_instead_of_udev_from_systemd.mdwn new file mode 100644 index 0000000..0e9fad9 --- /dev/null +++ b/Debian_Jessie_with_eudev_instead_of_udev_from_systemd.mdwn @@ -0,0 +1,85 @@ +## Introduction + +At the end of that previous page [Avoid systemd on Debian Jessie with +Mate](http://www.opopop.net/Avoid_systemd_on_Debian_Jessie_with_Mate/), +I noticed that eliminating *systemd* won't be fully accomplished +without also using an alternative to *udev*. + +I will show here that it is possible to use *eudev* to reach that +goal. *eudev* is originally a Gentoo project, and it has been packaged +for the latest Devuan distribution, see that +[announcement](https://dev1galaxy.org/viewtopic.php?id=1888). So it +should be easy to port that for straight Debian. + +## Modification to source code + +I started with source code version 3.2.5-1 from the latest Devuan. The +goal is to obtain a smooth upgrade from the *udev* and *libudev* +packages in Jessie (as it is what I am using). To ensure that, the new +packages will provide the old names. + +For your convenience, all of the source files and the .deb packages +(for i386) are here: + +If you have installed the needed development packages, it's easy to +rebuild files "libeudev1_3.2.5-1bu1_i386.deb" and +"eudev_3.2.5-1bu1_i386.deb" with these simple commands: + + # the 4 source files have to be downloaded in your current working directory + dpkg-source -x eudev_3.2.5-1bu1.dsc + cd eudev-3.2.5 + dpkg-buildpackage -rfakeroot + cd .. + +Notice that .udev packages and a development package of libeudev1 are also +generated in the process. + +To install the two packages, you will need some local package repository. An easy +method to do it is to run: + + mkdir -p ~/my-repo/dists/jessie/main/binary-i386 + mv libeudev1_3.2.5-1bu1_i386.deb eudev_3.2.5-1bu1_i386.deb ~/my-repo/ + dpkg-scanpackages ~/my-repo /dev/null | gzip > ~/my-repo/dists/jessie/main/binary-i386/Packages.gz + +Notice that "dpkg-scanpackages" is available through package +*dpkg-dev*. + +Then add line (if you are user "joe"): + + deb file:/home/joe/my-repo/ jessie main + +to /etc/apt/sources.list and update the available packages in aptitude +to take the content of your local repository into account. + +You can then try to upgrade to the new *eudev* and *libeudev* with +aptitude. You will get a conflict. Choose to solve it by suppressing +*udev* and *libudev*, proceed with the upgrade and you are done! There +will be some warnings during the installation because we are playing +hard with the package versioning system, but they are harmless. + +## Final remarks + +It should be obvious, but the process above is intended for a Jessie +system without systemd as the init process. Actually it has only be +tested in that framework. + +The only issue encountered was about firmare loading. The Jessie +kernel 3.16 handles radeon uvd in a way which makes me loose +resume/suspend. So I suppressed the needed firmware file. This +triggers a futile attempt (because the file is not there) at +user-space firmware loading. But with *eudev*, which lacks user-space +firmware loading, this leads to a 60s delay in the boot process. + +I will not add user-space firmware loading to *eudev*, as it is +considered obsolete by the kernel people. Instead, you can either: + +1) reduce the 60s delay by inserting for instance: + + echo 5 > /lib/class/firmware/timeout + +before the 'udevadm settle' command in /etc/init.d/eudev + +2) upgrade to a better radeon driver, for instance the one of kernel +4.9 from jessie-backport + +I have finally chosen solution 2).