From 2203e654b389586650d553251b04544a34f189bf Mon Sep 17 00:00:00 2001 From: Sn4il Date: Mon, 2 Sep 2024 15:54:35 +0300 Subject: LFS 12.2 --- lfs-12.2-sysv/chapter08/udev.html | 405 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 405 insertions(+) create mode 100644 lfs-12.2-sysv/chapter08/udev.html (limited to 'lfs-12.2-sysv/chapter08/udev.html') diff --git a/lfs-12.2-sysv/chapter08/udev.html b/lfs-12.2-sysv/chapter08/udev.html new file mode 100644 index 0000000..9b018a9 --- /dev/null +++ b/lfs-12.2-sysv/chapter08/udev.html @@ -0,0 +1,405 @@ + + + + + + 8.76. Udev из Systemd-256.4 + + + + + + + + +

+ 8.76. Udev из + Systemd-256.4 +

+
+
+

+ Пакет Udev содержит программы для динамического создания узлов + устройств. +

+
+
+
+ Приблизительное время сборки: + 0.2 SBU +
+
+ Требуемое дисковое + пространство: 144 MB +
+
+
+
+
+

+ 8.76.1. Установка пакета Udev +

+

+ Udev является частью пакета systemd-256.4. Используйте файл + systemd-256.4.tar.xz в качестве исходного архива. +

+

+ Удалите две ненужные группы render + и sgx, из правил udev по умолчанию: +

+
sed -i -e 's/GROUP="render"/GROUP="video"/' \
+       -e 's/GROUP="sgx", //' rules.d/50-udev-default.rules.in
+

+ Удалите одно правило udev, требующее полной установки Systemd: +

+
sed '/systemd-sysctl/s/^/#/' -i rules.d/99-systemd.rules.in
+

+ Измените жестко заданные пути к файлам конфигурации сети для + автономной установки udev: +

+
sed '/NETWORK_DIRS/s/systemd/udev/' -i src/basic/path-lookup.h
+

+ Подготовьте Udev к компиляции: +

+
mkdir -p build
+cd       build
+
+meson setup ..                  \
+      --prefix=/usr             \
+      --buildtype=release       \
+      -D mode=release           \
+      -D dev-kvm-mode=0660      \
+      -D link-udev-shared=false \
+      -D logind=false           \
+      -D vconsole=false
+
+

+ Значение параметров meson: +

+
+
+ --buildtype=release +
+
+

+ Этот параметр переопределяет тип сборки по умолчанию + («debug»), который создает + неоптимизированные двоичные файлы. +

+
+
+ -D + mode=release +
+
+

+ Отключает некоторые функции, которые разработчики считают + экспериментальными. +

+
+
+ -D + dev-kvm-mode=0660 +
+
+

+ По умолчанию правило udev разрешает всем пользователям доступ + к /dev/kvm. Редакторы LFS + считают это опасным. Данная опция переопределяет разрешение + по умолчанию. +

+
+
+ -D + link-udev-shared=false +
+
+

+ Эта опция запрещает udev связываться с внутренней общей + библиотекой systemd libsystemd-shared. Эта библиотека + предназначена для совместного использования многими + компонентами Systemd, и ее использование избыточно, когда + установлен только udev. +

+
+
+ -D logind=false + -D vconsole=false +
+
+

+ Эти параметры предотвращают создание нескольких файлов правил + udev, принадлежащих другим компонентам Systemd, которые мы не + будем устанавливать. +

+
+
+
+

+ Получите список предоставляемых udev helpers и сохраните его в + переменной (экспортировать его не обязательно, но это упрощает + сборку от имени обычного пользователя или при использовании + менеджера пакетов): +

+
export udev_helpers=$(grep "'name' :" ../src/udev/meson.build | \
+                      awk '{print $3}' | tr -d ",'" | grep -v 'udevadm')
+

+ Соберите только компоненты, необходимые для udev: +

+
ninja udevadm systemd-hwdb \
+      $(ninja -n | grep -Eo '(src/(lib)?udev|rules.d|hwdb.d)/[^ ]*') \
+      $(realpath libudev.so --relative-to .)                         \
+      $udev_helpers
+

+ Установите пакет: +

+
install -vm755 -d {/usr/lib,/etc}/udev/{hwdb.d,rules.d,network}
+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/README         /usr/lib/udev/rules.d/
+install -vm644 $(find ../rules.d/*.rules \
+                      -not -name '*power-switch*') /usr/lib/udev/rules.d/
+install -vm644 hwdb.d/*  ../hwdb.d/{*.hwdb,README} /usr/lib/udev/hwdb.d/
+install -vm755 $udev_helpers                       /usr/lib/udev
+install -vm644 ../network/99-default.link          /usr/lib/udev/network
+

+ Установите некоторые пользовательские правила и вспомогательные + файлы, полезные в среде LFS: +

+
tar -xvf ../../udev-lfs-20230818.tar.xz
+make -f udev-lfs-20230818/Makefile.lfs install
+

+ Установите справочные страницы: +

+
tar -xf ../../systemd-man-pages-256.4.tar.xz                            \
+    --no-same-owner --strip-components=1                              \
+    -C /usr/share/man --wildcards '*/udev*' '*/libudev*'              \
+                                  '*/systemd.link.5'                  \
+                                  '*/systemd-'{hwdb,udevd.service}.8
+
+sed 's|systemd/network|udev/network|'                                 \
+    /usr/share/man/man5/systemd.link.5                                \
+  > /usr/share/man/man5/udev.link.5
+
+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/man*/systemd*
+

+ Наконец, сбросьте значение переменной udev_helpers: +

+
unset udev_helpers
+
+
+

+ 8.76.2. Настройка Udev +

+

+ Информация об аппаратных устройствах хранится в каталогах + /etc/udev/hwdb.d и /usr/lib/udev/hwdb.d. Udev необходимо, чтобы эта информация была + скомпилирована в двоичную базу данных /etc/udev/hwdb.bin. Создайте исходную базу + данных: +

+
udev-hwdb update
+

+ Эту команду необходимо запускать каждый раз при обновлении + информации об оборудовании. +

+
+
+

+ 8.76.3. Содержимое + пакета Udev +

+
+
+
+ Установленные программы: + udevadm, udevd (символическая ссылка на + udevadm) и udev-hwdb +
+
+ Установленные библиотеки: + libudev.so +
+
+ Созданные каталоги: + /etc/udev и /usr/lib/udev +
+
+
+
+

+ Short Descriptions +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ udevadm +

+
+

+ Универсальный инструмент администрирования udev: + управляет демоном udevd, предоставляет информацию из базы + данных Udev, отслеживает uevents, ожидает завершения + uevents, проверяет конфигурацию Udev и запускает uevents + для данного устройства +

+
+

+ udevd +

+
+

+ Демон, который прослушивает uevents в сокете netlink, + создает устройства и запускает настроенные внешние + программы в ответ на эти uevents +

+
+

+ udev-hwdb +

+
+

+ Обновляет или запрашивает базу данных оборудования +

+
+

+ libudev +

+
+

+ Библиотека для получения информации об устройствах udev +

+
+

+ /etc/udev +

+
+

+ Содержит файлы конфигурации Udev, разрешения для + устройств и правила именования устройств +

+
+
+
+
+ + + -- cgit v1.2.3