Udev использует inotify механизм для наблюдения за изменениями в каталоге правил, и в библиотеке и в локальных деревьях конфигурации (обычно расположенный в /lib/udev/rules.d
и /etc/udev/rules.d
). Таким образом, большую часть времени Вы ничего не должны делать при изменении файла правил.
Только необходимо уведомить udev демона явно при выполнении чего-то необычного, например, если у Вас есть правило, которое включает файлы в другой каталог. Затем можно использовать обычную конвенцию для просьбы, чтобы демоны перезагрузили их конфигурацию: отправьте SIGHUP (pkill -HUP udevd
). Или можно использовать udevadm
команда: udevadm control --reload-rules
.
Однако остерегайтесь этого, различные версии udev исторически имели различные триггеры для перезагрузки правил автоматически. Таким образом, если в сомнении, звонить udevadm control --reload-rules
: это не будет делать ничего плохого так или иначе.
Правила udev только применяются, когда устройство добавляется. Если Вы хотите повторно применить правила к устройству, которое уже подключено, необходимо сделать это явно путем вызова udevadm trigger
с правильными опциями соответствовать устройству (устройствам), конфигурация которого изменилась, например. udevadm trigger --attr-match=vendor='Yoyodyne' --attr-match=model='Frobnicator 300'
.
Мне удалось решить вопрос отказа сегментации, который я зарегистрирую здесь в случае, если у любого есть подобные проблемы в будущем. Я заметил это, когда я назвал следующее
ip -f inet addr show dev eth0
вместо
ip inet addr show dev eth0
затем segfault не произошло бы, но это все еще произойдет с
ip -f inet6 addr show dev eth0
Это приводит меня к заключению, что у меня должна быть несовместимость с поддержкой IPv6 где-нибудь в моем наборе инструментальных средств или busybox. Я восстанавливаю свою всю цель, набор инструментальных средств, ядро и uClibc с нуля еще раз с buildroot файлами конфигурации, на этот раз удостоверяясь, что мои crosstools были созданы с поддержкой IPv6. С той опцией устанавливает segfault, о котором сообщают, больше не происходит.