Como se conectar a um compartilhamento SMB do 3DS a partir do Linux?

7

O novo 3DS da Nintendo ("novo" faz parte do nome) tem a capacidade de expor uma parte SMB do seu cartão micro SD.

Ele pede que você defina um nome para o 3DS para aparecer como, e também um nome de usuário e senha. Para o seguinte, suponha que eu tenha chamado o dispositivo my3ds e o nome de usuário seja myuser . Além disso, eu dei a ele um IP estático - os dizeres são 1.2.3.4 para os exemplos. Eu posso pingar esse IP com sucesso.

No Windows, funciona sem problemas. Se eu inserir \my3ds no Explorer, ele mostrará um único compartilhamento chamado "microSD" e permitirá o acesso a seus arquivos. Não foi necessário instalar nada no Windows , ele apenas o vê da mesma forma que qualquer outra pasta compartilhada.
Nota importante: Quando faço isso, o 3DS mostra "Connected to PC" na sua tela. Nenhum dos métodos que eu experimentei do Linux produziu qualquer resposta na tela do 3DS, provavelmente indicando que a comunicação falha no começo.

A seguir estão os diferentes métodos que eu tentei e a resposta para cada um deles. Estou usando a edição de 64 bits do KDE do Linux Mint.

1) Usando o Dolphin
Método: Inserindo smb://my3ds , smb://my3ds/microSD , smb://myuser@my3ds ou smb://myuser@my3ds/microSD na barra de endereço
< strong> Response: O Dolphin exibe "pasta de carregamento" por um tempo e depois expira.

Método: acima, mas usando 1.2.3.4 em vez de my3ds
Resposta: o Dolphin diz que a pasta não existe.

2) Usando mount -t cifs
Usando mount -t cifs e o nome da máquina:

$ 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)

Nota: O ip mostrado acima é o que meu ISP redireciona nomes de host inválidos. Em outras palavras, meu roteador não pode resolver my3ds .

Usando mount -t cifs e o IP estático:

$ 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=********

... e aqui paira. Não faz nada até que eu Ctrl + C. O monitor do sistema mostra que o processo "mount.cifs" está no modo de suspensão do disco, e esses permanecem mesmo após o Ctrl + C. Mesmo executando killall -9 mount.cifs como root não os detém!

3) Usando o smbclient

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

Sem resposta, apenas retorna. É o mesmo se eu usar o 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)

É estranho que outros métodos pareçam não conseguir resolver o nome, mas este mostra que não é possível resolver o IP.

De acordo com comentário no Reddit , o Nautilus pode se conectar. Eu instalei o Nautilus e tentei, mas ele ainda falhou com um tempo limite, assim como o Dolphin.

Segundo relatos, os usuários do Mac OSX se conectaram usando o protocolo cifs: // e não smb: //. Isso parece ser o equivalente a usar a versão 1.0 com mount -t cifs , que é o padrão, mas eu também tentei especificá-lo explicitamente com vers=1.0 e isso não fez diferença.

Existe algum outro método ou configuração para mount.cifs ou smbclient que eu possa tentar? Alguém pode explicar por que não funciona?

EDITAR: Conforme solicitado, a saída de smbclient -L :

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

Além disso, parte de um tcpdump do Dolphin tentando se conectar, dado o IP (.100 é o PC, .30 o 3DS):

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.....

EDIT 2: Existe algum progresso. Seguindo o conselho do link fez o Dolphin peça um nome de usuário e senha em vez de apenas tempo limite. No entanto, ele continua pedindo repetidas vezes indefinidamente.
Toda vez que isso acontece, a tela do 3DS muda para o status "conectado" por um momento e depois de volta.

smbclient agora tem uma saída diferente:

$ smbclient --user=myuser -L my3ds
Enter myuser's password: 
session setup failed: NT_STATUS_INVALID_NETWORK_RESPONSE
    
por George T 16.10.2015 / 09:33

1 resposta

7

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

Então eu passei um tempo alguns meses atrás brute forçando cada opção cifs para tentar fazê-lo funcionar e é isso que eu encontrei esse tipo de trabalho.

A opção importante é "servern"

Quando eu digo o tipo de trabalho, quero dizer que funciona uma vez, então você tem que desmontar e reconectar ...

Eu só uso para copiar jogos individuais ocasionalmente.

    
por 22.10.2015 / 07:17