wiki / dev / replacing-udev Edit this page
Edited (dd5dc13) at 2021-05-27 by Dilyn Corner
REPLACING UDEV
________________________________________________________________________________
As of the 20/01/2020, it is now possible to replace eudev with libudev-zero and
the device manager of your choosing. This Wiki page will cover replacing eudev
with busybox mdev, however the steps are more or less the same for all other
device managers (smdev, vdev, ...).
BENEFITS
________________________________________________________________________________
- Use any device manager, swap between them or use none at all.
- Alternatives are simpler and lighter.
- Faster boot process.
PURGING EUDEV
________________________________________________________________________________
* Disable the udevd service
# unlink /var/service/udevd
* Remove the eudev package
The removal is forced as the packages which depend on eudev will be rebuilt.
$ KISS_FORCE=1 kiss r eudev
* Generate a list of all packages which need to be rebuilt
$ kiss-revdepends eudev
libinput/depends:eudev
xorg-server/depends:eudev
* Build libudev-zero
$ kiss b libudev-zero && kiss i libudev-zero
* Rebuild all required packages
NOTE: Some packages may have a mandatory dependency on eudev. You may receive
errors when attempting to rebuild them. Simply re-install eudev until
you are able to investigate further.
NOTE: If the package manager pulls in eudev as part of the rebuild process,
the package you are trying to rebuild has a mandatory dependency on
eudev (and you cannot continue this exercise).
$ kiss b libinput xorg-server
* Verify that the eudev dependence is gone
The following command should output nothing. If it does not, the outputted
packages require a rebuild.
$ kiss-revdepends eudev
CHANGING DEVICE MANAGERS
________________________________________________________________________________
* busybox mdev
Simply enable the `mdev` service.
# ln -s /etc/sv/mdev/ /var/service
* uevent helper (Alternate method)
Modify your KISS hook to install the uevent helper with libudev-zero:
+--------------------------------------------------------------------------+
| |
| case $TYPE in |
| post-build) |
| case "$PKG" in |
| libudev-zero) |
| "${CC:-cc}" contrib/helper.c -o helper |
| install -Dm755 helper "$DEST/usr/bin/uevent-helper" |
| ;; |
| esac |
| |
+--------------------------------------------------------------------------+
Enable CONFIG_UEVENT_HELPER in your kernel configuration and set
CONFIG_UEVENT_HELPER_PATH to /usr/bin/uevent-helper.
Alternatively, the uevent helper path can be set by the init system.
# echo "/bin/echo /usr/bin/uevent-helper <dir> > /proc/sys/kernel/hotplug"
# > /etc/rc.d/uevent-helper.boot
Replace <dir> with the path where you want the uevent files to be stored, or
leave it empty to use the default path.
* Other device managers
Open an issue in $/kiss-community/init as the init scripts will need support
for other device managers.
REBOOT
________________________________________________________________________________
If all went well, you should now be using mdev as your device manager while
retaining a fully working graphical environment with hotplugging functionality.
If input doesn't work under Xorg, refer to the Xorg log file for information.
________________________________________________________________________________
This site is an archive of a previous version of KISS's website. The current
version can be found at https://kisslinux.org/.
Dylan Araps (C) 2019-2020
kiss-community (C) 2020-2021
Dilyn Corner (C) 2021
Linux(R) is the registered trademark of Linus Torvalds in the U.S. and
other countries.