Найти в Дзене
Сисадмин

Что такое udev в linux?

Оглавление
udev linux
udev linux

udev — это подсистема управления устройствами в ядре Linux, которая динамически создает и удаляет устройства, управляет правами доступа и выполняет другие задачи, связанные с аппаратными устройствами. udev является частью системы systemd и отвечает за управление устройствами в пространстве пользователей, предоставляя возможность адаптивного управления оборудованием.

Основные функции и возможности udev

  • Динамическое управление устройствами: автоматическое создание и удаление файлов устройств в /dev при подключении и отключении оборудования.
  • Настройка прав доступа: управление правами доступа к устройствам.
  • Создание символьных ссылок: создание удобных для пользователя символьных ссылок на устройства.
  • Запуск скриптов и программ: выполнение заданных действий при обнаружении устройства.

Основные компоненты

  • udevd: демон, который управляет правилами и обработкой устройств.
  • Правила udev: файлы конфигурации, которые описывают, как udev должен обрабатывать устройства. Эти файлы обычно находятся в /etc/udev/rules.d/ и /lib/udev/rules.d/.

Основные команды

  1. udevadm: основной инструмент для взаимодействия с udev. Используется для управления правилами, мониторинга событий и получения информации об устройствах.

Примеры использования udevadm

Получение информации об устройстве

udevadm info --query=all --name=/dev/sda

Мониторинг событий udev

udevadm monitor --udev

Триггеринг событий для существующих устройств

udevadm trigger

Перезагрузка демона udev

sudo udevadm control --reload

Правила udev

Правила udev определяют, как обрабатываются устройства. Эти правила находятся в файлах с расширением .rules и обычно располагаются в директориях /etc/udev/rules.d/ и /lib/udev/rules.d/.

Пример правила udev

Создадим правило для автоматического монтирования USB-накопителя:

Создайте файл правила:

sudo nano /etc/udev/rules.d/99-usb-mount.rules

Добавьте следующее содержимое в файл:

ACTION=="add", KERNEL=="sd[b-z][1-9]", SUBSYSTEM=="block", RUN+="/usr/bin/usb-mount.sh %k"

Это правило выполняет скрипт /usr/bin/usb-mount.sh при добавлении нового блокового устройства (например, USB-накопителя).

Создайте скрипт /usr/bin/usb-mount.sh:

sudo nano /usr/bin/usb-mount.sh

Добавьте следующее содержимое в скрипт:

#!/bin/bash DEVICE=$1 MOUNTPOINT="/media/usb-$DEVICE" mkdir -p $MOUNTPOINT mount /dev/$DEVICE $MOUNTPOINT

Сделайте скрипт исполняемым:

sudo chmod +x /usr/bin/usb-mount.sh

Перезагрузите udev, чтобы применить новые правила:

sudo udevadm control --reload

udev — это мощный инструмент для управления устройствами в Linux. Он предоставляет гибкие возможности для автоматизации обработки устройств, настройки прав доступа и запуска скриптов при подключении или отключении оборудования. Понимание работы udev и использование его возможностей позволяет эффективно управлять аппаратными устройствами в Linux.