¡Hola Forastero!

Pareces nuevo por aquí. Si quieres participar, ¡pulsa uno de estos botones!

Problemas al ejecutar paquetes instalados de optware

edited octubre 2013 en Tutoriales
Hola,

estoy aprendiendo a hacer modificaciones en el firmware del worter icube 3200 y he empezado con la instalacion de paquetes de
optware, en concreto el paquete file, que es sencillo y me permite ver el formato de ficheros.

he seguido el howto e instalado correctamente el paquete zlib:

Connecting to ipkg.nslu2-linux.org[140.211.169.161]:80
zlib_1.2.5-1_mipsel. 100% |*******************************************************************************************************| 73531       00:00 ETA
/tmp/opt # ipkg-cl install zlib_1.2.5-1_mipsel.ipk 
Installing zlib (1.2.5-1) to root...
Configuring zlib
Successfully terminated.

y despues el propio paquete file:

/tmp/opt # ipkg-cl install file_5.12-1_mipsel.ipk
Installing file (5.12-1) to root...
Configuring file
//tmp/package/ipkg/info/file.postinst: //tmp/package/ipkg/info/file.postinst: 5: /opt/bin/file: not found
chmod: magic.mgc: Unknown error 2
postinst script returned status 1
ERROR: file.postinst returned 1
Successfully terminated.

aqui como veis falla porque no encuentra el fichero /opt/bin/file, pero ese fichero si se ha instalado:

/tmp/opt # ls -l /opt/bin/file
-rwxr-xr-x    1 root     root        17600 Jan 12  2013 /opt/bin/file

/tmp/opt # ipkg-cl list
file - 5.12-1 - 
zlib - 1.2.5-1 - 
Successfully terminated.

me deja por ejemplo cambiarle los permisos:
/tmp/opt/bin # chmod 777 file    
/tmp/opt/bin # ls -l
-rwxrwxrwx    1 root     root        17600 Jan 12  2013 file

pero no ejecutarlo:
/tmp/opt/bin # file
-sh: file: not found
/tmp/opt/bin # /opt/bin/file
-sh: /opt/bin/file: not found

/opt es un link simbolico como indica el howto:
lrwxrwxrwx    1 root     root           18 Mar  4  2013 opt -> /usr/local/etc/opt

y /usr/local/etc esta montado con estas opciones:
/dev/mtdblock/2 on /usr/local/etc type yaffs (rw,noatime)


sabeis que puede pasar?





