Назад | Перейти на главную страницу

Использование udev для создания символьного устройства на основе загружаемого драйвера

Я занимаюсь настройкой мониторинга RAID для ряда серверов Dell, которые используют интегрированную карту PERC 6i. В настоящее время мы используем Nagios, и плагин check_megasasctl, похоже, отвечает всем требованиям. Однако плагин полагается на наличие:

/dev/megaraid_sas_ioctl_node

Этот узел устройства не существует по умолчанию, вы должны создать его вручную, используя что-то вроде:

mknod /dev/megaraid_sas_ioctl_node c 253 0

Теперь, чтобы сделать существование этого узла устройства постоянным при перезагрузках, я подумал, что могу написать правило udev, но, как обычно, я кое-что упустил. я мысль Я мог бы создать такой файл, как /etc/udev/rules.d/10-local/rules, содержащий:

DRIVER=="megasas" NAME="megaraid_sas_ioctl_node" MODE="0600"

Но это не работает - нет узла устройства после перезагрузки. Вывод dmesg указывает, что драйвер megasas загружен и работает:

megasas: 00.00.04.01-RH1 Thu July 10 09:41:51 PST 2008
megasas: 0x1000:0x0060:0x1028:0x1f0c: bus 1:slot 0:func 0
megasas: FW now in Ready state

Кроме того, я не вижу никаких средств, чтобы указать udev, какой тип узла устройства нужно создать: символ или блок. Я подозреваю, что не понимаю, как именно должен работать udev.

Я понимаю, что могу просто обмануть и запустить MegaCLI в /etc/rc.local, перенаправив вывод в / dev / null; он создает узел устройства megaraid_sas_ioctl_node как часть своего выполнения. Я просто подумал, что использование правил udev будет а) чище и б) полезным упражнением для обучения. Возможно, мне следует просто сбросить приведенную выше команду mknod в /etc/rc.local ...

Итак, как мне заставить udev создать узел устройства / dev / megaraid_sas_ioctl_node на основе наличия драйвера megasas?

Ура

Стив

Вам нужно будет запустить внешний скрипт чтобы фактически создать узел устройства.