- udisks
- Contents
- Installation
- Configuration
- Usage
- Tips and tricks
- Mount helpers
- udevadm monitor
- Mount to /media (udisks2)
- Mount loop devices
- Hide selected partitions
- Apply ATA settings (udisks2)
- Troubleshooting
- Hidden devices (udisks2)
- Devices do not remain unmounted (udisks)
- Broken standby timer (udisks2)
- NTFS mount failing
- udisks (Русский)
- Contents
- Установка
- Настройка
- Использование
- Советы и рекомендации
- Программы для монтирования
- udevadm monitor
- Монтирование в /media (udisks2)
- Монтирование петлевых устройств
- Сокрытие отдельных разделов
- Применение настроек ATA (udisks2)
- Решение проблем
- Скрытые устройства (udisks2)
- Устройства не остаются размонтированными (udisks)
- Неправильно работает таймер ожидания (udisks2)
- Не удаётся смонтировать NTFS-раздел
- udev (Русский)
- Contents
- Установка
- О правилах udev
- Пример правила udev
- Список атрибутов устройства
- Проверка правил перед загрузкой
- Загрузка новых правил
- udisks
- Советы и рекомендации
- Монтирование съёмных устройств
- Доступ к программаторам и виртуальным COM-портам
- Выполнение команд при подключении VGA-монитора
- Определение новых накопителей eSATA
- Определение внутренних портов SATA как внешних
- Установка постоянных имен устройств
- Видеоустройства
- Принтеры
- Определение диска по серийному номеру
- Пробуждение при активности USB-устройства
- Генерирование событий
- Уведомления на рабочем столе
- Создание долгосрочных процессов
- Решение проблем
- Добавление модулей в черный список
- Отладочная печать
- udevd вылетает при загрузке
- Устройство является съемным, однако не признается таковым
- Проблемы с автоматической загрузкой модулей аудиоустройств
- Поддержка дисководов IDE
- Оптические дисководы имеют неверный group ID
udisks
udisks provides a daemon udisksd, that implements D-Bus interfaces used to query and manipulate storage devices, and a command-line tool udisksctl, used to query and use the daemon.
Contents
Installation
udisksd(8) is started on-demand by D-Bus and should not be enabled explicitly. It can be controlled through the command-line with udisksctl(1) .
Configuration
Actions a user can perform using udisks are restricted with Polkit. If the user session is not activated or present (for example, when controlling udisks from a systemd/User service), adjust Polkit rules accordingly.
See [2] for common udisks permissions for the storage group, and [3] for a more restrictive example. If you are using Dolphin, you may see [4].
Usage
To manually mount a removable drive, for example /dev/sdc :
See udisksctl —help for more.
Tips and tricks
Mount helpers
The automatic mounting of devices is easily achieved with udisks wrappers. See also List of applications/Utilities#Mount tools.
- bashmount — A bash script to mount and manage removable media as a regular user with udisks2.
https://github.com/jamielinux/bashmount || bashmountAUR
- udiskie — udisks2 automounter with optional notifications, tray icon and support for password protected LUKS devices. See the udiskie wiki for details
https://github.com/coldfix/udiskie || udiskie
- udisksvm — GUI udisks2 wrapper written in Python3 and using the Qt5 framework. It uses mouse clicks to mount, unmount removable devices or eject a CD/DVD. See the README file for details.
https://github.com/berbae/udisksvm || udisksvmAUR
- udevil — Includes devmon, which is compatible to udisks and udisks2.
https://github.com/IgnorantGuru/udevil || udevil
udevadm monitor
You may use udevadm monitor to monitor block events and mount drives when a new block device is created. Stale mount points are automatically removed by udisksd, such that no special action is required on deletion.
Mount to /media (udisks2)
By default, udisks2 mounts removable drives under the ACL controlled directory /run/media/$USER/ . If you wish to mount to /media instead, use this rule:
Since /media , unlike /run , is not mounted by default as a tmpfs, you may also wish to create a tmpfiles.d snippet to clean stale mountpoints at every boot:
Mount loop devices
To easily mount ISO images, use the following command:
This will create a loop device and show the ISO image ready to mount. Once unmounted, the loop device will be terminated by udev.
Hide selected partitions
If you wish to prevent certain partitions or drives appearing on the desktop, you can create a udev rule, for example /etc/udev/rules.d/10-local.rules :
shows all partitions with the exception of sda1 and sda2 on your desktop. Note that if you are using udisks2 , the above will not work as UDISKS_PRESENTATION_HIDE is no longer supported. Instead, use UDISKS_IGNORE as follows:
Because block device names can change between reboots, it is also possible to use UUIDs (as gathered from executing the blkid /dev/sdX command) to hide partitions or whole devices:
Then the following line can be used:
The above line is also useful to hide multi device btrfs filesystems, as all the devices from a single btrtfs filesystem will share the same UUID across the devices but will have different SUB_UUID for each individual device.
Apply ATA settings (udisks2)
At start-up and when a drive is connected, udisksd will apply configuration stored in the file /etc/udisks2/IDENTIFIER.conf where IDENTIFIER is the value of the Drive:Id property for the drive. Currently ATA settings are supported. See udisks(8) for available options. These settings have essentially the same effect as those of hdparm, but they are persistent as long as the udisks daemon is autostarted.
For example, to set standby timeout to 240 (20 minutes) for a drive, add the following:
To obtain the DriveId for your drive, use udevadm info —query=all —name=sdx | grep ID_SERIAL | sed «s/_/-/g»
Alternatively, use a GUI utility to manage the configuration file, such as gnome-disk-utility .
Troubleshooting
Hidden devices (udisks2)
Udisks2 hides certain devices from the user by default. If this is undesired or otherwise problematic, copy /usr/lib/udev/rules.d/80-udisks2.rules to /etc/udev/rules.d/80-udisks2.rules and remove the following section in the copy:
Devices do not remain unmounted (udisks)
udisks remounts devices after a given period, or polls those devices. This can cause unexpected behaviour, for example when formatting drives, sharing them in a virtual machine, power saving, or removing a drive that was not detached with —detach before.
To disable polling for a given device, for example a CD/DVD device:
or for all devices:
See udisks(8) for more information.
Broken standby timer (udisks2)
The udisks daemon polls S.M.A.R.T. data from drives regularly. Hard drives with a longer standby timeout than the polling interval may fail to enter standby. Drives that are already spun down are usually not affected. There seems no way to disable polling or change the interval as for udisks2 by now. See [5], [6].
However, Standby timeout applied by udisks2 seems to be unaffected. To set standby timeout via udisks, see #Apply ATA settings (udisks2).
Other possible workarounds could be setting the timeout below the polling interval (10 minutes) or forcing a manual spindown using hdparm -y /dev/sdx .
NTFS mount failing
If mounting a ntfs partition fails with the error:
and in the kernel log with journalctl / dmesg ran as root:
Then the problem is that udisks is trying to use the kernel ntfs driver, which doesn’t understand this (default) mount option. For this to work the optional dependency NTFS-3G must be installed.
Источник
udisks (Русский)
udisks состоит из двух основых элементов: демона udisksd с реализоваными в нём интерфейсами D-Bus для запросов к устройствам хранения данных и управления ими, а также утилиты командной строки udisksctl, с помощью которой пользователь взаимодействует с демоном.
Contents
Установка
Демон udisksd(8) запускается D-Bus «по требованию» и включать его вручную не нужно. Управлять демоном можно утилитой udisksctl(1) .
Настройка
Набор действий, которые пользователь может выполнять с udisks, определяется разрешениями Polkit. Если пользовательский сеанс неактивен или не существует вовсе (например, при управлении udisks из службы systemd/Пользователь), необходимо соответствующим образом настроить Polkit.
В [2] описаны стандартные настройки прав для группы storage , в [3] приведён пример с более жёсткими ограничениями. Если вы используете Dolphin, то стоит также изучить [4].
Использование
Следующая команда выполнит монтирование съёмного устройства, например, /dev/sdc :
Подробнее см. вывод команды udisksctl —help .
Советы и рекомендации
Программы для монтирования
Существует ряд программ-обёрток для udisks, которые позволяют настроить автоматическое монтирование устройств. См. также List of applications/Utilities#Mount tools.
- bashmount — Сценарий Bash для монтирования и управления съёмными устройствами обычным пользователем с помощью udisks2.
https://github.com/jamielinux/bashmount || bashmountAUR
- udiskie — Программа автоматического монтирования для udisks2 с уведомлениями, иконкой в системном трее и поддержкой защищённых паролем LUKS-устройств. Подробнее см. udiskie wiki
https://github.com/coldfix/udiskie || udiskie
- udisksvm — Обёртка для udisks2 с графическим интерфейсом, написанная на Python3 с использованием фреймворка Qt5. Монтирование/размонтирование съёмных устройств и извлечение CD/DVD кликами мыши. Подробнее см. README.
https://github.com/berbae/udisksvm || udisksvmAUR
- udevil — Включает в себя devmon, который совместим с udisks и udisks2.
https://github.com/IgnorantGuru/udevil || udevil
udevadm monitor
Команду udevadm monitor можно использовать для отслеживания связанных с блочными устройствами событий, а также для монтирования носителя при создании нового блочного устройства. Неактуальные точки монтирования удаляются демоном udiskd в автоматическом режиме, поэтому специальных действий по их удалению предпринимать не нужно.
Монтирование в /media (udisks2)
По умолчанию udisks2 монтирует съёмные устройства в каталог /run/media/$USER/ , который находится под управлением ACL. Если вы желаете изменить каталог монтирования на /media , создайте следующее правило udev:
Поскольку каталог /media в отличие от /run не монтируется по умолчанию с файловой системой tmpfs, возможно, вы также захотите создать сниппет в каталоге tmpfiles.d, который будет удалять устаревшие точки монтирования при каждой загрузке:
Монтирование петлевых устройств
Для монтирования ISO-образов воспользуйтесь следующей командой:
Это создаст петлевое устройство и сделает образ готовым к монтированию. После размонтирования udev удалит петлевое устройство.
Сокрытие отдельных разделов
Если вы не хотите, чтобы определённые разделы или носители отображались на рабочем столе, можно создать правило udev, например, /etc/udev/rules.d/10-local.rules :
В результате на рабочем столе будут отображаться все разделы, кроме sda1 и sda2 . Имейте в виду, что это не сработает, если вы используете udisks2 , потому что переменная UDISKS_PRESENTATION_HIDE больше не поддерживается. Вместо неё используйте UDISKS_IGNORE :
Поскольку названия блочных устройств могут изменяться от загрузки к загрузке, то имеет смысл использовать UUID раздела или устройства, который можно узнать командой blkid /dev/sdX :
После этого можно создать следующее правило:
Помимо обычного применения, этим правилом можно также скрыть целую файловую систему btrfs с несколькими устройствами, поскольку в этой системе UUID всех устройств совпадает, а различия определяются на основании SUB_UUID.
Применение настроек ATA (udisks2)
При запуске системы и при подключении устройства демон udiskd применяет настройки из файла /etc/udisks2/ИДЕНТИФИКАТОР.conf , где ИДЕНТИФИКАТОР — значение параметра Drive:Id для данного устройства. В настоящее время в udisks существует поддержка настроек ATA. Список доступных опций можно посмотреть в руководстве udisks(8) . Данные настройки по сути не отличаются от настроек hdparm, за тем исключением, что настройки ATA сохранятся при последующих автозапусках демона udisks.
Например, следующие настройки установят для устройства время ожидания 240 (20 минут):
Значение DriveId можно узнать командой udevadm info —query=all —name=sdx | grep ID_SERIAL | sed «s/_/-/g» .
В качестве альтернативы для работы с файлом настроек можно использовать графическую утилиту gnome-disk-utility .
Решение проблем
Скрытые устройства (udisks2)
udisks2 по умолчанию скрывает от пользователя некоторые устройства. Если такое поведение нежелательно, скопируйте файл /usr/lib/udev/rules.d/80-udisks2.rules в /etc/udev/rules.d/80-udisks2.rules и удалите в файле-копии следующий раздел:
Устройства не остаются размонтированными (udisks)
udisks либо заново монтирует устройства по истечении некоторого периода, либо опрашивает такие устройства. Это может вызвать нежелательные эффекты, например, при форматировании дисков, совместной работе с ними в виртуальной машине, при работе в режиме энергосбережения или при удалении устройства, которое не было ранее отключено с параметром —detach .
Следующая команда отключит опрашивание выбранного CD/DVD устройства:
То же самое, но для всех устройств одновременно.
Неправильно работает таймер ожидания (udisks2)
Демон udisks регулярно опрашивает устройства с целью сбора S.M.A.R.T.-данных. Жесткие диски, время ожидания которых больше интервала опрашивания, могут не успевать войти в режим standby. Устройства, которые уже вошли в этот режим, данной проблеме не подвержены. Судя по всему, в настоящий момент в udisks2 не предусмотрено способа отключить опрашивание устройств или изменить интервал. См. [5] и [6].
Тем не менее, время ожидания в udisks2 изменить можно. Подробнее см. #Применение настроек ATA (udisks2).
Другие возможные обходные решения заключаются в задании отдельной задержки перед интервалом опрашивания (10 минут) или в ручном переводе диска в замедленный режим командой hdparm -y /dev/sdx .
Не удаётся смонтировать NTFS-раздел
Если монтирование NTFS-раздела завершается неудачно с ошибкой
или какой-то другой, а команды journalctl / dmesg находят в логах ядра сообщение
то проблема скорее всего в том, что udisks пытается использовать драйвер NTFS, который не понимает текущие опции монтирования.
Для решения проблемы установите NTFS-3G в качестве опциональной зависимости.
Источник
udev (Русский)
udev — работающая в пространстве пользователя система, с помощью которой системный администратор может создавать обработчики событий. События, получаемые udev, обычно генерируются ядром Linux в ответ на физические события, происходящие с периферийными устройствами. Например, при обнаружении периферийных устройств или «горячем» подключении udev может выполнить определённые действия, в том числе и вернуть управление ядру, если необходима загрузка модулей или прошивок.
Подобно предшественникам, утилитам devfsd и hotplug, udev управляет файлами устройств в каталоге /dev , добавляя их, переименовывая и создавая символические ссылки. udev полностью замещает функционал hotplug и hwdetect.
Обработка событий в udev происходит параллельно, что теоретически улучшает производительность старых систем. С другой стороны, это может усложнить администрирование. Так, при перезапуске системы порядок загрузки модулей ядра может измениться, а при наличии в машине нескольких блочных устройств могут поменяться названия их файлов. Например, для системы с двумя жёсткими дисками файл /dev/sda после перезагрузки может превратиться в /dev/sdb .
Contents
Установка
udev входит в состав systemd и установлен по умолчанию. Подробнее см. systemd-udevd.service(8) .
Существует также отдельный от systemd форк, который можно установить с пакетом eudev AUR или eudev-git AUR .
О правилах udev
Создаваемые системным администратором правила udev хранятся в каталоге /etc/udev/rules.d/ . Названия файлов правил должны заканчиваться суффиксом .rules. Правила из пакетов программ при установке помещаются в каталог /usr/lib/udev/rules.d/ . Если в каталогах /usr/lib и /etc находятся два файла правил с одинаковыми именами, то файл в /etc будет иметь приоритет.
Правила udev подробно описаны в руководстве udev(7) . Также стоит изучить статью Создание правил udev (англ.) и приведённые в ней практические примеры: Создание правил udev — Примеры (англ.).
Пример правила udev
Ниже приведён пример правила, которое создаёт символическую ссылку /dev/video-cam , когда к компьютеру подключается веб-камера.
Предположим, мы выяснили, что для подключённой камеры создан файл устройства /dev/video2 . Причина, по которой мы создаем это правило, заключается в том, что при следующей загрузке веб-камере может быть присвоено другое имя, например, /dev/video0 .
Мы используем параметры веб-камеры KERNEL==»video2″ и SUBSYSTEM==»video4linux» , затем мы возьмем идентификаторы производителя и изделия родительского USB-устройства SUBSYSTEMS==»usb» , ATTRS
В примере мы создали символическую ссылку, используя параметр SYMLINK+=»video-cam» . Мы можем также легко задать владельца ( OWNER=»john» ), группу ( GROUP=»video» ), или установить права доступа к файлу ссылки ( MODE=»0660″ ).
Если вы намереваетесь создать правило, которое делает что-нибудь при удалении устройства, имейте в виду, что атрибуты устройства могут стать недоступны. В этом случае вам необходимо использовать специальный набор переменных окружения. Чтобы отобразить эти переменные, выполните следующую команду при отсоединении устройства:
В выводе команды вы увидите значения параметров устройства, например, ID_VENDOR_ID и ID_MODEL_ID , которые соответствуют использованным ранее идентификаторам производителя и изделия. Правило, которое использует переменные окружения устройства, может выглядеть следующим образом:
Список атрибутов устройства
Чтобы вывести все атрибуты устройства, которые вы можете использовать в написании правил udev, выполните:
Замените имя_устройства текущим именем файла устройства, например, /dev/sda или /dev/ttyUSB0 .
Если вы не знаете имя файла устройства, вы можете также вывести все атрибуты по конкретному системному пути:
Чтобы сузить поле поиска, определите класс устройства и выполните:
Найденную символическую ссылку (или файл, на который она указывает) можно использовать в параметре —name :
Проверка правил перед загрузкой
Вы можете также указать прямой системный путь до устройства:
Загрузка новых правил
udev способен определять наличие изменений в файлах правил автоматически, поэтому изменения сразу вступают в силу без необходимости перезапуска udev. Однако, новые правила не будут применены сразу к уже подключенным устройствам. Устройства с возможностью горячей замены, например, устройства USB, могут быть просто переподключены для применения к ним новых правил. Также вы можете перезагрузить модули ядра ohci-hcd и ehci-hcd , что автоматически приведет к перезагрузке всех драйверов для каждого USB-устройства.
Если правила не перезагружаются автоматически, выполните:
Чтобы вручную заставить udev применить ваши правила, выполните:
udisks
Советы и рекомендации
Монтирование съёмных устройств
Монтировать съёмные устройства с помощью команды mount в правиле udev не стоит по двум причинам: (1) systemd по умолчанию запускает systemd-udevd.service с отдельным «пространством имён монтирования» (см. namespaces(7) ), что означает, что данное устройство не будет видно из остальной системы. (2) Чтобы этого не происходило, можно закомментировать параметры PrivateMounts и MountFlags в файле службы, но тогда проявится другая проблема: запускаемые udev процессы система будет убивать по истечении нескольких секунд. В случае файловых систем FUSE, вроде NTFS, «монтирование» запустит в пространстве пользователя процесс для работы с файловой системой; затем процесс будет уничтожен и при попытке доступа к ФС вы получите ошибку Transport endpoint not connected .
Есть несколько возможных решений:
- Из правила udev запускается пользовательская служба systemd; служба запустит сценарий, который, в свою очередь, может породить любое количество долгосрочных процессов (вроде FUSE). В качестве примера можно использовать утилиту udev-media-automount, разработанную для быстрого и надёжного автоматического монтирования устройств. Другой вариант той же идеи предложен в этом сообщении.
- В правилах udev вместо команды mount можно использовать systemd-mount , как рекомендуют разработчики systemd. Пример монтирования USB-дисков в каталоге /media :
Тем не менее, такой подход считается медленным и ненадёжным.
- Программы вроде udisks или udiskie. Мощные утилиты, хоть и с довольно сложной настройкой. Нужно учитывать, что они работают для одного пользовательского сеанса: доступ к некоторым файловым системам предоставляется только тому пользователю, сеанс которого активен в данный момент.
Доступ к программаторам и виртуальным COM-портам
Следующий набор правил даст возможность пользователям, входящим в группу users , получить доступ к USB-программаторам микроконтроллеров AVR USBtinyISP:
Идентификаторы производителя и изделия для других устройств можно узнать с помощью утилиты lsusb.
Выполнение команд при подключении VGA-монитора
Создайте правило /etc/udev/rules.d/95-monitor-hotplug.rules со следующим содержимым, чтобы запускать arandr при каждом подключении VGA-монитора:
Некоторые экранные менеджеры размещают файл .Xauthority вне домашнего каталога пользователя. В этом случае параметр ENV
Определение новых накопителей eSATA
Если ваш накопитель eSATA не был определен системой при подключении, вы можете перезагрузить систему, не отключая кабель устройства, либо, если перезагрузка нежелательна, выполнить:
Еще один вариант заключается в использовании утилиты scsiadd AUR из AUR:
Накопитель должен появиться в /dev . Если это не так, попробуйте выполнить:
до и после вышеприведенных команд и посмотреть, происходит ли что-нибудь.
Определение внутренних портов SATA как внешних
Если вы подключили eSATA-адаптер, система все еще будет распоздавать его как внутренний SATA-накопитель. GNOME и KDE будут постоянно запрашивать пароль администратора. Следующее правило помечает все указанные SATA-порты как порты eSATA, благодаря чему обычные пользователи смогут подключать свой накопитель eSATA к этому порту как USB-накопитель без запроса пароля администратора:
Установка постоянных имен устройств
Из-за асинхронного способа загрузки модулей, они инициализируются в разном порядке от загрузки к загрузке. Это приводит к случайному переименованию устройств при каждом запуске. Чтобы задать постоянные имена вашим устройствам, можно создать специальное правило udev.
В статье Persistent block device naming описано, как задать постоянные имена для блочных устройств, а в Настройка сети#Смена имени интерфейса — для сетевых интерфейсов.
Видеоустройства
Процедура установки веб-камеры описана в статье Webcam setup.
При загрузке веб-камерам присваиваются случайные имена вида /dev/video* . Рекомендуемое решение состоит в создании символических ссылок с использованием правила udev (подобно правилу в разделе #Пример правила udev):
Принтеры
Если у вас несколько принтеров, им будут случайным образом присвоены имена вида /dev/lp5 , что, например, может помешать серверу CUPS правильно настроить устройства. Вы можете создать следующее правило, которое будет создавать постоянные символические ссылки в каталогах /dev/lp/by-id и /dev/lp/by-path подобно схеме, приведенной в статье Persistent block device naming:
Определение диска по серийному номеру
Действия с дисковыми устройствами /dev/sdX можно выполнять на основании серийного номера ID_SERIAL_SHORT , который можно узнать из вывода команды udevadm info /dev/sdX . Примерное правило udev для этого случая приведено ниже. В параметре RUN сценарию передаётся имя устройства; это сделано исключительно в иллюстративных целях:
Пробуждение при активности USB-устройства
С помощью правила udev можно настроить систему выходить из режима сна при активности USB-устройств, например, мыши или клавиатуры.
Первым делом определите идентификаторы производителя и изделия для вашего устройства:
Затем найдите, куда данное устройство подключено:
Наконец, создайте правило, которое при подключении будет изменять атрибут power/wakeup как для устройства, так и для USB-контроллера, к которому оно подключено:
Генерирование событий
Может быть полезно сгенерировать различные события udev. Например, вы хотите симулировать отключение USB-устройства на удалённой машине. В таких случаях, используйте udevadm trigger :
Эта команда симулирует отключение всех USB-устройств с указанным идентификатором поставщика idVendor .
Уведомления на рабочем столе
Заставить правильно работать из правила udev сценарий, содержащий команду notify-send , может оказаться непростой задачей, потому что уведомления не будут выводиться на рабочий стол. Ниже показано, какие файлы, команды и переменные окружения необходимо задйствовать, чтобы notify-send работала как положено.
1) Следующее правило udev запускает сценарий, создающий графическое и звуковое уведомление, когда яркость экрана меняется в зависимости от способа питания ноутбука:
- USERNAME_TO_RUN_SCRIPT_AS и USERNAME необходимо заменить на имя пользователя, который запустил графический сеанс;
- сценарий должен запускаться командой /usr/bin/su , чтобы его владельцем считался не root, а пользователь, который запустил графический сеанс и для которого будут выводиться уведомления.
2) Содержимое сценария, который запускается правилом udev:
- USERNAME_TO_RUN_SCRIPT_AS , UID_OF_USER_TO_RUN_SCRIPT_AS и USERNAME необходимо заменить на имя и идентификатор пользователя, запустившего графический сеанс;
- команда /usr/bin/sudo воспроизводит звуковое уведомление с помощью pulseaudio;
- для пользователя, запустившего графический сеанс, в котором будут отображаться уведомления, необходимо определить и экспортировать три переменные окружения ( XAUTHORITY , DISPLAY и DBUS_SESSION_BUS_ADDRESS ).
3) Загрузите/перезагрузите новое правило udev и проверьте, как оно работает, выдернув или подключив кабель питания ноутбука.
Создание долгосрочных процессов
Программы, запущенные udev, блокируют последующие события от данного устройства, а любые процессы, порождённые правилом udev, завершаются сразу после обработки события. Если вы хотите запустить долгосрочный процесс с помощью udev, то либо используйте at (например, ваша_команда | at now или batch ), либо создайте юнит systemd, который можно запустить из правила udev.
Решение проблем
Добавление модулей в черный список
Иногда udev может ошибочно загружать неправильные модули ядра. Чтобы избежать этого, добавьте такие модули в чёрный список. Если модуль находится в чёрном списке, udev будет игнорировать его как при загрузке, так и при более позднем «горячем» подключении внешнего устройства (например, USB-носителя).
Отладочная печать
Если задать параметр ядра udev.log-priority=debug , то аппаратное обеспечение будет выдавать отладочную информацию. Другой способ — задать параметр
Чтобы добавить эту опцию в initramfs, укажите файл настроек udev в строке FILES
после чего сгенерируйте initramfs.
udevd вылетает при загрузке
После миграции на LDAP или обновления системы, использующей LDAP, udevd может начать аварийно завершаться в момент загрузки системы с сообщением «Starting UDev Daemon». Обычно это происходит потому, что udevd пытается определить имя через LDAP, но не может, так как в этот момент еще не установлено подключение к сети.
Необходимо, чтобы все используемые в LDAP группы были продублированы локально. Получить имена групп, используемых в правилах udev, и имена групп, присутствующих в системе, можно командами:
Вывод будет записан в файлы present_groups и udev_groups . Чтобы увидеть различия, выполните построчное сравнение командой diff:
В данном примере группа pcscd по какой-то причине отсутствует в системе. Все такие группы необходимо добавить в систему. Также убедитесь, что имена всех локальных ресурсов разрешены, прежде чем возвращаться к LDAP. Файл /etc/nsswitch.conf должен содержать следующую строку:
Устройство является съемным, однако не признается таковым
Создайте правило udev для конкретного устройства. Чтобы получить подробную информацию об устройстве вы можете либо использовать ID_SERIAL , либо ID_SERIAL_SHORT (не забудьте поменять /dev/sdb если нужно):
Теперь создайте файл правила в /etc/udev/rules.d/ и установите переменные либо для udisks, либо для udisks2.
Для udisks установите UDISKS_SYSTEM_INTERNAL=»0″ , которая пометит все устройства как съёмные, и, таким образом, подходящие для автоматического монтирования. Подробнее см. udisks(7) .
Для udisks2 установите UDISKS_AUTO=»1″ , чтобы пометить устройство для автоматического монтирования и UDISKS_SYSTEM=»0″ , чтобы пометить устройство как съёмное. Подробнее см. udisks(8)
Перезагрузите правила udev командой udevadm control —reload . Теперь ваше устройство будет распознаваться как съёмное.
Проблемы с автоматической загрузкой модулей аудиоустройств
Некоторые пользователи испытывают проблемы с загрузкой модулей звуковых устройств, для которых остались старые записи в /etc/modprobe.d/sound.conf . Чистка файла от таких записей может помочь.
Поддержка дисководов IDE
Начиная с версии 170, udev не поддерживает устройства CD-ROM/DVD-ROM, загружаемые как обычные IDE дисководы модулем ide_cd_mod и отображаемые в системе как /dev/hd* . Дисковод доступен только программам, которые обращаются к устройству напрямую, таким как cdparanoia, но невидим для более высокоуровневых программ вроде KDE.
Причина, по которой загрузка модуля ide_cd_mod имеет приоритет перед другими модулями, например, sr_mod , может заключаться в том, что по какой-либо причине модуль piix загружается в вашем initramfs. В этом случае вы можете просто заменить его в файле /etc/mkinitcpio.conf на ata_piix .
Оптические дисководы имеют неверный group ID
Если значение group ID вашего дисковода установлено как disk , но вы хотите, чтобы оно было optical , вам следует создать такое правило:
Источник