「MTP」の版間の差分
(→ファイルマネージャ統合: 追加) |
(TranslationStatus) |
||
(同じ利用者による、間の2版が非表示) | |||
146行目: | 146行目: | ||
=== gvfs-mtp === |
=== gvfs-mtp === |
||
− | + | {{Pkg|gvfs-mtp}} は公式リポジトリで利用可能です。 |
|
+ | {{ic|lsusb}} を使うことで、あなたのデバイスの情報を取得できます。Bus 番号と Device 番号は、{{ic|gvfs-mtp}} で使ったり、[[udev]] ルールを作成する際のデバイス ID として使ったりできます。 |
||
− | With {{ic|lsusb}} you can get information about your device where Bus and Device numbers can be used with {{ic|gvfs-mtp}} and device ID for creating of an [[udev]] rule. |
||
Bus '''002''' Device '''018''': ID '''04b7''':'''88a9''' Compal Electronics, Inc. |
Bus '''002''' Device '''018''': ID '''04b7''':'''88a9''' Compal Electronics, Inc. |
||
+ | 検出された、MTP が有効化されたデバイスを見るには |
||
− | To see detected device with enabled MTP |
||
− | + | ''gio mount'' を使うか: |
|
{{hc|gio mount -li {{!}} grep -e ^Volume -e activation_root|2= |
{{hc|gio mount -li {{!}} grep -e ^Volume -e activation_root|2= |
||
160行目: | 160行目: | ||
}} |
}} |
||
− | + | ''lsusb'' を使ってください: |
|
{{hc|lsusb -v 2> /dev/null {{!}} grep -e Bus -e iInterface -e bInterfaceProtocol| |
{{hc|lsusb -v 2> /dev/null {{!}} grep -e Bus -e iInterface -e bInterfaceProtocol| |
||
169行目: | 169行目: | ||
...}} |
...}} |
||
+ | 利用可能なすべての接続済み MTP デバイスをマウントするには、インラインスクリプトを使用してください: |
||
− | To mount all available connected MTP devices use inline script |
||
gio mount -li | awk -F= '{if(index($2,"mtp") == 1)system("gio mount "$2)}' |
gio mount -li | awk -F= '{if(index($2,"mtp") == 1)system("gio mount "$2)}' |
||
− | + | gvfs-mtp でコマンドからマウント/ディスマウントするには、Bus 番号と Device 番号を使用してください。例えば、マウントする場合は {{ic|gio mount mtp://[usb:001,007]/}}、アンマウントする場合は {{ic|gio mount -u mtp://[usb:001,007]/}} となります。マウント済みデバイスは ''mtp:host='' で始まるディレクトリ内で利用でき、''/run/user/$UID/gvfs/'' 下に配置されています。 |
|
+ | gvfs で MTP デバイスの自動マウントを無効化するには、{{ic|/usr/share/gvfs/mounts/mtp.mount}} 内の ''AutoMount'' 変数の値を ''true'' から ''false'' に変更してください。 |
||
− | To disable automount of MTP devices with gvfs you will need to change value ''true'' to ''false'' for variable ''AutoMount'' that is located in {{ic|/usr/share/gvfs/mounts/mtp.mount}}. |
||
+ | {{Note|(上記の) ファイルマネージャは自動マウントのオプションを独自に持つことができます。起動時に、これらのファイルマネージャは利用可能なマウント可能デバイスをすべてチェックします。}} |
||
− | {{Note|The file managers can have own options for automount. On start they checking for all available mountable devices.}} |
||
+ | ファイルマネージャにあなたのデバイスが表示されない場合、[[#libmtp]] にネイティブサポートが存在せず、[https://sourceforge.net/p/libmtp/code/ci/HEAD/tree/src/music-players.h サポートされているデバイス]のリストに入っていません。コマンドラインを使ってマウントを試みる場合は、エラーが発生する場合もあります: |
||
− | If your device is not showing up in the file manager then [[#libmtp]] is missing a native support and is not currently available in the list of the [https://sourceforge.net/p/libmtp/code/ci/HEAD/tree/src/music-players.h supported devices]. If you will try to mount by using command line you may also get an error |
||
{{bc|1=Device 0 (VID=''XXXX'' and PID=''XXXX'') is UNKNOWN. |
{{bc|1=Device 0 (VID=''XXXX'' and PID=''XXXX'') is UNKNOWN. |
||
Please report this VID/PID and the device model to the libmtp development team}} |
Please report this VID/PID and the device model to the libmtp development team}} |
||
+ | デバイスをファイルマネージャに表示させるための回避策は、対象デバイス用の [[udev]] ルールを記述することです。しかし、MTP 接続を用いてデバイスをマウントできる保証はありません。 |
||
− | The workaround to make it shown in the file manager is to write an [[udev]] rule for the device but it is no guaranty that you will be able to mount it with by using MTP connection. |
||
− | + | '''vendorId''':'''productID''' という形式の ID を使用してください (例: '''04b7''':'''88a9''')。そして、設定ファイルを作成して udev ルールを作成してください: |
|
{{hc|/etc/udev/rules.d/51-android.rules|<NOWIKI> |
{{hc|/etc/udev/rules.d/51-android.rules|<NOWIKI> |
||
SUBSYSTEM=="usb", ATTR{idVendor}=="04b7", ATTR{idProduct}=="88a9", MODE="0660", GROUP="uucp", ENV{ID_MTP_DEVICE}="1", SYMLINK+="libmtp"</NOWIKI> |
SUBSYSTEM=="usb", ATTR{idVendor}=="04b7", ATTR{idProduct}=="88a9", MODE="0660", GROUP="uucp", ENV{ID_MTP_DEVICE}="1", SYMLINK+="libmtp"</NOWIKI> |
||
}} |
}} |
||
+ | udev ルールを再読込してください: |
||
− | Reload the udev rules. |
||
# udevadm control --reload |
# udevadm control --reload |
||
+ | [[gvfs]] をサポートしているファイルマネージャは、MTP デバイスを表示でき、[[#libmtp]] によってサポートされていればマウントできます。しかし、サポートがなく、デバイスを開けない場合、携帯電話の設定を PTP に変更し、{{Pkg|gvfs-gphoto2}} をインストールして、最低限、写真へのアクセスをできるようにしてください。PTP のマウントを行うコマンドラインは MTP デバイスのそれに少し似ています: {{ic|gio mount gphoto2://[usb:002,019]/}}。 |
||
− | The file managers with support for [[gvfs]] will be able to show MTP devices and mount them if supported by [[#libmtp]] but if has no support and cannot be opened then change settings in the phone to PTP and install {{Pkg|gvfs-gphoto2}} for having access at least to the photos, command line mounting of PTP is a little similar to mounting of the MTP devices: {{ic|gio mount gphoto2://[usb:002,019]/}}. |
||
+ | {{Note|デバイスへのアクセスが制限され、コマンドラインから標準的なコマンド (例: {{ic|cp}}、{{ic|ls}}) を使用できない場合、[[gvfs]] 独自の代替コマンドを探してみてください: {{ic|ls -1 /usr/bin/gvfs-*}}。}} |
||
− | {{Note|If you getting limited access to the device and cannot use standard commands from command line such as e.g. {{ic|cp}},{{ic|ls}} then look for [[gvfs]] own alternatives, {{ic|ls -1 /usr/bin/gvfs-*}}.}} |
||
== トラブルシューティング == |
== トラブルシューティング == |
||
+ | === libmtp (gvfs-mtp): ファイルマネージャ (nautilus、pcmanfm、vifm など) が Android デバイスの DCIM/Camera にアクセスする際にハングする === |
||
− | === libmtp === |
||
+ | 症状: DCIM/Camera ディレクトリに入る事以外、うまく機能する。この場合、ファイルマネージャがフリーズし、コマンドラインからそのディレクトリで {{ic|ls}} を実行することさえできなくなるs。 |
||
− | ==== 未知のデバイス ==== |
||
+ | 可能性の高い原因は libmtp のバグです。 |
||
− | 以下のようなメッセージが表示される場合: |
||
+ | どうやら {{ic|20180915_180351(0).jpg}} のような名前のファイルが原因のようです。例として、Samsung の電話はそのような名前のファイルを作成する傾向にあります。 |
||
− | Device 0 (VID=XXXX and PID=XXXX) is UNKNOWN. |
||
− | Please report this VID/PID and the device model to the libmtp development team |
||
+ | これに関するチケット ([https://sourceforge.net/p/libmtp/bugs/1830/ 1]、[https://sourceforge.net/p/libmtp/bugs/1808/ 2] など) と質問 ([https://askubuntu.com/questions/995383/nautilus-hangs-on-accessing-dcim-camera-on-android 1]、[https://askubuntu.com/questions/1030736/cant-open-photos-stored-on-android-system-from-ubuntu/1148034#1148034 2]) が複数存在します。 |
||
− | デバイスが次のリストに含まれているか確認する必要があります: [https://sourceforge.net/p/libmtp/code/ci/HEAD/tree/src/music-players.h Supported devices list]。リストに入っていない場合は、開発チームに報告してください。リストに含まれている場合は、libmtp が少しだけ旧式になっている可能性があります。libmtp によって適切に使用されるように、デバイスを次のファイルに追加することが可能です: |
||
− | /usr/lib/udev/rules.d/69-libmtp.rules |
||
+ | 可能な回避策は、そのようなディレクトリに対しては [[#FUSE ファイルシステム]] にある go-mtpfs などの異なるオプションを使うか、あるいは、どうにかして携帯カメラのファイル命名ポリシーを変更する (または、[https://opencamera.sourceforge.io/ Open Camera] などの他のカメラアプリに変える) ことです。 |
||
− | ==== Unable to enumerate USB device ==== |
||
+ | === jmtpfs: 初回アクセス時に入出力エラー === |
||
− | システムログ ({{ic|journalctl}}) に以下のようなメッセージが表示される場合: |
||
+ | 症状: jmtpfs はマウントに成功するが、デバイス上のファイルに ({{ic|ls}} などで) アクセスすると、エラーが報告される: |
||
− | usb usb4-port2: unable to enumerate USB device |
||
+ | cannot access <mount-point>: Input/output error |
||
− | 以下のコマンドを実行してみてください [https://bbs.archlinux.org/viewtopic.php?pid=1087323#p1087323]: |
||
+ | これはセキュリティ機能のようです: 携帯電話がロックスクリーンによってロックされているとき、MTP は機能しません。電話をアンロックすれば、ケーブルで繋がっている限り再び機能するはずです。 |
||
− | # modprobe -vr uhci_hcd |
||
− | # modprobe -va ohci_hcd |
||
− | # modprobe -va uhci_hcd |
||
+ | === kio-mtp: 「ファイルマネージャで開く」アクションを使用できない === |
||
− | 上記のコマンドで直る場合、以下の内容で {{ic|/etc/modprobe.d/usb_hci_order.conf}} を作成してください: |
||
+ | 「ファイルマネージャで開く」アクションを使うことができない場合、{{ic|/usr/share/solid/actions/solid_mtp.desktop}} ファイルを編集することでこの問題を回避できます。 |
||
− | # create a dependency on ohci for uhci, which fixes problems |
||
− | # with external usb devices not showing up |
||
− | # |
||
− | softdep uhci_hcd pre: ohci_hcd |
||
+ | {{ic|1=Exec=kioclient exec mtp:udi=%i/}} の行を {{ic|1=Exec=dolphin "mtp:/"}} に変更してください。 |
||
− | === gvfs-mtp === |
||
+ | === kio-mtp が異なるサービスから同時に呼び出される === |
||
− | {{Pkg|gvfs-mtp}} パッケージをインストールしても、デバイスがファイルマネージャに表示されない場合、デバイスが自動マウントされるように udev ルールを書く必要があるかもしれません。 |
||
+ | [https://bbs.archlinux.org/viewtopic.php?pid=1657736#p1657736 このフォーラム]で言及されている通り、mtpfs と kio-mtp (及び、音楽プレイヤを含む、kio-mtp を使用する、衝突するサービス) を並列に使用するのは避けるべきです。 |
||
− | デバイスを接続して、vendor-id と product-id をそれぞれ取得してください: |
||
+ | 例えば、MTP サービス用の Amarok のプラグインは、Dolphin (plasma) が異なるモデルの電話のファイルにアクセスできなくするかもしれません。そのプラグインをオフにすることで、少なくとも1つのユーザに対してはこれを解決できます。 |
||
− | $ lsusb |
||
− | Bus 001 Device 007: ID 0421:0661 Nokia Mobile Phones Lumia 920 |
||
− | (...) |
||
+ | === Android File Transfer: connect failed: no MTP device found === |
||
− | ID の文字の後の2つの数字が ''vendorID'' : ''productID'' です。 |
||
+ | {{Pkg|android-file-transfer}} をインストールした後に MTP デバイスをマウントしようとすると以下のエラーが発生する場合: |
||
− | ID がわかったら udev ルールを作成します。例: |
||
+ | {{hc|$ aft-mtp-mount /path/to/folder| |
||
− | # nano /etc/udev/rules.d/51-android.rules |
||
+ | connect failed: no MTP device found |
||
− | |||
+ | }} |
||
− | ルールの中身は以下のようにしてください: |
||
− | |||
− | ATTR{idVendor}=="YOUR VENDOR ID HERE", ATTR{idProduct}=="YOUR PRODUCT ID HERE", SYMLINK+="libmtp", MODE="660", ENV{ID_MTP_DEVICE}="1" |
||
− | |||
− | udev ルールをリロードします: |
||
− | |||
− | # udevadm control --reload |
||
− | |||
− | そしてシステムを再起動してください。これで (Thunar などの) ファイルマネージャは MTP デバイスを自動でマウントできるようになったはずです [https://bbs.archlinux.org/viewtopic.php?id=180719]。 |
||
− | |||
− | === jmtpfs === |
||
− | |||
− | jmtpfs でマウントは成功するがデバイス上のファイルにアクセスしようとすると以下のエラーが表示される場合: |
||
− | |||
− | cannot access <mount-point>: Input/output error |
||
− | |||
− | 上記のエラーはセキュリティ機能が原因です。スマートフォンがロック画面でロックされているときに MTP は使用できません。ロックを解除してもういちど試してみてください。 |
||
− | |||
− | === kio-mtp === |
||
+ | {{Pkg|android-udev}} をインストールしてください。このパッケージには製造業者/デバイス毎に対して MTP デバイスの [[udev|udev ルール]]が含まれていて、[[ADB]] や MTP をより簡単に使えるようにします。 |
||
− | "ファイルマネージャで開く"が使えない場合は、{{ic|/usr/share/apps/solid/actions/solid_mtp.desktop}} ファイルを編集することで問題を解決できます。 |
||
+ | {{TranslationStatus|Media Transfer Protocol|2023-03-22|773401}} |
||
− | 次の行を: |
||
− | Exec=kioclient exec mtp:udi=%i/ |
||
− | 以下のように変更してください: |
||
− | Exec=dolphin "mtp:/" |
2023年3月22日 (水) 16:38時点における最新版
メディア転送プロトコル (Media Transfer Protocol, MTP) は、多くの携帯電話 (全 Windows Phone 7/8/10 デバイスやほとんどの新しい Android デバイス) やメディアプレイヤ (例: Creative Zen) との間でメディアファイルの転送を行うために使用できます。
接続
MTP を介してコンピュータをデバイスに接続するには:
- 対象デバイスがあなたのコンピュータと USB で接続されている必要があります
- MTP が対象デバイスで有効化されている必要があります
- デバイスのスクリーンがアンロックされている必要があります (セキュリティ上の理由により)
FUSE ファイルシステム
以下のプログラムは、FUSE ファイルシステムを介して MTP デバイスにアクセスできるようにします。
FUSE ベースのファイルシステムを使用する場合、まず先にマウントポイントのディレクトリを作成する必要があるかもしれません。以下の例では ~/mnt
ディレクトリが使われています。
通常、FUSE のマウントは fusermount -u マウントポイント
を使ってアンマウントできます。
Android File Transfer
Android File Transfer — CLI、Qt UI、カスタムの MTP 実装を使用する FUSE ラッパを搭載している MTP クライアント
~/mnt
にデバイスをマウントするには:
$ aft-mtp-mount ~/mnt
アルバムアートを表示させたい場合は、albumart.xxx
という名前にし、一番最初にマウント先のフォルダに配置しておかなければなりません。その後で、他のファイルをコピーしてください。また、fuse は ui/cli のファイル転送よりも 7~8 倍遅くなる可能性があることに注意してください。
コマンドラインインターフェイスでデバイスと対話したい場合は、以下のコマンドを実行してください:
$ aft-mtp-cli
help と入力すると、利用可能な全コマンドが一覧表示されます。exit と入力すると終了します。
グラフィカルユーザインターフェイスでデバイスと対話したい場合は、android-file-transfer アプリケーションを起動し、マウント先フォルダを選択して、ツールバーの任意のボタンを押してください。利用可能なオプションは、Upload Album、Upload Directory、Upload Files です。最後の2つは自明です。Upload album は、ソースディレクトリからアルバムカバーを検索し、利用可能な最も良いカバーを設定します。
MTPfs
MTPfs — libmtp ベース。任意の MTP デバイスに対して読み書きをサポートする FUSE ファイルシステムです
まず、/etc/fuse.conf
を編集して、以下の行をアンコメントしてください:
user_allow_other
~/mnt
にデバイスをマウントします:
$ mtpfs -o allow_other ~/mnt
jmtpfs
jmtpfs — libmtp ベース。MTP (Media Transfer Protocol) デバイスにアクセスします。
~/mnt
にデバイスをマウントします:
$ jmtpfs ~/mnt
2つのステップを行うことにより、Linux の残りの部分と一致させます (通常の mount/umount コマンドを使用する):
$# ln -s <実際の mount コマンドのパス/名前> <Linux の mount 規則と一致する名前> $ ln -s /sbin/jmtpfs /sbin/mount.jmtpfs
以下の行を /etc/fstab
に追加してください:
#jmtpfs <mount path> fuse nodev,allow_other,<other options> 0 0 jmtpfs /home/sam/run/motog fuse nodev,allow_other,rw,user,noauto,noatime,uid=1000,gid=1000 0 0
そして、デバイスをマウントし、オプションが渡されていることを確認してください:
$ mount /home/sam/run/motog Device 0 (VID=22b8 and PID=2e82) is a Motorola Moto G (ID2). Android device detected, assigning default bug flags $ mount ... jmtpfs on /home/sam/run/motog type fuse.jmtpfs (rw,nosuid,nodev,noexec,noatime,user_id=1000,group_id=1000,allow_other,user=sam)
SIMPLE-MTPFS
SIMPLE-MTPFS — libmtp ベース。Simple Media Transfer Protocol FileSystem は、USB でローカルマシンに接続された MTP デバイス上のファイルを操作できるファイルシステムです
検出されたデバイスを一覧表示するには simple-mtpfs -l
を実行してください。
リストの最初のデバイスを ~/mnt
にマウントするには、simple-mtpfs --device 1 ~/mnt
を実行してください。
go-mtpfs
go-mtpfs — カスタムの MTP 実装を持つ、Go で書かれた FUSE ファイルシステム
android-udev をインストールしてください。これは、/etc/udev/rules.d/51-android.rules
を編集して、(mtp-detect を実行後に見られる) idVendor
と idProduct
に適用できるようにします。行の最後にはあなたのユーザ OWNER="<user>"
を追加してください。
~/mnt
上にデバイスをマウントします:
$ go-mtpfs ~/mnt
libmtp
libmtp はライブラリ MTP 実装です。いくつかのコマンドラインツールの例も付属しています (pacman -Ql libmtp
でリストアップできます)。
デバイスを検出するには mtp-detect
を実行してください。
エラーが返ってくる場合、あなたのユーザが adbusers
ユーザグループに属していることを確認してください。
mtp-connect
コマンドでファイルを転送できます。
フロントエンド
gMTP — libmtp のためのグラフィカルフロントエンド。デスクトップに依存しない GUI で Android デバイスに接続し、ファイルを管理できます。
メディアプレイヤー
Amarok などの音楽プレイヤーで MTP デバイスを使うこともできます。これには /etc/udev/rules.d/51-android.rules
を編集する必要があります (以下では MTP デバイスの例として Galaxy Nexus を使っています):
次を実行してください:
$ lsusb
あなたのデバイスを探してください。以下のように出力されるはずです:
Bus 003 Device 011: ID 04e8:6860 Samsung Electronics Co., Ltd GT-I9100 Phone [Galaxy S II], GT-P7500 [Galaxy Tab 10.1]
/etc/udev/rules.d/51-android.rules
へのエントリは以下のようになります:
SUBSYSTEM=="usb", ATTR{idVendor}=="04e8", ATTR{idProduct}=="6860", MODE="0666", OWNER="[username]"
udev ルールをリロードしてください:
# udevadm control --reload
ファイルマネージャ統合
MTP で接続された Android デバイスのストレージのコンテンツをファイルマネージャで閲覧するには、対応するプラグインをインストールしてください:
- GVFS (GNOME Files) を使用するファイルマネージャの場合は、MTP 用の gvfs-mtp か PTP サポート用の gvfs-gphoto2 をインストールしてください。
- KIO (KDE の Dolphin) を使用するファイルマネージャの場合は、kio-extras (dolphin の依存パッケージ) に MTP サポートが含まれています。
必要なパッケージをインストールしたら、デバイスがファイルマネージャに自動的に表示され、URL (例: mtp://[usb:002,013]/
) からアクセスできるはずです。
gvfs-mtp
gvfs-mtp は公式リポジトリで利用可能です。
lsusb
を使うことで、あなたのデバイスの情報を取得できます。Bus 番号と Device 番号は、gvfs-mtp
で使ったり、udev ルールを作成する際のデバイス ID として使ったりできます。
Bus 002 Device 018: ID 04b7:88a9 Compal Electronics, Inc.
検出された、MTP が有効化されたデバイスを見るには
gio mount を使うか:
gio mount -li | grep -e ^Volume -e activation_root
Volume(0): MT65xx Android Phone activation_root=mtp://[usb:002,018]/
lsusb を使ってください:
lsusb -v 2> /dev/null | grep -e Bus -e iInterface -e bInterfaceProtocol
... Bus 002 Device 018: ID 04b7:88a9 Compal Electronics, Inc. bInterfaceProtocol 0 iInterface 5 MTP ...
利用可能なすべての接続済み MTP デバイスをマウントするには、インラインスクリプトを使用してください:
gio mount -li | awk -F= '{if(index($2,"mtp") == 1)system("gio mount "$2)}'
gvfs-mtp でコマンドからマウント/ディスマウントするには、Bus 番号と Device 番号を使用してください。例えば、マウントする場合は gio mount mtp://[usb:001,007]/
、アンマウントする場合は gio mount -u mtp://[usb:001,007]/
となります。マウント済みデバイスは mtp:host= で始まるディレクトリ内で利用でき、/run/user/$UID/gvfs/ 下に配置されています。
gvfs で MTP デバイスの自動マウントを無効化するには、/usr/share/gvfs/mounts/mtp.mount
内の AutoMount 変数の値を true から false に変更してください。
ファイルマネージャにあなたのデバイスが表示されない場合、#libmtp にネイティブサポートが存在せず、サポートされているデバイスのリストに入っていません。コマンドラインを使ってマウントを試みる場合は、エラーが発生する場合もあります:
Device 0 (VID=XXXX and PID=XXXX) is UNKNOWN. Please report this VID/PID and the device model to the libmtp development team
デバイスをファイルマネージャに表示させるための回避策は、対象デバイス用の udev ルールを記述することです。しかし、MTP 接続を用いてデバイスをマウントできる保証はありません。
vendorId:productID という形式の ID を使用してください (例: 04b7:88a9)。そして、設定ファイルを作成して udev ルールを作成してください:
/etc/udev/rules.d/51-android.rules
SUBSYSTEM=="usb", ATTR{idVendor}=="04b7", ATTR{idProduct}=="88a9", MODE="0660", GROUP="uucp", ENV{ID_MTP_DEVICE}="1", SYMLINK+="libmtp"
udev ルールを再読込してください:
# udevadm control --reload
gvfs をサポートしているファイルマネージャは、MTP デバイスを表示でき、#libmtp によってサポートされていればマウントできます。しかし、サポートがなく、デバイスを開けない場合、携帯電話の設定を PTP に変更し、gvfs-gphoto2 をインストールして、最低限、写真へのアクセスをできるようにしてください。PTP のマウントを行うコマンドラインは MTP デバイスのそれに少し似ています: gio mount gphoto2://[usb:002,019]/
。
トラブルシューティング
libmtp (gvfs-mtp): ファイルマネージャ (nautilus、pcmanfm、vifm など) が Android デバイスの DCIM/Camera にアクセスする際にハングする
症状: DCIM/Camera ディレクトリに入る事以外、うまく機能する。この場合、ファイルマネージャがフリーズし、コマンドラインからそのディレクトリで ls
を実行することさえできなくなるs。
可能性の高い原因は libmtp のバグです。
どうやら 20180915_180351(0).jpg
のような名前のファイルが原因のようです。例として、Samsung の電話はそのような名前のファイルを作成する傾向にあります。
これに関するチケット (1、2 など) と質問 (1、2) が複数存在します。
可能な回避策は、そのようなディレクトリに対しては #FUSE ファイルシステム にある go-mtpfs などの異なるオプションを使うか、あるいは、どうにかして携帯カメラのファイル命名ポリシーを変更する (または、Open Camera などの他のカメラアプリに変える) ことです。
jmtpfs: 初回アクセス時に入出力エラー
症状: jmtpfs はマウントに成功するが、デバイス上のファイルに (ls
などで) アクセスすると、エラーが報告される:
cannot access <mount-point>: Input/output error
これはセキュリティ機能のようです: 携帯電話がロックスクリーンによってロックされているとき、MTP は機能しません。電話をアンロックすれば、ケーブルで繋がっている限り再び機能するはずです。
kio-mtp: 「ファイルマネージャで開く」アクションを使用できない
「ファイルマネージャで開く」アクションを使うことができない場合、/usr/share/solid/actions/solid_mtp.desktop
ファイルを編集することでこの問題を回避できます。
Exec=kioclient exec mtp:udi=%i/
の行を Exec=dolphin "mtp:/"
に変更してください。
kio-mtp が異なるサービスから同時に呼び出される
このフォーラムで言及されている通り、mtpfs と kio-mtp (及び、音楽プレイヤを含む、kio-mtp を使用する、衝突するサービス) を並列に使用するのは避けるべきです。
例えば、MTP サービス用の Amarok のプラグインは、Dolphin (plasma) が異なるモデルの電話のファイルにアクセスできなくするかもしれません。そのプラグインをオフにすることで、少なくとも1つのユーザに対してはこれを解決できます。
Android File Transfer: connect failed: no MTP device found
android-file-transfer をインストールした後に MTP デバイスをマウントしようとすると以下のエラーが発生する場合:
$ aft-mtp-mount /path/to/folder
connect failed: no MTP device found
android-udev をインストールしてください。このパッケージには製造業者/デバイス毎に対して MTP デバイスの udev ルールが含まれていて、ADB や MTP をより簡単に使えるようにします。