[devel] startup and standalone versions of systemd utilities.
Alexey Gladkov
legion на altlinux.ru
Вт Фев 9 16:39:53 MSK 2021
On Tue, Feb 09, 2021 at 04:03:15PM +0300, Alexey V. Vissarionov wrote:
> On 2021-02-08 11:46:18 +0100, Alexey Gladkov wrote:
>
> >>> udevd требует systemd-utils. Разделение миров systemd и sysv
> >>> невозможно пока они оба используют udevd.
> >> Ну в общем-то выкинуть udev - совершенно не проблема... у меня,
> >> например, его просто никогда не было.
> >> % zgrep DEVTMPFS /proc/config.gz
> >> CONFIG_DEVTMPFS=y
> >> CONFIG_DEVTMPFS_MOUNT=y
> > Не путайте тёплое с мягким. udev уже давно не создаёт файлы
> > устройств.
>
> Да ну? А как же надпись "populating /dev" при загрузке?
Уф. Ну вы хоть бы постарались почитать прежде чем писать. udev c 2012 не
умеет создавать устройства и не умеет работать без devtmpfs. До этого он
прекрасно умел работать с простым tmpfs.
https://github.com/systemd/systemd/commit/220893b3cbdbf8932f95c44811b169a8f0d33939
> Врет?
Раньше (когда он создавал файлы устройств) он досоздавал устройства на
tmpfs. Советую почитать, что делает /etc/rc.d/init.d/udevd, когда пишет
"Populating /dev" и что происходит после этих команд.
> > Для этого как раз используется devtmpfs. udev нужен для обработки
> > факта появления устройства и ещё некоторых эвентов ядра.
>
> Если точнее, _был_ нужен во времена /sbin/hotplug - сейчас все
> это можно получить от ядра через netlink socket откуда угодно,
> поэтому CONFIG_UEVENT_HELPER в ядре можно даже не включать.
>
> Кстати, что любопытно:
>
> config UEVENT_HELPER
> bool "Support for uevent helper"
> help
> The uevent helper program is forked by the kernel for
> every uevent.
> Before the switch to the netlink-based uevent source, this
> was used to hook hotplug scripts into kernel device events.
> It usually pointed to a shell script at /sbin/hotplug.
>
> этот самый /sbin/hotplug изначально планировался как шелловский
> скрипт, а не кусок udev :-)
Брррр ... При чём тут /sbin/hotplug ? Этот хэлпер не имеет никакого
отношения к udevd и udevd также не требует этот параметр ядра. udevd
использует как раз netlink для получения эвентов ядра.
По сути udevd и есть тот удобный механизм, который позволяет реагировать
на эвенты ядра, приходящие через netlink.
Да и во времена, как вы сказали, во времена /sbin/hotplug udevd был не
нужен, потому что его в те времена ещё не было. hotplug намного более
старый механизм.
--
Rgrds, legion
Подробная информация о списке рассылки Devel