¿Cómo conectarse al recurso compartido SMB de una 3DS desde Linux?

¿Cómo conectarse al recurso compartido SMB de una 3DS desde Linux?

La nueva 3DS de Nintendo ("nueva" es parte del nombre) tiene la capacidad de exponer una parte SMB de su tarjeta micro SD.

Le pide que defina un nombre para que aparezca la 3DS, y también un nombre de usuario y contraseña. Para lo siguiente, supongamos que le he dado un nombre al dispositivo my3dsy que el nombre de usuario es myuser. Además, le he dado una IP estática, digamos que es 1.2.3.4para los ejemplos. Puedo hacer ping a esta IP exitosamente.

Desde Windows funciona sin problemas. Si entro \\my3dsal Explorador, muestra un único recurso compartido llamado "microSD" y permite el acceso a sus archivos.No fue necesario instalar nada en el extremo de Windows., simplemente la ve de la misma manera que cualquier otra carpeta compartida.
Nota importante: cuando hago eso, la 3DS muestra "Conectado a la PC" en su pantalla.Ninguno de los métodos que probé desde Linux produjo ninguna respuesta en la pantalla de la 3DS, lo que probablemente indica que la comunicación falla desde el principio.

Los siguientes son los diferentes métodos que he probado y la respuesta para cada uno de ellos. Estoy usando la edición KDE de 64 bits de Linux Mint.

1) Usando Delfín
Método:Ingresando smb://my3ds, smb://my3ds/microSD, smb://myuser@my3dso smb://myuser@my3ds/microSDen la barra de direcciones
Respuesta:Dolphin muestra "carpeta de carga" por un momento y luego se agota el tiempo de espera.

Método:Lo anterior, pero usando 1.2.3.4en lugar demy3ds
Respuesta:Dolphin dice que la carpeta no existe.

2) Usandomount -t cifs
Usando mount -t cifsy el nombre de la 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: La IP que se muestra arriba es a la que mi ISP redirige nombres de host no válidos. En otras palabras, mi enrutador no puede resolver my3ds.

Usando mount -t cifsy la IP estática:

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

...y aquí cuelga. No hace nada hasta que presione Ctrl+C. El monitor del sistema muestra que el proceso "mount.cifs" está en suspensión del disco y permanece incluso después de Ctrl+C. ¡Incluso ejecutarlo killall -9 mount.cifscomo root no los detiene!

3) Usando smbclient

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

No hay respuesta, simplemente regresa.Es lo mismo si uso la 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)

Es extraño que parezca que otros métodos no pueden resolver el nombre, pero este muestra que no puede resolver la IP.

De acuerdo aun comentario en Reddit, Nautilus puede conectarse. Instalé Nautilus y lo intenté, pero aun así falló con un tiempo de espera, al igual que Dolphin.

Según se informa, los usuarios de Mac OSX se han conectado utilizando el protocolo cifs:// y no smb://. Eso parece ser el equivalente a usar la versión 1.0 con mount -t cifs, que es la predeterminada, pero también intenté especificarlo explícitamente vers=1.0y no hizo ninguna diferencia.

¿Existe algún otro método o configuración para mount.cifs o smbclient que pueda probar? ¿Alguien puede explicar por qué no funciona?

EDITAR:Según lo solicitado, la salida de smbclient -L:

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

Además, parte de un tcpdump de Dolphin intentando conectarse, dada la IP (.100 es la PC, .30 la 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.....

EDITAR 2:Hay algunos avances. Siguiendo los consejos dehttps://askubuntu.com/questions/302159/ubuntu-13-04-will-not-connect-to-share-network-driveha hecho que Dolphin solicite un nombre de usuario y contraseña en lugar de simplemente desconectarse. Sin embargo, sigue pidiéndolo una y otra vez sin cesar.
Cada vez que esto sucede, la pantalla de la 3DS cambia al estado "conectado" por un momento y luego regresa.

smbclient ahora tiene una salida diferente:

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

Respuesta1

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

Así que pasé un tiempo hace unos meses forzando cada opción de cifs para intentar que funcionara y esto es lo que encontré que funciona.

La opción importante es "servern".

Cuando digo que funciona me refiero a que funciona una vez, luego tienes que desmontarlo y volver a conectarlo...

Sólo lo uso para copiar juegos individuales de vez en cuando.

Respuesta2

La información importante aquí es que si bien puedes montar el recurso compartido de Nintendo usando este comando cifs, ¡ni siquiera debes intentar ingresar "ls" dentro, lo que desconectará el recurso compartido! Entonces, para transferir archivos, simplemente monte el recurso compartido y copie sus archivos desde la línea de comando (debe saber de memoria la ubicación de la carpeta de destino), ¡tampoco use el autocompletado!

información relacionada