GNU/Linux >> Znalost Linux >  >> Linux

deaktivovat pravidla MTP udev pro konkrétní zařízení, aby jej bylo možné připojit jako velkokapacitní paměťové zařízení USB

Po dlouhém čtení a zkoušení.

Zjistil jsem, že to souvisí s nedávnou změnou ve výchozích pravidlech Udev pro nastavení univerzálního pravidla pro zařízení, která budou zpracována MTP, pokud neodpovídají žádným jiným pravidlům udev pro zařízení USB.

Místo toho, aby bylo mé zařízení připojeno jako velkokapacitní paměťové zařízení USB, jak tomu bylo dříve.

Zjistil jsem, že musím dát udev vědět, že toto zařízení by mělo být spravováno jako velkokapacitní paměťové zařízení USB namísto pravidla MTP catch all

Nejprve potřebuji ID svého zařízení. Pod ním je poslední v seznamu

$ 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

Jsem si jistý, že je toho víc než to, co tu mám, ale tohle mi funguje. Beru ID zařízení, které 174c:5106 a nahradit jej v níže uvedených pravidlech udev.

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

Nyní v mých systémových protokolech vidím následující

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

Nejprve zkopírujte soubor /lib/udev/rules.d/69-libmtp.rules do /etc/udev/rules.d/69-libmtp.rules :

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

V horní části tohoto souboru můžete najít:

# 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"

Poté vylučte zařízení z mtp-probe přidáním dalšího řádku za uvedené řádky:

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

Našel jsem ID zařízení USB s lsusb příkaz shell. Je to 093a:2516


Linux
  1. Konfigurace trvalého úložiště v CentOS/RHEL 5,6 pro jednu cestu pomocí pravidel udev

  2. Jak zakázat konkrétní příkaz pro konkrétního uživatele v Linuxu

  3. nastavit zařízení pro vývoj (???????????? žádná oprávnění)

  1. Jak mohu odstranit konkrétní pravidla z iptables?

  2. Jak mohu zakázat přístup k internetu pro programy spuštěné ve Wine?

  3. Použití pravidel udev ke spuštění skriptu při vložení USB

  1. Připojte zařízení se specifickými uživatelskými právy

  2. Jak si mohu být jistý, že jsem zapojil zařízení do portu USB 3?

  3. Pravidlo Udev pro shodu zařízení USB s více uzly