Linux から 3DS の SMB 共有に接続するにはどうすればいいですか?

Linux から 3DS の SMB 共有に接続するにはどうすればいいですか?

任天堂の New 3DS (「new」は名前の一部です) には、micro SD カードの SMB 共有を公開する機能があります。

3DS の表示名とユーザー名およびパスワードを定義するように求められます。以下では、デバイスに という名前を付けmy3ds、ユーザー名を と仮定しますmyuser。また、例として という静的 IP を割り当てました1.2.3.4。この IP に正常に ping できます。

Windows からは問題なく動作します。\\my3dsエクスプローラーに入ると、「microSD」という名前の共有が 1 つ表示され、そのファイルにアクセスできるようになります。Windows側には何もインストールする必要がなかった他の共有フォルダーと同じように表示されます。
重要な注意: これを実行すると、3DS の画面に「PC に接続されました」と表示されます。Linux から試したどの方法でも 3DS の画面に応答がありませんでした。これは、通信が早い段階で失敗したことを示している可能性があります。

以下は私が試したさまざまな方法と、それぞれの応答です。私は Linux Mint の 64 ビット KDE エディションを使用しています。

1) ドルフィンを使う
方法:アドレスバーにsmb://my3ds、、smb://my3ds/microSDまたはsmb://myuser@my3dsを入力するsmb://myuser@my3ds/microSD
応答:Dolphin はしばらく「フォルダを読み込んでいます」と表示してからタイムアウトします。

方法:上記ですが1.2.3.4my3ds
応答:Dolphin はフォルダーが存在しないと表示します。

2) 使用mount -t cifs
使用方法mount -t cifsとマシン名:

$ sudo mount -t cifs //my3ds/microSD /media/3DS/ -o username=myuser
Password for myuser@//my3ds/microSD:
mount.cifs kernel mount options: ip={wrong IP},unc=\\my3ds\microSD,user=myuser,pass=********
mount error(115): Operation now in progress
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)

注: 上記の IP は、ISP が無効なホスト名をリダイレクトする IP です。つまり、ルーターが解決できないということですmy3ds

mount -t cifs静的 IP の使用:

$ sudo mount -t cifs //1.2.3.4/microSD /media/3DS/ --verbose -o username=myuser
Password for myuser@//1.2.3.4/microSD:
mount.cifs kernel mount options: ip=1.2.3.4,unc=\\1.2.3.4\microSD,user=myuser,pass=********

...そして、ここでハングします。Ctrl+C を押すまで何も起こりません。システム モニターには、プロセス "mount.cifs" がディスク スリープ状態であることが示されており、Ctrl+C を押してもそのままです。rootkillall -9 mount.cifsとして実行しても停止しません。

3) smbclientを使用する

$ smbclient --user=myuser \\\\my3ds\\
Enter myuser's password:

応答はなく、ただ返されるだけです。IP を使用する場合も同様です。

$ smbclient --user=myuser \\\\192.168.1.30\\microsd
Enter myuser's password:
Connection to 192.168.1.30 failed (Error NT_STATUS_RESOURCE_NAME_NOT_FOUND)

他の方法では名前を解決できないように見えるのに、この方法では IP を解決できないことがわかるのは奇妙です。

によるとRedditのコメント、Nautilus は接続できます。Nautilus をインストールして試してみましたが、Dolphin と同様にタイムアウトで失敗しました。

報告によると、Mac OSX ユーザーは smb:// ではなく cifs:// プロトコルを使用して接続しているようです。これは、デフォルトである でバージョン 1.0 を使用するのと同じようですmount -t cifsが、 で明示的に指定することも試みましたvers=1.0が、違いはありませんでした。

他に試せる方法や、mount.cifs または smbclient の設定はありますか? なぜ機能しないのか説明できる人はいますか?

編集:要求どおり、出力は次のようになりますsmbclient -L

$ smbclient --user=myuser -L my3ds
Enter myuser's password: 
Connection to my3ds failed (Error NT_STATUS_IO_TIMEOUT)

また、IP が指定されている場合 (.100 は PC、.30 は 3DS)、接続を試行している Dolphin からの tcpdump の一部を以下に示します。

21:00:10.004622 ARP, Request who-has 192.168.1.30 tell 192.168.1.100, length 28
    0x0000:  0001 0800 0604 0001 4ceb 4294 e68e c0a8  ........L.B.....
    0x0010:  0164 0000 0000 0000 c0a8 011e            .d..........
21:00:10.007552 ARP, Reply 192.168.1.30 is-at 40:d2:8a:35:24:f2, length 28
    0x0000:  0001 0800 0604 0002 40d2 8a35 24f2 c0a8  [email protected]$...
    0x0010:  011e 4ceb 4294 e68e c0a8 0164            ..L.B......d
21:00:10.007590 IP 192.168.1.100.60644 > 192.168.1.30.139: tcp 0
    0x0000:  4500 003c a0bb 4000 4006 162e c0a8 0164  E..<..@[email protected]
    0x0010:  c0a8 011e ece4 008b 550d 6daa 0000 0000  ........U.m.....
    0x0020:  a002 7210 d4e3 0000 0204 05b4 0402 080a  ..r.............
    0x0030:  ffff cd11 0000 0000 0103 0307            ............
21:00:10.019595 IP 192.168.1.30.139 > 192.168.1.100.60644: tcp 0
    0x0000:  4500 0030 0964 4000 4006 ad91 c0a8 011e  E..0.d@.@.......
    0x0010:  c0a8 0164 008b ece4 67a2 d9fd 550d 6dab  ...d....g...U.m.
    0x0020:  7012 ffff 0dd8 0000 0204 0550 0101 0402  p..........P....
