Отредактируйте драйвер запоминающего устройства USB
Я хочу отредактировать USB MSD, чтобы при каждом подключении устройства (например, флэш-накопителя) к компьютеру отображалось сообщение. Как мне это сделать? Какой именно файл нужно редактировать и как?
1 ответ
Драйвер не имеет к этому никакого отношения, он просто управляет устройством и позволяет ядру взаимодействовать с ним. То, что вы хотите, это гораздо более высокая функция рычага.
Способ сделать это с помощью udev
, менеджер устройств для ядра Linux:
Создайте скрипт, который будет отправлять уведомления. Сохраните следующие строки в файле в вашем домашнем каталоге, например
~/usbnotify.sh
:#!/bin/bash export DISPLAY=":0" notify-send "New device plugged in: $@"
Сделайте скрипт исполняемым, запустив
chmod +x ~/usbnotify.sh
Создайте новый файл с именем
/etc/udev/rules.d/95-usbnotify.rules
со следующим содержанием (адаптировано отсюда):KERNEL!="sd[a-z]*", GOTO="media_by_label_auto_mount_end" ACTION=="add", PROGRAM!="/sbin/blkid %N", GOTO="media_by_label_auto_mount_end" # Get label PROGRAM=="/sbin/blkid -o value -s LABEL %N", ENV{dir_name}="%c" # use basename to correctly handle labels such as ../mnt/foo PROGRAM=="/usr/bin/basename '%E{dir_name}'", ENV{dir_name}="%c" ENV{dir_name}=="", ENV{dir_name}="usbhd-%k" ACTION=="add", ENV{dir_name}!="", RUN+="/home/akshay/usbnotify.sh %c", GOTO="media_by_label_auto_mount_end" # Exit LABEL="media_by_label_auto_mount_end"
Убедитесь, что вы указали правильный путь к скрипту, который я использовал
/home/akshay/usbnotify.sh
но измените, чтобы указать на ваш домашний каталог.
Сохраните скрипт и все. Теперь вы должны получать уведомление для каждого подключаемого устройства, которое подключено как диск. Это, вероятно, не будет работать для камер и т.п., но для любого устройства хранения, которое подключено как /dev/sd*
должно сработать.