В начало → Руководство по udev в Gentoo → Известные проблемы |
Если ваша машина не может успешно загрузится и выдаётся ошибка о том, что путь /dev/null
не найден или отсутствует первоначальная консоль, то проблема в том, что отсутствуют некоторые файлы устройств, которые должны
быть доступны до того, как /dev
смонтирован и обработан udev. Это часто встречается на машинах, где Gentoo установлен со старых носителей.
Если вы используете sys-apps/baselayout-1.8.12 или более позднюю версию, эта проблема облегчается, так как процесс загрузки должен управлять до полного завершения. Однако, чтобы избавится от этих раздражающих предупреждений, вам следует создать отсутствующие специальные файлы, как описано далее.
Выполните следующие команды для того, чтобы увидеть, какие специальные файлы присутствуют до обработки udev в /dev
:
Листинг 8. Вывод списка специальных файлов устройств, доступных при загрузке
#
mkdir test
#
mount --bind / test
#
cd test/dev
#
ls
Устройства /dev/null
и /dev/console
необходимымы для успешной загрузки. Если они не были показаны в предыдущем тесте, вы должны создать их самостоятельно. Выполните
следующие команды в каталоге test/dev/
:
Листинг 9. Создание необходимых специальных файлов устройств
#
mknod -m 660 console c 5 1
#
mknod -m 660 null c 1 3
Когда закончите, не забудьте отмонтировать каталог test/
:
Если вы используете коммерческий драйвер от nVidia и сервер X не запускается только в системе с udev, убедитесь что у вас:
название модуля nvidia указано в файле /etc/modules.autoload.d/kernel-2.6
версия nvidia-kernel больше или равна media-video/nvidia-kernel-1.0.5336-r2
версия baselayout как минимум sys-apps/baselayout-1.8.12
Если xorg-x11 отказывается запускаться, возможно, отсутствует файл устройства /dev/nvidia
. В этом случае запустите /sbin/NVmakedevices.sh, чтобы его создать или пересоздать.
Если вы используете вместе udev и Logical Volume Manager 2 (LVM—менеджер логических разделов), вы можете заметить, что созданные
вами группы разделов и логические разделы исчезли. Что ж, на самом деле нет, но они, к несчастью, названы /dev/dm-
, где #
#
—это 0, 1, ... и т.д.
Чтобы это исправить, отредактируйте файл /etc/udev/rules.d/50-udev.rules
и уберите комментарий со следующей строки:
Листинг 11. Как убрать комментарий со строки из файла /etc/udev/rules.d/50-udev.rules
KERNEL="dm-[0-9]*", PROGRAM="/sbin/devmap_name %M %m", NAME="%k", SYMLINK="%c"
Далее, установите пакет sys-fs/multipath-tools, который содержит программу devmap_name.
Листинг 12. Установка пакета multipath-tools
(На момент написания, пакет multipath-tools был доступен только в тестовой ветке дерева Portage)#
echo "=sys-fs/multipath-tools-0.4.2 ~x86" >> /etc/portage/package.keywords
#
emerge multipath-tools
Даже если наша цель—иметь совместимую схему именований между этими динамическими системами управления устройствами, иногда случаются различия в именовании.
Сообщалось о коллизии в работе контроллера HP Smart Array 5i (более точно - модуль ядра cciss). При использовании udev, устройства
именовались как /dev/cciss/c
, где X, Y и Z - числа. При использовании devfs, устройства именовались X
dY
pZ
/dev/host
или являлись символическими ссылками на X
/targetY
/partZ
/dev/ccisss/c
.
X
dY
В этом случае, не забудьте обновить файл /etc/fstab
и конфигурационные файлы загрузчика соответственно.
То же самое происходит со всеми символическими ссылками, которые существуют в каталоге /dev
, такими как /dev/mouse
, которые udev больше не создаёт. Обязательно проверьте настройку графического сервера X и посмотрите секцию Device, указывает
ли там строка настройки на существующий файл устройства.
Другая проблема заключается в различном именовании терминалов между devfs и udev. Если в devfs терминалы называются tty, то
в udev они называются vc. Это может привести к проблемам если возможность входа root с консоли ограничивается с помощью /etc/securetty
. Чтобы обеспечить возможность входа root с консоли, нужно обязательно изменить tty1 на vc/1 в /etc/securetty
.
Если файлы устройств не создаются, когда соответствующий модуль загружается из /etc/modules.autoload.d/kernel-2.6
, но появляются когда вы загружаете этот модуль вручную при помощи modprobe, тогда вам стоит произвести обновление до sys-apps/baselayout-1.8.12 или более поздней версии.
Поддержка устройств кадрового буфера (/dev/fb/*
) включена в ядро с версии 2.6.6-rc2.
В ядрах старше, чем 2.6.4, вам следует явно включить поддержку для файловой системы /dev/pts
.
Листинг 13. Включение поддержки файловой системы /dev/pts
File systems ---> Pseudo filesystems ---> [*] /dev/pts file system for Unix98 PTYs
В начало → Руководство по udev в Gentoo → Известные проблемы |