8.74.1. Installation d'Udev
Udev fait partie du paquet systemd-254. Utilisez le fichier
systemd-254.tar.xz comme archive des sources.
Supprimez deux groupes inutiles, render
et sgx
des règles udev par défaut :
sed -i -e 's/GROUP="render"/GROUP="video"/' \
-e 's/GROUP="sgx", //' rules.d/50-udev-default.rules.in
Supprimez une règle udev requise pour une installation Systemd
complète :
sed '/systemd-sysctl/s/^/#/' -i rules.d/99-systemd.rules.in
Préparez la compilation d'Udev :
mkdir -p build
cd build
meson setup \
--prefix=/usr \
--buildtype=release \
-Dmode=release \
-Ddev-kvm-mode=0660 \
-Dlink-udev-shared=false \
..
Voici la signification des options meson :
-
--buildtype=release
-
Ce paramètre remplace le type de construction par défaut
(« debug »), qui produit des binaires
non optimisés.
-
-Dmode=release
-
Désactive certaines fonctionnalités considérées comme
expérimentales par les développeurs en amont.
-
-Ddev-kvm-mode=0660
-
La règle udev par défaut permet à tous les utilisateurs
d'accéder à /dev/kvm
. Les
auteurs pensent que cela est dangereux. Cette option change
cela.
-
-Dlink-udev-shared=false
-
Cette option évite qu'udev ne se lie à la bibliothèque
interne partagée de systemd, libsystemd-shared
. Cette bibliothèque est
conçue pour être partagée par plusieurs composants Systemd ce
qui est excessif poru une installation d'udev seulement.
Ne construisez que les composants nécessaires pour udev :
ninja udevadm systemd-hwdb \
$(grep -o -E "^build (src/libudev|src/udev|rules.d|hwdb.d)[^:]*" \
build.ninja | awk '{ print $2 }') \
$(realpath libudev.so --relative-to .)
Supprimez une règle udev qui nécessite une installation Systemd
complète :
rm rules.d/90-vconsole.rules
Installez le paquet :
install -vm755 -d {/usr/lib,/etc}/udev/{hwdb,rules}.d
install -vm755 -d /usr/{lib,share}/pkgconfig
install -vm755 udevadm /usr/bin/
install -vm755 systemd-hwdb /usr/bin/udev-hwdb
ln -svfn ../bin/udevadm /usr/sbin/udevd
cp -av libudev.so{,*[0-9]} /usr/lib/
install -vm644 ../src/libudev/libudev.h /usr/include/
install -vm644 src/libudev/*.pc /usr/lib/pkgconfig/
install -vm644 src/udev/*.pc /usr/share/pkgconfig/
install -vm644 ../src/udev/udev.conf /etc/udev/
install -vm644 rules.d/* ../rules.d/{*.rules,README} /usr/lib/udev/rules.d/
install -vm644 hwdb.d/* ../hwdb.d/{*.hwdb,README} /usr/lib/udev/hwdb.d/
install -vm755 $(find src/udev -type f | grep -F -v ".") /usr/lib/udev
Installez certaines règles personnalisées et autres fichiers
auxiliaires utiles dans un environnement LFS :
tar -xvf ../../udev-lfs-20230818.tar.xz
make -f udev-lfs-20230818/Makefile.lfs install
Installez les pages de manuel :
tar -xf ../../systemd-man-pages-254.tar.xz \
--no-same-owner --strip-components=1 \
-C /usr/share/man --wildcards '*/udev*' '*/libudev*' \
'*/systemd-'{hwdb,udevd.service}.8
sed 's/systemd\(\\\?-\)/udev\1/' /usr/share/man/man8/systemd-hwdb.8 \
> /usr/share/man/man8/udev-hwdb.8
sed 's|lib.*udevd|sbin/udevd|' \
/usr/share/man/man8/systemd-udevd.service.8 \
> /usr/share/man/man8/udevd.8
rm /usr/share/man/man8/systemd-*.8