No puedo hacer que el cliente NFS de Android 4.0 se conecte a mi servidor Ubuntu NFSv4: "no existe tal dispositivo"

Estoy usando el núcleo GLaDOS que incluye los módulos NFS (y estoy usando el nombre en clave Android ICS 4.0.3 ROM ) en un GSM Galaxy Nexus. Estoy tratando de conectarme a mi servidor NFSv4 (Ubuntu 11.10). Mis otros clientes (p. ej., una computadora portátil con Ubuntu 11.04) pueden conectarse a través de la misma red LAN, pero mi Galaxy Nexus no se conecta.

En el terminal Android ( BTEP ), en modo su, estoy ingresando estos comandos:

insmod sunrpc.ko
insmod lockd.ko
insmod nfs.ko

lsmod muestra los módulos cargados:

nfs 104232 0 - Live 0xbf036000
lockd 42336 1 nfs, Live 0xbf028000
sunrpc 150792 3 nfs,lockd, Live 0xbf000000

Mi comando de montaje (en la terminal, en modo su) es:

mount -t nfs4 nfserver:/shared1 /sdcard/nfs/shared1

El error es "no hay tal dispositivo". (Vea la edición a continuación: ahora tengo un nuevo error). Regresa de inmediato, por lo que estoy bastante seguro de que se trata completamente de un error del lado del cliente. Probablemente ni siquiera esté tratando de contactar al servidor.

Por lo general , el error "no hay tal dispositivo" significa que el módulo del núcleo nfs no está cargado. Sin embargo, en mi caso, sí está cargado, como se muestra arriba. ¿Alguien puede ayudar?

EDITAR : ahora creo que el comando de montaje BusyBox no es compatible con NFSv4. Desafortunadamente, mi servidor solo admite NFSv4. Así que tomé prestado un dispositivo NAS compatible con NFS v3 y lo configuré.

Ahora el error es "argumento no válido". De hecho, el comando de montaje de BusyBox da el mismo error de "argumento no válido" en todos los montajes usando "-t nfs" o "-t cifs". Eso me lleva a concluir (basado en la cita a continuación) que hay un desajuste de versión entre BusyBox y mi kernel de Linux.

  • caja ocupada: 1.19.3-Stericson
  • linux: 3.0.8-GLaDOS-V1-15

Mi conclusión está respaldada por este enlace donde dice:

This is how I interpret it.
kernel is newer - recompile mount command (i.e. busybox etc)
Make sure that it uses the headers from the kernel it will run with.

Finalmente, probar un servidor NFS v3 regular (el dispositivo NAS) con Mount Manager no funciona con NFS o CIFS. Pero AndSMB se conectará al NAS usando CIFS.

en lugar de nfs4, intente usar solo "nfs". - Iba a enviarte esto por correo electrónico y luego vi esta publicación aquí.
@Ryan: agregué una nueva sección a mi publicación con más información. Sigo teniendo problemas con Mount Manager. ¿Deberíamos discutirlos por correo electrónico?
¿Debería hacer una nueva pregunta? Ahora me doy cuenta de que la compatibilidad con NFSv4 probablemente no esté disponible en Android. Pero ahora mi problema es que intentar montar un recurso compartido NFS v3 a través del montaje de BusyBox da el error "argumento no válido" e intentar montarlo a través de Mount Manager también falla. Así que ahora quiero centrarme en hacer que NFS v3 funcione. (Me he dado por vencido con NFSv4.)
@RyanConrad: Mount Manager todavía no funciona. ¿Es incompatible con ICS? Nada parece funcionar, ni siquiera CIFS. AndSMB funciona.
Todavía estoy buscando una solución que funcione, por cierto.

Respuestas (3)

Puedo decirle que no es el mountcomando, es el módulo nfs.ko que probablemente no es compatible con NFS4.

Cuando llame mount -t nfs ...al comando de montaje, buscará el tipo de sistema de archivos de nfs. Si no lo encuentra, entonces obtienes el no such deviceerror. Si lo encuentra, básicamente entrega el "montaje" al módulo.

Para el problema del administrador de montaje, si no tiene un módulo cifs, cifs no funcionará con el administrador de montaje. AndSMB usa su propia implementación de cifs/samaba, y eso está bien, pero para lograr algo que permita que cualquier aplicación acceda al recurso compartido montado, tiene que ser el módulo cifs.ko. Tengo que investigar un poco más el problema de nfs que todavía tienes.

Tengo cifs.ko y se cargó cuando realicé las pruebas de CIFS.
Estoy de acuerdo en que la compatibilidad con NSFv4 en Android probablemente no esté disponible. Sin embargo, ni siquiera pude montar NFS v3, como expliqué en la sección EDITAR que agregué a mi publicación. Agradezco cualquier ayuda que pueda ofrecer con Mount Manager. Me encantaría usarlo porque tiene las características exactas que necesito. Gracias
Mount Manager no es compatible con Ice Cream Sandwich.
Va a depender de tu dispositivo. Necesitará el módulo CIFS correcto para que funcione el administrador de montaje. Ahora tengo 2 dispositivos que ejecutan ICS (uno ejecuta CM9, el otro es una gTablet) El dispositivo CM9 tiene un cifs.ko, la gTablet tiene soporte para cifs integrado en el kernel. Mount Manager está trabajando en ambos. Puede haber un error con NFS en ICS, ya que aún no he tenido la oportunidad de probarlo, pero CIFS está funcionando, si su dispositivo es compatible.
Voy a instalar CM9 en mi Galaxy Nexus. Estoy ejecutando Codename Android ROM ahora.
Instalé CM 9-20120418 en mi GNex. Quiero probar Mount Manager con él. ¿Tienes alguna instrucción? Por cierto, Cifs Manager vuelve a funcionar, pero al igual que con las ROM anteriores, Mount Manager no funciona. Mirando hacia adelante a un poco de ayuda. Gracias.
asegúrese de cargar el módulo cifs desde /system/lib/modules/. Si tiene problemas y todavía tiene problemas, debería (con suerte) obtener mi GNex en la próxima semana, pero aún no hay un CM9 oficial para la versión de sprint.
no hay un módulo cifs en esa ubicación. De hecho, el directorio /system/lib/modules/ no existe. Aparentemente, CM9 lo maneja de manera diferente. No puedo encontrar ninguna documentación. Pero Cifs Manager funciona. Otros han dicho que cifs está "integrado" en CM9. No estoy seguro de lo que significan exactamente, pero no veo ningún módulo .ko en ninguna parte.
puede depender de la compilación CM9, porque vibrantemtd tiene /system/lib/modules/ y tengo un cifs.ko allí.
Todavía estoy buscando una solución para esto, por cierto.

Puede que no sea lo que quieres, pero hago esto.

montaje de la caja ocupada -o rw,intr,soft,nolock,nfsvers=2 192.168.0.7:/mnt/HD/HD_a2 /mnt/sdcard/nfs

Ese enfoque estaría bien, pero no funcionará con mi ROM. ¿Qué ROM y qué teléfono estás usando? ¿Agregaste algún módulo del kernel? Si da una respuesta funcional completa, aceptaré este tipo de solución. No me importa usar el montaje de la caja ocupada. Gracias.

Tienes que escribir el comando de montaje usando-t nfs ... nfsvers=4