УДЕВ
Udev означает «пространство пользователя /dev
» — это диспетчер устройств для ядра Linux. Он является частью systemd(системы init , используемой для начальной загрузкипользовательского пространства и управления пользовательскими процессами).
Первоначально udev был независим от systemd, он был объединен с systemd в 2012 году, это привело к некоторым сложностям при работе дистрибутива без systemd, как описано здесь для gentoo распространение.
Это приложение (udev )предназначено для замены devfsd и hotplug , udev в первую очередь управляет узлами устройств в каталоге /dev
. В то же время udev также обрабатывает все события пользовательского пространства, возникающие при добавлении аппаратных устройств в систему или удалении из нее, включая загрузку прошивки в соответствии с требованиями определенных устройств(через модули ядра ). Конкретно udev запускается как systemd service(systemd -udevd.service)для выполнения своих задач, он слушает kernel uevents. Для каждого события systemd -udevd выполняет соответствующие инструкции, указанные вudev rules(/etc/udev/rules.d/ ), подробности о написании правил доступны в этой статье .
На уровне ядра Linux необходимая информация об устройстве экспортируется файловой системой sysfs. Для каждого устройства, обнаруженного и инициализированного ядром,создается каталог с именем устройства. Он содержит файлы атрибутов со специфическими свойствами устройства -. Каждый раз, когда устройство добавляется или удаляется, ядро отправляет uevent, чтобы уведомить udev об изменении.
Поведение демона udev (службы )можно настроить с помощьюudev.conf (5)(/etc/udev/udev.conf ), его параметров командной строки, переменные окружения и в командной строке ядра, или динамически изменяться под управлением udevadm .
Удев в целом делится на три части:
Сам Udev разделен на эти три части, но он полностью полагается на управление устройствами ядра и его вызовы uevents, система получает вызовы от ядра через сокет netlink. Более ранние версии использовали hotplug, добавляя с этой целью ссылку на себя в /etc/hotplug.d/default.
Обратите внимание, что другое приложение/демон может прослушивать вызовы uevents через libudev , gudev или напрямую из ядра с помощью GUdevClient
Дополнительная информация о udev доступна в источниках этого ответа:debian wiki , arch linux wiki , opensource.com , дневник гика , freedesktop.org , wikipedia , pks.mpg.de и другие связанные сайты.
Подробная информация об операционных слоях udev объясняется здесь и проиллюстрирована на этой диаграмме:
Здесь на reactivated.net/writing _udev _rules я нашел хорошее объяснение. Это с 2003 -по 2006 год.
man udev
(systemd )очень сжат. И man systemd-udevd.service
короткий. Я думаю, что у udev сложная история, он был интегрирован в systemd и отделился от eudev.
Как и сам systemd, udev настраивается на многих уровнях. «Из коробки» (дистрибутив )должен «заполнять» /dev (Я понимаю -, потому что статические узлы устарели ).
Я вижу три основных варианта использования udev:
Ваше резюме побудило меня, наконец, подробно узнать об udev. Теперь я вижу связь с записями sysfs (спасибо ), а также нашел разницу между MATCH== и ACTION=...
Я бы дал 100 баллов за хорошее объяснение:
Что делает ядро (плюс такие модули, как USB _хранилище )? (Плюс /etc/fstab?)
А что делает systemd
? Какой "удев"?
Я знаю, что в конце концов мне понадобился libinput
, чтобы запустить xorg.
man udevadm
, подudevadm control -e
:
systemctl stop systemd-udevd-control.socket systemd-udevd-kernel.socket systemd-udevd.service
В противном случае перезапускается. Это счастливый конец этого «ответа»;)
Единственное "действие", которое я смог произвести до сих пор :строка в логе:
'systemd-udevd[22327]: Process '...' failed with exit code 1.