GNU/Linux >> Belajar Linux >  >> Linux

nonaktifkan aturan udev MTP untuk perangkat tertentu sehingga dapat dipasang sebagai perangkat Penyimpanan Massal USB

Setelah banyak membaca dan menguji.

Saya menemukan bahwa ini terkait dengan perubahan terbaru dalam aturan Udev default untuk menetapkan aturan penampung-semua untuk perangkat yang akan ditangani oleh MTP jika tidak cocok dengan aturan udev lainnya untuk perangkat USB.

Alih-alih perangkat saya dipasang sebagai perangkat penyimpanan massal USB seperti dulu.

Saya menemukan bahwa saya perlu memberi tahu udev bahwa perangkat ini harus dikelola sebagai perangkat penyimpanan massal USB alih-alih aturan tangkapan semua MTP

Pertama saya perlu ID perangkat saya. Di bawahnya adalah yang terakhir dalam daftar

$ 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

Saya yakin ada lebih dari apa yang saya miliki di sini, tetapi ini bekerja untuk saya. Saya mengambil ID perangkat yang 174c:5106 dan ganti dalam aturan udev di bawah ini.

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

Saya sekarang melihat yang berikut di log sistem saya

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

Pertama salin file /lib/udev/rules.d/69-libmtp.rules ke /etc/udev/rules.d/69-libmtp.rules :

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

Di bagian atas file ini Anda dapat menemukan:

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

Kemudian kecualikan perangkat dari mtp-probe dengan menambahkan baris berikutnya setelah baris yang disebutkan:

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

Saya menemukan ID perangkat USB saya dengan lsusb perintah cangkang. Ini adalah 093a:2516


Linux
  1. Bagaimana Anda bisa mengidentifikasi chipset perangkat usb di Linux?

  2. menyiapkan perangkat untuk pengembangan (???????????? tidak ada izin)

  3. Bagaimana saya bisa menghapus aturan khusus dari iptables?

  1. Bagaimana cara menonaktifkan akses Internet untuk program yang berjalan di Wine?

  2. Menggunakan aturan udev untuk menjalankan skrip pada penyisipan USB

  3. Pasang perangkat dengan hak pengguna tertentu

  1. Bagaimana Cara Memicu Suatu Peristiwa Dalam Skrip Shell Saat Perangkat Usb Dihapus?

  2. Bagaimana saya bisa yakin bahwa saya telah menyambungkan perangkat ke port USB 3?

  3. Aturan Udev untuk mencocokkan beberapa perangkat USB node