Comentarios

  • ¿Has probado con este tutorial?

    http://hmr600.com/discussion/512/optware-aplicaciones-diversas-corriendo-bajo-el-linux-del-cubo/p1

    En realidad no se porque estas usando /tmp. como sabes esa es una carpeta temporal, y tras cada reinicio se quedara vacio, asi que lo colocas todo en /usr/local/etc/ con la consiguiente limitacion de espacio, o bien usas la particion root del HDD, que permite mayores alegrias.

    Creo que el problema es precisamente ese, has indicado en el enlace simbolico que opt apunte a /usr/local/etc/opt, pero tu luego usas constantemente /tmp/opt

    Soy aun muy torpe en estas cosas, pero que por hay van los tiros, ademas creo recordar que dependiendo de la version de firm del 3200, opt ya estaba en el path, y en el firm (Al menos un enlace simbolico en /usr/local/bin, que si esta en el path, apuntando a /usr/local/etc/opt

  • Hola Chuky,

    el tutorial que indicas es el que he seguido. Solo cambie opt a /tmp/opt para precisamente que fuera todo temporal y se borrara en el siguiente arranque.

    Voy a repetir usando el que indican, por si el sistema de ficheros afecta, y te cuento el resultado.




  • Perfecto ya he conseguido instalar file y hacerlo funcionar. Sigo ahora con cosas mas utiles como rsync por ejemplo.

    Donde puedo encontrar tutoriales de:
        como modifcar una imagen de firmware
        como crear una imagen de firmware personalizada


  • :-S No los hay. Si que hay algunas necesidades. para tu caso concreto:

    -Una distribucion linux.

    -squashfs tools como maximo v3.0

    -yaffs2 tools

    Vamos que debes de ser capaz de crear y desempaquetar sistemas de archivos yaffs2 y squasfh. Una vez que tengas eso, es sencillo desempaquetar un firm y volver a empaquetarlo. Yo te paso los scripts completos que hace todo de una vez.^

    Pero la pregunta es ¿Que quieres hacer? lo digo porque a lo mejor no es necesario crear un firm completo.

    Y de nuevo la preguntita de marras ¿Que firm tienes en el 3200? si tienes el modfirm de mundodvd, es mucho mas facil añadir modificaciones sin crear firms completos.

    http://www.mundodvd.com/mods-firms-cubos-basados-chips-realtek-107839/

  • La información que necesitas ya estaba publicada en este mismo foro. http://hmr600.com/discussion/comment/8798#Comment_8798 

    En tu caso, que hablas de un Woxter 3200, la imagen que se monta en / está en formato squashfs.

    Saludos.
  • Hola Chucky,

    Linux, squasffs2 y yaffs2 tools las tengo listas. 

    Para desempaquetar los sistemas de una image he visto este
    howto:
    se indica tambien como crear la nueva imagen.

    Mis dudas son donde descargar el SDK4 y como hacer la compilación cruzada de un paquete para el micro que lleva el cubo.

    Como firmware he cargado el último que aparece en el link que indicas:
    Editado 18-5-13
    Actualizacion del firm anterior
    http://www.mediafire.com/download.php?cbqrdr976618kqc

    Lo que estoy preparando es un 3200 al que se puedan conectar varios Macosx para usarlo como repositorio de peliculas (eso va perfecto con el UpnP server), volumen común y TimeScape.

    El SMB va de pena: lento para listar directorios, lentisimo para subir/bajar ficheros. De momento tiro con el ftpd y filezilla, mas el rsync para hacer backups, pero quiero instalar netatalk 3.x y ssh para poder montar volumenes con afp (necesario para TimeScape).


  • edited octubre 2013
    No hay SDK4 disponible para los mortales, únicamente para OEMs (fabricantes reales del hardware), ni siquiera para las marcas (vendedores que ponen su marca a aparatos fabricados por el OEM correspondiente).

    Ellion, fabricante de los HMR-600w, publicó una especie de SDK (limitado a pequeños cambios, pero sin acceso al código de DvdPlayer) con su correspondiente Toolchain. Creo que todavía se puede descargar de http://www.mediafire.com/ellion (carpeta Ellion OpenSource  fichero support.zip). Con esa ToolChain o con otras publicadas por otros fabricantes/marcas podrás compilar programas para el Woxter 3200.

    La respuesta a "cómo hacer la compilación cruzada de un paquete" ya dependerá del paquete en cuestión y de las dependencias que tenga. En el caso más sencillo de un paquete sin dependencias, que venga con un script configure, suponiendo que tienes la toolchain en el PATH bastaría con algo como:

    ./configure --host=mipsel-linux

    y luego

    make

    En los paquetes que tengan dependencias de otras librerías tendrás que mirar en la documentación del paquete (normalmente viene en el fichero INSTALL), ejecutar el script configure con el argumento --help para que te muestre las opciones o, si no hay script configure y sólo hay un makefile, modificar dicho fichero o exportar variables como CC (compilador de C) y otras para que use las herramientas de la toolchain de Ellion en vez de las que suelen venir en cada distribución de Linux para compilar programas para PC. Si eres programador y has compilado programas para Linux, supongo que tampoco tendrás demasiados problemas. Si no es así, siempre tienes Google para buscar algo como "cross compile PAQUETE_EN CUESTION mipsel" para ver si hay instrucciones para compilar dicho paquete para el procesador Mipsel.

    Saludos.
  • Calimocho,

    muchas gracias por la info. Con lo que me cuentas creo que puedo ponerme en marcha. Ya os ire contando 
    los avances y pegas que encuentre.

    una saludo
  • Por cierto, comentas la pagina que has encontrado, pero los 3200 no van en yaffs2, van en squashfs, asi que la pagina correcta es esta:

    http://hints.msnhost.net/linux-admin/modify-firmware-on-realtek-media-players-based-on-squashfs.html

    Los HMR600 si son yaffs2

Accede o Regístrate para comentar.