我想编辑 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*
工作。