summaryrefslogtreecommitdiff
path: root/lfs-12.1-sysv/chapter08/udev.html
diff options
context:
space:
mode:
authorSn4il <sn4il@thedroth.rocks>2024-09-02 15:54:35 +0300
committerSn4il <sn4il@thedroth.rocks>2024-09-02 15:54:35 +0300
commit2203e654b389586650d553251b04544a34f189bf (patch)
tree0125b69fc70a2506c53158ba2020993a5b8985b7 /lfs-12.1-sysv/chapter08/udev.html
parent200d528e55ca954d37769f4d143f10c9519b00e7 (diff)
downloadsn4il-site-2203e654b389586650d553251b04544a34f189bf.tar.gz
sn4il-site-2203e654b389586650d553251b04544a34f189bf.zip
LFS 12.2
Diffstat (limited to 'lfs-12.1-sysv/chapter08/udev.html')
-rw-r--r--lfs-12.1-sysv/chapter08/udev.html406
1 files changed, 0 insertions, 406 deletions
diff --git a/lfs-12.1-sysv/chapter08/udev.html b/lfs-12.1-sysv/chapter08/udev.html
deleted file mode 100644
index fff3127..0000000
--- a/lfs-12.1-sysv/chapter08/udev.html
+++ /dev/null
@@ -1,406 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" />
- <title>
- 8.75. Udev из Systemd-255
- </title>
- <link rel="stylesheet" type="text/css" href="../stylesheets/lfs.css" />
- <meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" />
- <link rel="stylesheet" href="../stylesheets/lfs-print.css" type=
- "text/css" media="print" />
- <meta name="viewport" content="width=device-width, initial-scale=1.0" />
- </head>
- <body class="lfs" id="lfs-12.1">
- <div class="navheader">
- <h4>
- Линукс с нуля - Версия 12.1
- </h4>
- <h3>
- Глава 8. Установка базового системного программного обеспечения
- </h3>
- <ul>
- <li class="prev">
- <a accesskey="p" href="jinja2.html" title="Jinja2-3.1.3">Пред.</a>
- <p>
- Jinja2-3.1.3
- </p>
- </li>
- <li class="next">
- <a accesskey="n" href="man-db.html" title="Man-DB-2.12.0">След.</a>
- <p>
- Man-DB-2.12.0
- </p>
- </li>
- <li class="up">
- <a accesskey="u" href="chapter08.html" title=
- "Глава 8. Установка базового системного программного обеспечения">Наверх</a>
- </li>
- <li class="home">
- <a accesskey="h" href="../index.html" title=
- "Линукс с нуля - Версия 12.1">Начало</a>
- </li>
- </ul>
- </div>
- <h1 class="sect1">
- <a id="ch-system-udev" name="ch-system-udev"></a>8.75. Udev из
- Systemd-255
- </h1>
- <div class="wrap" lang="ru" xml:lang="ru">
- <div class="package" lang="ru" xml:lang="ru">
- <p>
- Пакет Udev содержит программы для динамического создания узлов
- устройств.
- </p>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Приблизительное время сборки:</strong>
- <span class="segbody">0.2 SBU</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Требуемое дисковое
- пространство:</strong> <span class="segbody">144 MB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h2 class="sect2">
- 8.75.1. Установка пакета Udev
- </h2>
- <p>
- Udev является частью пакета systemd-255. Используйте файл
- systemd-255.tar.xz в качестве исходного архива.
- </p>
- <p>
- Удалите две ненужные группы <code class="systemitem">render</code>
- и <code class="systemitem">sgx</code>, из правил udev по умолчанию:
- </p>
- <pre class="userinput"><kbd class=
- "command">sed -i -e 's/GROUP="render"/GROUP="video"/' \
- -e 's/GROUP="sgx", //' rules.d/50-udev-default.rules.in</kbd></pre>
- <p>
- Удалите одно правило udev, требующее полной установки Systemd:
- </p>
- <pre class="userinput"><kbd class=
- "command">sed '/systemd-sysctl/s/^/#/' -i rules.d/99-systemd.rules.in</kbd></pre>
- <p>
- Измените жестко заданные пути к файлам конфигурации сети для
- автономной установки udev:
- </p>
- <pre class="userinput"><kbd class=
- "command">sed '/NETWORK_DIRS/s/systemd/udev/' -i src/basic/path-lookup.h</kbd></pre>
- <p>
- Подготовьте Udev к компиляции:
- </p>
- <pre class="userinput"><kbd class="command">mkdir -p build
-cd build
-
-meson setup \
- --prefix=/usr \
- --buildtype=release \
- -Dmode=release \
- -Ddev-kvm-mode=0660 \
- -Dlink-udev-shared=false \
- -Dlogind=false \
- -Dvconsole=false \
- ..</kbd></pre>
- <div class="variablelist">
- <p class="title">
- <strong>Значение параметров meson:</strong>
- </p>
- <dl class="variablelist">
- <dt>
- <span class="term"><em class=
- "parameter"><code>--buildtype=release</code></em></span>
- </dt>
- <dd>
- <p>
- Этот параметр переопределяет тип сборки по умолчанию
- (<span class="quote">«<span class=
- "quote">debug</span>»</span>), который создает
- неоптимизированные двоичные файлы.
- </p>
- </dd>
- <dt>
- <span class="term"><em class=
- "parameter"><code>-Dmode=release</code></em></span>
- </dt>
- <dd>
- <p>
- Отключает некоторые функции, которые разработчики считают
- экспериментальными.
- </p>
- </dd>
- <dt>
- <span class="term"><em class=
- "parameter"><code>-Ddev-kvm-mode=0660</code></em></span>
- </dt>
- <dd>
- <p>
- По умолчанию правило udev разрешает всем пользователям доступ
- к <code class="filename">/dev/kvm</code>. Редакторы LFS
- считают это опасным. Данная опция переопределяет разрешение
- по умолчанию.
- </p>
- </dd>
- <dt>
- <span class="term"><em class=
- "parameter"><code>-Dlink-udev-shared=false</code></em></span>
- </dt>
- <dd>
- <p>
- Эта опция запрещает udev связываться с внутренней общей
- библиотекой systemd <code class=
- "systemitem">libsystemd-shared</code>. Эта библиотека
- предназначена для совместного использования многими
- компонентами Systemd, и ее использование избыточно, когда
- установлен только udev.
- </p>
- </dd>
- <dt>
- <span class="term"><em class="parameter"><code>-Dlogind=false
- -Dvconsole=false</code></em></span>
- </dt>
- <dd>
- <p>
- Эти параметры предотвращают создание нескольких файлов правил
- udev, принадлежащих другим компонентам Systemd, которые мы не
- будем устанавливать.
- </p>
- </dd>
- </dl>
- </div>
- <p>
- Получите список предоставляемых udev helpers и сохраните его в
- переменной (экспортировать его не обязательно, но это упрощает
- сборку от имени обычного пользователя или при использовании
- менеджера пакетов):
- </p>
- <pre class="userinput"><kbd class=
- "command">export udev_helpers=$(grep "'name' :" ../src/udev/meson.build | \
- awk '{print $3}' | tr -d ",'" | grep -v 'udevadm')</kbd></pre>
- <p>
- Соберите только компоненты, необходимые для udev:
- </p>
- <pre class="userinput"><kbd class=
- "command">ninja udevadm systemd-hwdb \
- $(ninja -n | grep -Eo '(src/(lib)?udev|rules.d|hwdb.d)/[^ ]*') \
- $(realpath libudev.so --relative-to .) \
- $udev_helpers</kbd></pre>
- <p>
- Установите пакет:
- </p>
- <pre class="userinput"><kbd class=
- "command">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</kbd></pre>
- <p>
- Установите некоторые пользовательские правила и вспомогательные
- файлы, полезные в среде LFS:
- </p>
- <pre class="userinput"><kbd class=
- "command">tar -xvf ../../udev-lfs-20230818.tar.xz
-make -f udev-lfs-20230818/Makefile.lfs install</kbd></pre>
- <p>
- Установите справочные страницы:
- </p>
- <pre class="userinput"><kbd class=
- "command">tar -xf ../../systemd-man-pages-255.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 \
- &gt; /usr/share/man/man5/udev.link.5
-
-sed 's/systemd\(\\\?-\)/udev\1/' /usr/share/man/man8/systemd-hwdb.8 \
- &gt; /usr/share/man/man8/udev-hwdb.8
-
-sed 's|lib.*udevd|sbin/udevd|' \
- /usr/share/man/man8/systemd-udevd.service.8 \
- &gt; /usr/share/man/man8/udevd.8
-
-rm /usr/share/man/man*/systemd*</kbd></pre>
- <p>
- Наконец, сбросьте значение переменной <code class=
- "envar">udev_helpers</code>:
- </p>
- <pre class="userinput"><kbd class=
- "command">unset udev_helpers</kbd></pre>
- </div>
- <div class="configuration" lang="ru" xml:lang="ru">
- <h2 class="sect2">
- <a id="conf-udev" name="conf-udev"></a>8.75.2. Настройка Udev
- </h2>
- <p>
- Информация об аппаратных устройствах хранится в каталогах
- <code class="filename">/etc/udev/hwdb.d</code> и <code class=
- "filename">/usr/lib/udev/hwdb.d</code>. <span class=
- "application">Udev</span> необходимо, чтобы эта информация была
- скомпилирована в двоичную базу данных <code class=
- "filename">/etc/udev/hwdb.bin</code>. Создайте исходную базу
- данных:
- </p>
- <pre class="userinput"><kbd class=
- "command">udev-hwdb update</kbd></pre>
- <p>
- Эту команду необходимо запускать каждый раз при обновлении
- информации об оборудовании.
- </p>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <h2 class="sect2">
- <a id="contents-udev" name="contents-udev"></a>8.75.3. Содержимое
- пакета Udev
- </h2>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установленные программы:</strong>
- <span class="segbody">udevadm, udevd (символическая ссылка на
- udevadm) и udev-hwdb</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Установленные библиотеки:</strong>
- <span class="segbody">libudev.so</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Созданные каталоги:</strong>
- <span class="segbody">/etc/udev и /usr/lib/udev</span>
- </div>
- </div>
- </div>
- <div class="variablelist">
- <h3>
- Short Descriptions
- </h3>
- <table border="0" class="variablelist">
- <colgroup>
- <col align="left" valign="top" />
- <col />
- </colgroup>
- <tbody>
- <tr>
- <td>
- <p>
- <a id="udevadm" name="udevadm"></a><span class=
- "term"><span class=
- "command"><strong>udevadm</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Универсальный инструмент администрирования udev:
- управляет демоном udevd, предоставляет информацию из базы
- данных Udev, отслеживает uevents, ожидает завершения
- uevents, проверяет конфигурацию Udev и запускает uevents
- для данного устройства
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="udevd" name="udevd"></a><span class=
- "term"><span class=
- "command"><strong>udevd</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Демон, который прослушивает uevents в сокете netlink,
- создает устройства и запускает настроенные внешние
- программы в ответ на эти uevents
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="udev-hwdb" name="udev-hwdb"></a><span class=
- "term"><span class=
- "command"><strong>udev-hwdb</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Обновляет или запрашивает базу данных оборудования
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="libudev" name="libudev"></a><span class=
- "term"><code class="filename">libudev</code></span>
- </p>
- </td>
- <td>
- <p>
- Библиотека для получения информации об устройствах udev
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="etc-udev" name="etc-udev"></a><span class=
- "term"><code class="filename">/etc/udev</code></span>
- </p>
- </td>
- <td>
- <p>
- Содержит файлы конфигурации Udev, разрешения для
- устройств и правила именования устройств
- </p>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>
- </div>
- <div class="navfooter">
- <ul>
- <li class="prev">
- <a accesskey="p" href="jinja2.html" title="Jinja2-3.1.3">Пред.</a>
- <p>
- Jinja2-3.1.3
- </p>
- </li>
- <li class="next">
- <a accesskey="n" href="man-db.html" title="Man-DB-2.12.0">След.</a>
- <p>
- Man-DB-2.12.0
- </p>
- </li>
- <li class="up">
- <a accesskey="u" href="chapter08.html" title=
- "Глава 8. Установка базового системного программного обеспечения">Наверх</a>
- </li>
- <li class="home">
- <a accesskey="h" href="../index.html" title=
- "Линукс с нуля - Версия 12.1">Начало</a>
- </li>
- </ul>
- </div>
- </body>
-</html>