GNU/Linux >> Linux の 問題 >  >> Linux

特定のデバイスの MTP udev ルールを無効にして、USB 大容量ストレージ デバイスとしてマウントできるようにします。

多くの読書とテストの後。

これは、デバイスが 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

これには私がここにあるもの以上のものがあると確信していますが、これは私にとってはうまくいきます。 174c:5106 のデバイス ID を取得します 以下の 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

最初にファイル /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

このファイルの上部には、次のものがあります:

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

次に、デバイスを mtp-probe から除外します 上記の行の後に次の行を追加する:

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

lsusb の USB デバイス ID を見つけました シェルコマンド。 093a:2516です


Linux
  1. 開発用のデバイスをセットアップします (???????????? パーミッションなし)

  2. Wine で実行されているプログラムのインターネット アクセスを無効にするにはどうすればよいですか?

  3. udev ルールを使用して USB 挿入時にスクリプトを実行する

  1. 特定のユーザー権限でデバイスをマウントする

  2. 起動時に特定の PCI デバイスを無効にする

  3. 複数ノードの USB デバイスに一致する Udev ルール

  1. udev ルールを使用して単一パス用に CentOS/RHEL 5、6 で永続ストレージを構成する

  2. Linux で特定のユーザーに対して特定のコマンドを無効にする方法

  3. Linux で USB デバイスのチップセットを特定するにはどうすればよいですか?