質問: 特定のデバイスのmtp udevルールを無効にして、usb大容量ストレージデバイスとしてマウントできるようにする android /モバイルデバイスではない特定のデバイスに問題があります。 大容量記憶装置として接続しようとしているのは、内蔵ハードドライブを備えたメディアプレーヤーです。そのため、映画やシリーズをそこからコピーすることもできます。システムに接続すると、次のように表示されますkernel: usb 1-4: new high-speed usb device number 7 using xhci_hcd systemd[1]: starting cleanup of temporary directories... systemd[1]: started cleanup of temporary directories. mtp-probe[4978]: checking bus 1, device 7: "/sys/devices/pci0000:00/0000:00:14.0/usb1/1-4" kernel: usb 1-4: can't set config #1, error -110 mtp-probe[4978]: bus: 1, device: 7 was not an mtp device kernel: usb 1-4: usb disconnect, device number 7 lsusbは私を示していますbus 001 device 008: id 174c:5106 asmedia technology inc. asm1051 sata 3gb/s bridge couldn't open device, some information will be missing device descriptor: blength 18 bdescriptortype 1 bcdusb 2.10 bdeviceclass 0 bdevicesubclass 0 bdeviceprotocol 0 bmaxpacketsize0 64 idvendor 0x174c asmedia technology inc. idproduct 0x5106 asm1051 sata 3gb/s bridge bcddevice 0.01 imanufacturer 2 iproduct 3 iserial 1 bnumconfigurations 1 configuration descriptor: blength 9 bdescriptortype 2 wtotallength 32 bnuminterfaces 1 bconfigurationvalue 1 iconfiguration 0 bmattributes 0xc0 self powered maxpower 0ma interface descriptor: blength 9 bdescriptortype 4 binterfacenumber 0 balternatesetting 0 bnumendpoints 2 binterfaceclass 8 mass storage binterfacesubclass 6 scsi binterfaceprotocol 80 bulk-only iinterface 0 endpoint descriptor: blength 7 bdescriptortype 5 bendpointaddress 0x81 ep 1 in bmattributes 2 transfer type bulk synch type none usage type data wmaxpacketsize 0x0200 1x 512 bytes binterval 0 endpoint descriptor: blength 7 bdescriptortype 5 bendpointaddress 0x02 ep 2 out bmattributes 2 transfer type bulk synch type none usage type data wmaxpacketsize 0x0200 1x 512 bytes binterval 0 私のカーネルとディストリビューションuname -a linux aaron-pc 4.9.24-1-manjaro #1 smp preempt fri apr 21 08:32:28 utc 2017 x86_64 gnu/linux
回答: 多くの読書とテストの後。これは、デバイスがusbデバイスの他のudevルールと一致しない場合にmtpによって処理されるデバイスのキャッチオールルールを設定するデフォルトのudevルールの最近の変更に関連していることがわかりました。デバイスを以前のようにusb大容量ストレージデバイスとしてマウントする代わりに。このデバイスはmtpではなくusb大容量ストレージデバイスを管理する必要があることをudevに通知する必要があることがわかりましたまず、デバイスidが必要です。その下はリストの最後のものです$ 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 私がここに持っているものよりもこれ以上のものがあると確信していますが、これは私にとってはうまくいきます。デバイスidを取得します174c:5106と以下のudevルールで置き換えます。$ cat /etc/udev/rules.d/90-myrules.rules subsystems=="usb", env{modalias}=="usb:174c:5106", env{modalias}="usb-storage" システムログに以下が表示されます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