web-dev-qa-db-ja.com

特定のmtpデバイスの自動マウントを無効にしますか?

Ubuntu 16.04デスクトップで、プラグインするとすぐにMTPを使用してマウントされた電話があります。これが発生するのは望ましくありません。実際には、コンピューターのUSB電源を充電するだけです。他のデバイスを接続するとき、それらを自動マウントしたいので、この特定のデバイスのデフォルトアクションのみを停止します。

どうすればこれを達成できますか?

3
flickerfly

まず、lsusbを使用してデバイスのVendorIDとProductIDを見つけます。私のSamsung Galaxy S7 Edgeの場合、適切な行は以下のとおりです。

Bus 001 Device 029: ID 04e8:6860 Samsung Electronics Co., Ltd Galaxy (MTP)
---------------VendorID--^ : ^--ProductID 

このデバイスが接続されている場所に関連付けられているディレクトリも必要です。/sys/bus/usb/devices/*/idProductを手動で探すか、@radu-rădeanuの この簡単なスクリプト を使用できます。

これを〜/ bin/findUSBbyID.shに保存し、chmod +xに保存します。

#!/bin/bash

if [ $# -ne 2 ];then
  echo "Usage: `basename $0` idVendor idProduct"
  exit 1
fi


for X in /sys/bus/usb/devices/*; do 
    if [ "$1" == "$(cat "$X/idVendor" 2>/dev/null)" -a "$2" == "$(cat "$X/idProduct" 2>/dev/null)" ]
    then
        echo "$X"
    fi
done

~/bin/findUSBbyID.sh 04e8 6860として実行します。出力は次のようになります。

/sys/bus/usb/devices/1-1.2

この情報を使用して、/etc/udev/rules.d/90-disable-usb-device.rulesという新しいファイルを作成します。ルート権限が必要になるため、必要に応じてSudoまたはgksudoお気に入りのエディターを使用します。

ファイルには、以下のような1行が含まれている必要があります。デバイスと一致するようにVendorIDとProductIDを修正します。また、findUSBbyID.shスクリプトで見つかった製品と一致するように/sys/bus/usb/devices/$something/authorizedパスを修正します。

ACTION=="add", ATTR{idVendor}=="04e8", ATTR{idProduct}=="6860", RUN="/bin/sh -c 'echo 0 > /sys/bus/usb/devices/1-1.2/authorized'"

「MTPデバイスをマウントできません」という別のポップアップが表示される場合があります。その問題は ここで議論されている です。

1
flickerfly