¡Hola Forastero!

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

Informacion desde cero

edited marzo 2013 en Dudas
El caso es que tengo un o2media nexus2tv y, conocidas las limitaciones del firmware que trae (ya no hay actualizaciones y no funcionan las aplicaciones Youtube, Picassa...) me planteé "remangarme" y trastear con él. Soy informático, y sé programar y conozco Linux, así que supuse que con algo de documentación sobre el aparato (o alguno similar) podría empezar a jugar con él.
Después de buscar por Internet he visto que, con diferencia, esta página es la que tiene más actividad interesante. Enhorabuena a todos!.
El problemilla es que echo en falta algo de organización, esto es, algún hilo que sirva para que alguien que, como yo, empieza desde cero, pueda ir haciéndose una idea del funcionamiento de estos aparatos.
Pues eso, que si alguien puede echarme una mano, todo lo que luego pueda salir de mi aportación estará a vuestra disposición.

Gracias.

Comentarios

  • Pues en un principio, no habia nada, solo el vacio, pero entonces ocurrio una gran explosion y la onda expansiva creo el universo, eso segun unos, segun otros, fue distinto.

     

    :-))
  • Era broma, lo primero es saber si tienes acceso por telnet a tu cubo.

    Lo segundo, que chip lleva.

    Lo tercero, descarga el firmware original y descomprimelo (el archivo install,img, es un simple tar), averigua si tu firm usa squashfs o yaffs.

    Eso para empezar.

  • edited marzo 2013
    Es verdad que no hay un sitio en español donde ir y tener toda la información relevante. Aunque si te apañas con el inglés y las traducciones de Google del francés/ruso sólo se necesita Google, ganas y algo de tiempo.

    Para modificar el firmware lo único que necesitas es conocer el formato del fichero con extensión .img, saber cómo funciona linux (sobre todo en el arranque) y estudiar el lenguaje de scripts de los ficheros .rss (el menú IMS en los firmwares basados en el SDK3 y todos los menús en los basados en el SDK4 y posteriores).

    El fichero de actualización install.img es básicamente un TAR. Una vez lo descomprimes te sueles encontrar con 2 imágenes yaffs o squashfs. Estas imágenes contienen el sistema de archivos, yaffs2_1.img se montará en / y yaffs2_2.img lo hará en /usr/local/etc

    Para extraer el contenido de un firmware y volver a crear uno nuevo modificado puedes seguir los pasos que se indican en (página en inglés):


    Si el firmware que quieres modificar usa imágenes squashfs, en la misma página encontrarás un enlace para modificar dichos firmwares.

    Una vez que tienes a la mano el contenido del firmware, necesitas conocer cómo funciona el arranque en Linux. En nuestro caso te bastará saber que al inicio se ejecuta el script /etc/init.d/rcS (lo encontrarás en la imagen yaffs2_1.img). Éste, en el firmware del hmr600w, lo único que hace es ejecutar /etc/init.d/rcS1 enviando su salida a /dev/console para que se pueda ver si tienes conectado el PC al puerto serie/UART que tiene el reproductor. En este segundo script verás cómo se ejecutan otros scripts de /etc/init.d y, casi al final, se ejecuta el script /usr/local/etc/rcS (en yaffs2_2.img), que es el encargado de ejecutar el programa principal /usr/local/bin/DvdPlayer.

    Si entiendes los scripts en bash no deberías tener ningún problema en entender qué se hace en cada script.

    Luego están los archivos .rss que en nuestro HMR-600W se corresponden al menú IMS. Estos ficheros son archivos de texto con scripts programables. La información más completa sobre el lenguaje de scripts la encontrarás en (página en inglés) http://forum.xtreamer.net/mediawiki-1.15.1/index.php/Xtreamer_RSS_Guide y en (página en francés) http://geekyhmb.fr.cr/content/guide-rss-du-hmb Al menos, esas son las 2 que suelo utilizar yo, aunque, al final, la mejor guía son los propios ficheros .rss que vienen en los firmwares oficiales o en los distintos menús IMS creados por los usuarios.

    Desde un .rss sólo tienes acceso a unas funciones determinadas; para todo lo demás puedes usar llamadas a cgis que ejecute el propio servidor web del reproductor (el que viene con busybox en los firmwares oficiales o el lighttpd que usamos nosotros en nuestra mod).

    Con esta información deberías tener suficiente para empezar.

    Saludos.

  • chucky, calimocho.

    Muchisimas gracias. Esa es exactamente la información que necesitaba conocer para empezar.
    El Nexus2tv lleva un Realtek 1283DD+. Hace tiempo participé algo en un foro (espero que no entendáis que es la "competencia") sobre el aparato: http://kgdteam.com/nexus2-tv-realtek-1283-dd.html?sid=876d87a0352c2a2609408f6d96e19e79.

    Corregidme si me equivoco, pero parece que las modificaciones que hacéis consisten en añadir o modificar las opciones que aparecen en el menú que muestra la aplicación /usr/local/bin/Dvdplayer, o sea, que esa aplicación sigue proporcionando el interfaz principal del equipo, y con los scripts se pueden tener más programas instalados. No es que se sustituya completamente esa aplicación, sino que sigue siendo la que "manda", ¿no?.

    Si extraigo los archivos de una imagen del firmware me encuentro con una estructura que tiene un conjunto de ficheros en la raíz (me llaman la atención "audio_firmware_install.bin", "configuration.xml", "mkyaffs2image", "video_firmware_install.bin") y una carpeta "package2" que tiene, entre otros, un archivo "squashfs1.img" de 50MB, por lo que entiendo que el sistema de archivos es squashfs (aunque tendré que investigar más para averiguarlo).

    No entiendo cuando habláis de SDK3 y SDK4. ¿Es el SDK del chip con el que se ha compilado la imagen?¿Acaso está disponible?

    Por cierto, gracias nuevamente.
  • edited marzo 2013
    Ah! Lo olvidé. Sí que tengo acceso por telnet al cubo (hice algún retoque al arranque hace tiempo), como root, y también por FTP.
  • edited marzo 2013

    Primer error Dvdplayer es lo unico que no vas a poder
    tocar/modificar de tu cubo, es el santo grial del MOD, es la parte
    propietaria de realtek, de la que NO hay codigo fuente, ni
    informacion, asi que basicamamente, tu mision consiste en modificar
    todo alrededor de dvdplayer, pero respetando a este.

    De los archivos que mencionas, salvo configuration xml, no vas
    poder modificar nada, y modificar ese archivo al ser tu firm (como
    bien dices) squashfs no te va aportar nada.

    Vale, ya tienes en package2 los archivos squashfs1.img que
    equivale a yaffs2_1 que te decia calimocho y se monta en / tendras
    ademas usr.local.etc.tar.bz2 que es equivalente a yaffs2_2 y se monta
    en /usr/local/etc/ y sobre el archivo anterior (Es decir que en
    squashfs1.img al ser / tambien incluye /usr/local/etc) la diferencia
    es que mientras squashfs1.img (/) es solo lectura,
    usr.local.etc.tar.bz2 tiene permisos de escritura ( y es la parte
    donde se guarda por ejemplo la configuracion y paremetros
    modificables por el usuario del cubo), asi que tu siguiente mision es
    usando los enlaces que te puso calimocho es extraer el contenido de
    squashfs1,img, asi que en tu linux te tocara instalarte squashfs y
    unsquashfs, eso si nunca superior a la version 3 que es la mas alta
    que se soporta en los SDK3 (Que es la que suponemos que es el tuyo al ser tu
    chip un RTD1283)

    El SDK es el kit de desarrollo del chip, efectivamente no esta
    disponible, al menos de forma completa (Compilar un dvdplayer nuevo no
    es posible), el SDK3 es el comun para el RTD1283 y es al que realtek
    a dado soporte para ese chip, sin embargo hay una nueva version SDK4
    (Hay otra aun mas moderna SDK4.5, pero varia poco sobre la SDK4), con la que se hicieron pruebas sobre el RTD1283, para luego usarlo
    en los RTD118X, al final salieron firms SDK4 para los RTD1283, y
    funcionan, pero realtek siempre los considero pruebas, aunque algunos
    fabricantes han llegado a tenerlos como oficiales.

    La ventaja de los SDK4 sobre los SDK3 es que los SDK4 lleva
    embebido un navegador web, aunque sin soporte de flash (No preguntes, esta incluido en dvdplayer, asi que no es posible, que sepamos, añadirlo) , y que los
    menus, en lugar de ir en dvdplayer como parte del binario, son
    archivos .rss, y por lo tanto son manipulables y modificables. Es
    decir lo que en un SDK3 tendremos que poner en un .rss y como parte
    del IMS, en los SDK4, directamente puede ir en los menus de
    configuracion nativos.

  • Chucky,

    Gracias otra vez. Ya lo voy viendo claro, así que me pongo a investigar y voy comentando mis avances.
  • Por cierto, no sé si está recogido en algún mensaje del foro, pero sería interesante conocer la relación de funcionalidades que tiene el firmware que empaquetáis.
  • En el hilo de los mod firm y en el hilo de enlaces y descargas se dice las funcionalidades que se añaden a cada firm mod firm eso siempre contando desde las del firm de serie, que evidentemente no coinciden con las que trae el del tuyo de serie.
Accede o Regístrate para comentar.