编辑 USB 大容量存储驱动程序

编辑 USB 大容量存储驱动程序

我想编辑 USB MSD,以便每当我将设备(如闪存驱动器)插入计算机时显示一条消息。我该怎么做?具体要编辑哪个文件以及如何编辑?

答案1

驱动程序与此无关,它只是管理设备并允许内核与其通信。你想要的是更高级别的功能。

这样做的方法是使用udev,Linux 内核的设备管理器:

  1. 创建一个将发送通知的脚本。将以下几行保存在主目录中的文件中,例如~/usbnotify.sh

    #!/bin/bash
    export DISPLAY=":0"
    notify-send "New device plugged in: $@"
    

    通过运行使脚本可执行chmod +x ~/usbnotify.sh

  2. 创建一个名为的新文件,/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*工作。

相关内容