[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