пытаясь выяснить правила udev, которые могут автоматически создавать узел устройства, когда я вставляю определенный модуль ядра, и удалять узел устройства, когда модуль ядра удаляется.
используя правила udev, создайте и удалите узел устройства при загрузке и выгрузке модуля ядра.
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
спасибо за ваш комментарий, да, я уже знаю об основах 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