Edite o driver de armazenamento em massa USB

2

Eu quero editar o MSD USB, para mostrar uma mensagem sempre que eu conecto um dispositivo (como uma unidade flash) ao meu computador. Como eu faço isso? Qual arquivo exatamente deve ser editado e como?

    
por akshay 19.03.2014 / 05:17

1 resposta

1

O driver não tem nada a ver com isso, apenas gerencia o dispositivo e permite que o kernel se comunique com ele. O que você quer é uma função de alavanca muito maior.

A maneira de fazer isso é usar udev , o gerenciador de dispositivos para o kernel Linux:

  1. Crie um script que enviará as notificações. Salve as seguintes linhas em um arquivo em seu diretório pessoal, por exemplo, ~/usbnotify.sh :

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

    Torne o script executável executando chmod +x ~/usbnotify.sh

  2. Crie um novo arquivo chamado /etc/udev/rules.d/95-usbnotify.rules com o seguinte conteúdo (adaptado de aqui ) :

    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"  
    

    Certifique-se de usar o caminho correto para o script, usei /home/akshay/usbnotify.sh , mas edite para apontar para o seu diretório pessoal.

Salve o script e pronto. Agora você deve receber uma notificação para cada dispositivo que você conecta e que esteja montado como uma unidade. Isso provavelmente não funcionará para câmeras e afins, mas qualquer dispositivo de armazenamento conectado como /dev/sd* deve funcionar.

    
por terdon 19.03.2014 / 06:31