GNU/Linux >> Tutoriels Linux >  >> Linux

désactiver les règles MTP udev pour un périphérique spécifique afin qu'il puisse être monté en tant que périphérique de stockage de masse USB

Après de nombreuses lectures et tests.

J'ai découvert que cela est lié à une modification récente des règles Udev par défaut pour définir une règle fourre-tout pour les périphériques à gérer par MTP s'ils ne correspondent à aucune autre règle udev pour les périphériques USB.

Au lieu que mon appareil soit monté comme un périphérique de stockage de masse USB comme il le faisait auparavant.

J'ai trouvé que je devais faire savoir à udev que ce périphérique devait être géré comme un périphérique de stockage de masse USB au lieu de la règle MTP catch all

J'ai d'abord besoin de l'ID de mon appareil. En dessous c'est le dernier de la liste

$ lsusb                                                                                                             
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 8087:0a2a Intel Corp. 
Bus 001 Device 002: ID 04f2:b51d Chicony Electronics Co., Ltd 
Bus 001 Device 006: ID 04e8:6860 Samsung Electronics Co., Ltd Galaxy (MTP)
Bus 001 Device 005: ID 0b05:181b ASUSTek Computer, Inc. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 007: ID 174c:5106 ASMedia Technology Inc

Je suis sûr qu'il y a plus que ce que j'ai ici, mais cela fonctionne pour moi. Je prends l'identifiant de l'appareil qui 174c:5106 et remplacez-le dans les règles udev ci-dessous.

$ cat /etc/udev/rules.d/90-myrules.rules 
SUBSYSTEMS=="usb", ENV{MODALIAS}=="usb:174c:5106", ENV{MODALIAS}="usb-storage"

Je vois maintenant ce qui suit dans mes journaux système

journalctl -fe

kernel: usb 1-2: USB disconnect, device number 9
kernel: usb 1-2: new high-speed USB device number 10 using xhci_hcd
mtp-probe[9850]: checking bus 1, device 10: "/sys/devices/pci0000:00/0000:00:14.0/usb1/1-2"
mtp-probe[9850]: bus: 1, device: 10 was not an MTP device
kernel: usb-storage 1-2:1.0: USB Mass Storage device detected
kernel: scsi host3: usb-storage 1-2:1.0
kernel: usbcore: registered new interface driver usb-storage
kernel: usbcore: registered new interface driver uas
kernel: scsi 3:0:0:0: Direct-Access     ST310005 24AS             JC4B PQ: 0 ANSI: 0
kernel: sd 3:0:0:0: Attached scsi generic sg2 type 0
kernel: sd 3:0:0:0: [sdb] 1953525168 512-byte logical blocks: (1.00 TB/932 GiB)
kernel: sd 3:0:0:0: [sdb] Write Protect is off
kernel: sd 3:0:0:0: [sdb] Mode Sense: 23 00 00 00
kernel: sd 3:0:0:0: [sdb] No Caching mode page found
kernel: sd 3:0:0:0: [sdb] Assuming drive cache: write through
kernel:  sdb: sdb1
kernel: sd 3:0:0:0: [sdb] Attached SCSI disk

Copiez d'abord le fichier /lib/udev/rules.d/69-libmtp.rules à /etc/udev/rules.d/69-libmtp.rules :

$ sudo cp /lib/udev/rules.d/69-libmtp.rules /etc/udev/rules.d/69-libmtp.rules

En haut de ce fichier, vous pouvez trouver :

# Some sensitive devices we surely don't wanna probe
ATTR{idVendor}=="0670", GOTO="libmtp_rules_end"
ATTR{idVendor}=="0471", ATTR{idProduct}=="083f", GOTO="libmtp_rules_end"

Excluez ensuite l'appareil de mtp-probe en ajoutant la ligne suivante après les lignes mentionnées :

ATTR{idVendor}=="093a", ATTR{idProduct}=="2516", GOTO="libmtp_rules_end"

J'ai trouvé mon ID de périphérique USB avec lsusb commande shell. C'est 093a:2516


Linux
  1. Comment déclencher un événement dans le script Shell lorsqu'un périphérique USB est supprimé ?

  2. Dev-sda.device Dans Systemd-analyze, puis-je le désactiver ?

  3. Comment identifier le chipset d'un périphérique USB sous Linux ?

  4. configurer l'appareil pour le développement (???????????? aucune autorisation)

  5. Comment puis-je supprimer des règles spécifiques d'iptables ?

Une introduction à Udev :le sous-système Linux pour la gestion des événements de périphérique

Désactiver l'authentification par mot de passe SSH pour un utilisateur ou un groupe spécifique

Comment puis-je autoriser ou bloquer une adresse IP spécifique pour mon site Web ?

Utilisation des règles udev pour exécuter un script sur l'insertion USB

Monter un appareil avec des droits d'utilisateur spécifiques

Règle Udev pour correspondre à un périphérique USB à plusieurs nœuds