]> www.opopop.net Git - reminder/blobdiff - Debian_Jessie_with_eudev_instead_of_udev_from_systemd.mdwn
(no commit message)
[reminder] / Debian_Jessie_with_eudev_instead_of_udev_from_systemd.mdwn
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 (file)
index 0000000..0e9fad9
--- /dev/null
@@ -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).