Системные изменения для тех, кто собирает ядро руками
Grifon, 01.03.2010 — 13:18
Здравствуйте, друзья!
Сегодня я хочу написать для тех, кто не гнушается собрать ядро руками на своём рабочей инсталляции Linux. Как вы знаете, открытые системы не стоят в развитии и постоянно изменяются и пополняются новыми особенностями, при этом старые и ненужные вещи часто выкидываются. Это так же касается и основы дистрибутива - таких разработок, как само ядро и менеджер управления устройствами (udev).
Тут небольшой перевод. Примечания курсивом мои.
Конфигурация
В последних версиях udev произошло множество изменений в плане обеспечения подключений устройств. Сейчас для работы udev требуется:
- ядро 2.6.27 и выше;
- CONFIG_HOTPLUG=y
- CONFIG_UEVENT_HELPER_PATH=""
- CONFIG_NET=y
- CONFIG_UNIX=y
CONFIG_SYSFS=y
- CONFIG_SYSFS_DEPRECATED*=n
- CONFIG_PROC_FS=y
- CONFIG_TMPFS=y
- CONFIG_INOTIFY_USER=y
- CONFIG_SIGNALFD=y
- CONFIG_TMPFS_POSIX_ACL=y (user ACLs for device nodes)
- CONFIG_BLK_DEV_BSG=y (SCSI devices)
- Udev не будет работать с CONFIG_SYSFS_DEPRECATED*
- Сокеты Юникс (CONFIG_UNIX) скомпилированные как модуль ядра могут работать, но не поддерживаются
- устаревший менеджер подключаемых устройств /sbin/hotplug должен быть исключён из конфигурации ядра, он больше не нужен, и может привести систему в нестабильное состояние, потому что ядро может запустить множество параллельных процессов, это приведёт к переполнению памяти.Те пользователи, которые ведут конфигурацию ядра годами, могут это пропустить
- Файловая система proc должна монтироваться в /proc, sysfs - в /sys. Никакие другие точки монтирования не поддерживаются в стандартных установках
- На момент запуска udev система должна различать следующие имена : disk, cdrom, floppy, tape, audio, video, lp, tty, dialout, kmem. Особенно там, где группы берутся так же из LDAP, требуется, чтобы getgrnam() мог различить эти группы тогда, когда только rootfs смонтирована, и ещё нет доступных сетевых подключений.
- Для включения всех 'udev extras' нужны следующие библиотеки: libacl, libglib2, libusb, usbutils, pciutils, gperf. Зависимости от них могут быть отключены с помощью параметра --disable-extras.
Установка
- Во время загрузки devtmpfs должен монтироваться в /udev. Это выполняется в помощью скриптов init, и не требует вмешательства пользователя. Вам это может понадобиться только тогда, когда что-нибудь сломается. Udev будет сама управлять правами и владением создаваемых устройств, и, возможно, добавлять дополнительные сылки. При необходимости, udev так же работает на пустой фс 'tmpfs', но тогда некоторые обязательные файлы устройств: /dev/null, /dev/console, /dev/kmsg - необходимы для запуска самого udev.
- Содержимое каталога /lib/udev/devices, которое содержит постоянное наполнение типа символических ссылок и каталогов, постоянно находящихся в/dev, должно копироваться в подмонтированный каталог /dev. От пользователя в данном случае опять не требуется этого делать, по скольку это забота разработчика дистрибутива
- Новые/изменённые правила в файлах настройки принимаются автоматически, что не требует перезапуска демона или посыл ему сигнала. Правила не действуют на уже созданные устройства
Ссылки:
http://git.kernel.org/?p=linux/hotplug/udev.git;a=blob;hb=HEAD;f=README
|