используя правила udev, создайте и удалите узел устройства при загрузке и выгрузке модуля ядра.

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


person aarshad    schedule 18.11.2016    source источник
comment
Stack Overflow — это сайт для вопросов по программированию и разработке. Этот вопрос кажется не по теме, потому что он не о программировании или разработке. См. раздел О каких темах я могу задать здесь в Справочном центре. Возможно, Суперпользователь или Unix & Linux Stack Exchange лучше спросить. См. также раздел Где размещать вопросы о Dev Ops?   -  person jww    schedule 18.11.2016
comment
@jww, спасибо за ваш отзыв. На самом деле мой вопрос не связан с программированием/сценарием напрямую, но ответ связан. В будущем я буду иметь это в виду и поставлю вопрос в такой форме, чтобы он не выглядел как вопрос разработчиков.   -  person aarshad    schedule 18.11.2016


Ответы (2)


Вы должны узнать, как работает udev

Попробуйте добавить скрипт:

cat >/path/to/myscript  <<"eof"
#!/bin/sh

newfile=`mktemp /tmp/udev-test-XXXXXXXXXX`
echo "$0 -- $@" >$newfile
set >>$newfile
eof
chmod +x /path/to/myscript

Затем (как корень)

echo >/etc/udev/rules.d/99-myscript.rules 'RUN+="/path/to/myscript"'

service udev restart

Затем попробуйте добавить/удалить устройства и посмотрите на /tmp/udev-test-*

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

person F. Hauri    schedule 18.11.2016
comment
спасибо за ваш комментарий, да, я уже знаю об основах udev и правил udev, но в основном меня интересовало решение определенного сценария. И смог найти решение, покопавшись в нем больше. - person aarshad; 18.11.2016

Подробно изучил правила udev, и с помощью инструмента udevadm я могу вывести следующие правила udev, имя моего модуля ядра — «amdtPwrProf».

При ACTION=="add" создается узел устройства, а при ACTION=="remove" этот узел устройства удаляется.

 # Create the device file when the module is inserted.

 SUBSYSTEM=="module", ACTION=="add", KERNEL=="amdtPwrProf", RUN+="/opt/codexl/amdtPwrProf_mknod.sh"


 # Remove the device file when the module is removed.

 SUBSYSTEM=="module", ACTION=="remove", KERNEL=="amdtPwrProf", RUN+="/bin/rm /dev/amdtPwrProf"

Содержимое скрипта "amdtPwrProf_mknod.sh":

mknod /dev/amdtPwrProf -m 666 c `cat /proc/amdtPwrProf/device` 0
person aarshad    schedule 18.11.2016