[devel] udevless информация о блочных устройствах
Alexey Gladkov
legion на altlinux.ru
Пн Июн 17 11:25:50 MSK 2019
On Sun, Jun 16, 2019 at 09:00:56PM +0300, Leonid Krivoshein wrote:
> Почему бы и нет? Для дальнейшей обработки в непривилегированном коде.
>
> $ lsblk -f # выдаёт же её обычному пользователю
Ну да, lsblk разбалтывает, то чего не положено :)
Но если не будет udev, то она станет менее болтлива.
> Зачем делать SUID'ную утилиту, если работающий под root'ом udev уже
> собрал всю необходимую информацию и предоставил её с доступом на чтение
> всем простым смертным.
А ты в документации видел, что /run/udev/data/* является публичным
интерфейсом ?
Я такого не находил. Более того, раньше они уже меняли формат своей базы.
Из-за этого у нас запускается один udev в initrd, а потом выполняется
системный, который работает с нуля без базы из initrd.
Собственно по этой причине у них есть: udevadm info --export-db
> Когда в последний раз принимался за эксперименты с udevless [2],
> столкнулся с такой проблемой: udev'а можно в любой момент попросить
> повторить все события, что были в процессе обнаружения "железа", а как
> быть с этим без udev'а?
udev не какой-то Избранный процесс. Кто угодно у кого есть права может
открыть netlink(NETLINK_KOBJECT_UEVENT) и попросить NLM_F_DUMP.
В целом можно эвенты и по sysfs посмотреть, но там нужно быть осторожнее
т.к. не все каталоги там являются публичным интерфейсом.
> Допустим, одним из первых действий скрипт в
> initramfs пишет в /proc/sys/kernel/modprobe, но как быть с теми
> событиями, что уже проскочили до этого шага?
Это не я начал разговор про udevless систему :) Я как раз за него или за
форк udev без ерунды, которую туда натащили.
> И, с чем ещё столкнулся:
> есть модули, которые не грузятся сами, если их не грузить через
> modprobe. Типичный пример -- qemu "оборудование". Может, я что-то не так
> делаю, но избавиться от udev пока что у меня не вышло.
qemu оборудование прекрасно грузится внутри виртуалки.
> [2] https://www.altlinux.org/KVM/Helper#Про_эксперименты_с_devtmpfs_без_udev
>
> Было бы интересно узнать твоё мнение на этот счёт: возможна ли загрузка
> с наполненным модулями и фирмварью initramfs без своего /init внутри?
Насколько я помню нет.
Но зачем это ?
--
Rgrds, legion
Подробная информация о списке рассылки Devel