21:00:10.019726 IP 192.168.1.100.60644 > 192.168.1.30.139: tcp 0
    0x0000:  4500 0028 a0bc 4000 4006 1641 c0a8 0164  E..(..@[email protected]
    0x0010:  c0a8 011e ece4 008b 550d 6dab 67a2 d9fe  ........U.m.g...
    0x0020:  5010 7210 c827 0000                      P.r..'..
21:00:10.019864 IP 192.168.1.100.60644 > 192.168.1.30.139: tcp 72
    0x0000:  4500 0070 a0bd 4000 4006 15f8 c0a8 0164  E..p..@[email protected]
    0x0010:  c0a8 011e ece4 008b 550d 6dab 67a2 d9fe  ........U.m.g...
    0x0020:  5018 7210 380d 0000 8100 0044 2044 4244  P.r.8......D.DBD
    0x0030:  4a44 4343 4f44 4244 4744 4943 4f44 4243  JDCCODBDGDICODBC
    0x0040:  4f44 4444 4143 4143 4143 4143 4100 2045  ODDDACACACACA..E
    0x0050:  4845 4645 5046 4345 4845 4643 4e45 4f44  HEFEPFCEHEFCNEOD
    0x0060:  4644 4646 4445 4d43 4143 4143 4141 4100  FDFFDEMCACACAAA.
21:00:10.022602 IP 192.168.1.30.139 > 192.168.1.100.60644: tcp 0
    0x0000:  4500 0028 0965 4000 4006 ad98 c0a8 011e  E..(.e@.@.......
    0x0010:  c0a8 0164 008b ece4 67a2 d9fe 550d 6df3  ...d....g...U.m.
    0x0020:  5010 ffb7 3a38 0000                      P...:8..
21:00:10.022832 IP 192.168.1.30.139 > 192.168.1.100.60644: tcp 5
    0x0000:  4500 002d 0966 4000 4006 ad92 c0a8 011e  E..-.f@.@.......
    0x0010:  c0a8 0164 008b ece4 67a2 d9fe 550d 6df3  ...d....g...U.m.
    0x0020:  5018 ffb7 3729 0000 8300 0001 80         P...7).......
21:00:10.022894 IP 192.168.1.100.60644 > 192.168.1.30.139: tcp 0
    0x0000:  4500 0028 a0be 4000 4006 163f c0a8 0164  E..(..@.@..?...d
    0x0010:  c0a8 011e ece4 008b 550d 6df3 67a2 da03  ........U.m.g...
    0x0020:  5010 7210 c7da 0000                      P.r.....
21:00:10.023078 IP 192.168.1.100.60644 > 192.168.1.30.139: tcp 0
    0x0000:  4500 0028 a0bf 4000 4006 163e c0a8 0164  E..(..@.@..>...d
    0x0010:  c0a8 011e ece4 008b 550d 6df3 67a2 da03  ........U.m.g...
    0x0020:  5011 7210 c7d9 0000                      P.r.....
21:00:10.023268 IP 192.168.1.100.60645 > 192.168.1.30.139: tcp 0
    0x0000:  4500 003c 9181 4000 4006 2568 c0a8 0164  E..<..@.@.%h...d
    0x0010:  c0a8 011e ece5 008b fd08 5c97 0000 0000  ..........\.....
    0x0020:  a002 7210 3df5 0000 0204 05b4 0402 080a  ..r.=...........
    0x0030:  ffff cd16 0000 0000 0103 0307            ............
21:00:10.023588 IP 192.168.1.30.139 > 192.168.1.100.60644: tcp 0
    0x0000:  4500 0028 0967 4000 4006 ad96 c0a8 011e  E..(.g@.@.......
    0x0010:  c0a8 0164 008b ece4 67a2 da03 550d 6df3  ...d....g...U.m.
    0x0020:  5011 ffb7 3a32 0000                      P...:2..
21:00:10.023642 IP 192.168.1.100.60644 > 192.168.1.30.139: tcp 0
    0x0000:  4500 0028 a0c0 4000 4006 163d c0a8 0164  E..(..@.@..=...d
    0x0010:  c0a8 011e ece4 008b 550d 6df4 67a2 da04  ........U.m.g...
    0x0020:  5010 7210 c7d8 0000                      P.r.....

編集2:少しは進歩がありました。https://askubuntu.com/questions/302159/ubuntu-13-04-will-not-connect-to-share-network-driveDolphin はタイムアウトする代わりにユーザー名とパスワードを要求するようになりました。しかし、何度も何度も要求し続けます。
これが発生するたびに、3DS の画面が一瞬「接続済み」ステータスに変わり、その後元に戻ります。

smbclient の出力が異なります:

$ smbclient --user=myuser -L my3ds
Enter myuser's password: 
session setup failed: NT_STATUS_INVALID_NETWORK_RESPONSE

答え1

sudo mount.cifs //3DS-3885/microSD -o user=3dsUser,password=3dsPass,ip=3dsIP,servern=3DS-3885,uid=linuxUser,gid=users,nounix,vers=1.0 mountPoint

そこで数か月前に、すべての cifs オプションを強制的に試して動作を確認しようとしたところ、これがうまく機能することが分かりました。

重要なオプションは「servern」です

ある程度動作するというのは、一度動作した後はマウント解除して再接続する必要があることを意味します...

たまに単一のゲームをコピーするために使用します。

答え2

ここで重要な情報は、この cifs コマンドを使用して nintendo 共有をマウントできますが、内部で "ls" を試みることさえできないということです。そうすると共有が切断されます。したがって、ファイルを転送するには、共有をマウントし、コマンド ラインからファイルをコピーするだけです (宛先フォルダーの場所を覚えておく必要があります)。また、オートコンプリートは使用しないでください。

関連情報