Правильным способом является создание правила udev, которое запускается при подключении определенного USB-устройства.
Создайте файл /etc/udev/rules.d/99-usb-load.rules изамените «7523» и «1a86» идентификатором продукта и идентификатором поставщика USB-устройства.
# For debugging if the rule is working
ACTION=="add", ENV{ID_MODEL_ID}=="7523", ENV{ID_VENDOR}=="1a86", RUN+="/bin/sh -c '/bin/echo inserted device >> /tmp/udev_file'"
ACTION=="remove", ENV{ID_MODEL_ID}=="7523", ENV{ID_VENDOR}=="1a86", RUN+="/bin/sh -c '/bin/echo removed device >> /tmp/udev_file'"
# Actual rules
ACTION=="add", ENV{ID_MODEL_ID}=="7523", ENV{ID_VENDOR}=="1a86", RUN+="/sbin/rmmod ftdi_sio"
ACTION=="remove", ENV{ID_MODEL_ID}=="7523", ENV{ID_VENDOR}=="1a86", RUN+=""
Перезапустите демон udev
sudo /etc/init.d/udev restart
Правило добавления будет выполняться всякий раз, когдаUSB-устройство с соответствующим PID / VID подключено, и оно будет выгружать модуль ftdi_sio. Первые два правила предназначены для целей отладки, которые записывают строку в / tmp / udev_file и могут использоваться для проверки того, были ли правила запущены.