Es: 2. Instalación y Actualización - eduardofilo/RG350_adam_image GitHub Wiki

CONSEJO IMPORTANTE: Es altamente recomendable no flashear directamente sobre la misma tarjeta donde tuviéramos la instalación anterior. Haciéndolo sobre una tarjeta distinta y conservándola durante un tiempo, siempre podremos recuperar algún fichero que echemos en falta (como algún savestate).

Instalación desde cero

  1. Descargar la imagen del apartado releases de este repositorio correspondiente a tu dispositivo:
    • adam_vX.X.img.xz: RG280V, RG280M, RG350/P, RG350M, PocketGo2 v2, RG300X
    • adam_vX.X_PGv1.img.xz: PocketGo2 v1, GCW-Zero.
  2. Sin necesidad de descomprimir, flashear el archivo (img.xz) con Balena Etcher sobre una tarjeta microSD de al menos 4GB.
  3. Montar la microSD en un ordenador. Si la acabamos de flashear, dependiendo del sistema operativo, puede ser necesario extraerla del lector y volverla a insertar. En Windows se montará una de las dos particiones que contiene la tarjeta y la otra dará error. El error es normal dado que la segunda partición es de tipo Linux.
  4. Colocar el kernel adecuado al modelo de nuestra consola. Esto puede hacerse de varias maneras en función del sistema operativo del PC.

Windows

  1. Abrir el script select_kernel.bat que hay en la partición que se monta correctamente, haciendo doble clic sobre él.

    Win selector script

  2. Aparecerá una consola donde tendremos que teclear el número correspondiente a nuestro modelo de consola del listado que veremos.

    Win selector script 2

  3. Pulsar Retorno y, cuando se nos indique, expulsar la tarjeta con seguridad.

    Win selector script 3

Linux

Para que el siguiente procedimiento funcione, debe estar instalado el programa dialog en la distribución (sudo apt install dialog en Debian y derivadas por ejemplo).

  1. Abrir un terminal y cambiar el directorio actual a la ruta correspondiente a la partición 1 de la tarjeta (podemos averiguar el punto de montaje en nuestro sistema con el comando df). Desde ese directorio ejecutar el comando bash select_kernel.sh.

    Linux selector script

  2. Aparecerá un diálogo que nos invitará a seleccionar nuestro modelo de consola con las teclas de cursor.

    Linux selector script 2

  3. Pulsar Retorno y, cuando se nos indique, expulsar la tarjeta con seguridad.

    Linux selector script 3

Cualquier sistema

Hay un tercer método válido para cualquier sistema operativo (Windows, Linux, Mac). Se trata de visualizar con un explorador de archivos la partición 1 de la tarjeta y copiar manualmente los dos ficheros que hay dentro del directorio correspondiente a nuestro modelo de consola a la raíz de esa partición. Al ser una partición FAT32, no debería haber problema para acceder a los ficheros desde cualquier sistema. Hacer clic en la siguiente miniatura para ver un pequeño vídeo.

Ver vídeo

Al llegar a este punto, la tarjeta estará lista para funcionar sobre el modelo de consola que hayamos seleccionado en el procedimiento anterior. Si no lo hemos hecho ya, la expulsaremos con seguridad del PC e insertaremos en la ranura de la consola marcada como INT.

El procedimiento anterior se puede repetir para cambiar a otro modelo de consola en cualquier momento. Es decir, la imagen es compatible con los cuatro modelos de consola soportados por lo que una misma tarjeta nos servirá para varias máquinas.

La partición 2 contenida en el fichero de imagen, tiene unos 3,5GB (por eso se puede flashear sin problemas en tarjetas a partir de 4GB de capacidad). En esta versión de la imagen, esta partición no se auto expandirá hasta ocupar el espacio disponible en la tarjeta. Si se quiere hacer (aunque no es necesario dado que los contenidos pesados van en la tarjeta EXT), se puede hacer con las utilidades DiskGenius de Windows o GParted de Linux.

En la primera parte de este vídeo del compañero Brumagix Gamer podemos ver el proceso de instalación:

Ver vídeo

Cómo flashear en GCW Zero

Guía elaborada por @ValdikSS.

Necesitas Linux para esto.

  1. Descarga imagen de la última release PGv1.
  2. Descomprime el archivo xz: xz -d adam_v2.1_PGv1.img.xz, esto generará adam_v2.1_PGv1.img en el mismo directorio.
  3. Divide la imagen en MBR, bootloader, partición del sistema y partición de datos:
    • dd if=adam_v2.1_PGv1.img bs=512 count=1 of=mbr.bin
    • dd if=adam_v2.1_PGv1.img bs=512 skip=1 count=30 of=bootloader.bin
    • sudo losetup --show -Pf adam_v2.1_PGv1.img
    • mkdir m && mount /dev/loopXp1 m, donde X es el número de dispositivo del paso anterior con losetup.
    • sudo mv m/gcw0/* m/ - esto copiará el kernel gcw0 a la raíz de la partición system
    • sudo umount m && sync
    • sudo cat /dev/loopXp1 > system.bin, donde X es el número de dispositivo del paso con losetup.
    • sudo cat /dev/loopXp2 > data.bin, donde X es el número de dispositivo del paso con losetup.
    • sudo losetup -d /dev/loopX, donde X es el número de dispositivo del paso con losetup.
  4. Clona el repositorio de Ingenic-boot.
  5. Aplica el siguiente parche o no se podrá compilar:
diff --git a/source/stage2_cmd_tool/stage2.h b/source/stage2_cmd_tool/stage2.h
index 54e6ce6..52b9caa 100644
--- a/source/stage2_cmd_tool/stage2.h
+++ b/source/stage2_cmd_tool/stage2.h
@@ -148,4 +148,11 @@ enum OPTION
 
 /*-------------------------------------------------------------------------*/
 
+int sd_card_init(struct ingenic_dev *ingenic_dev);
+
+int sd_card_program(struct ingenic_dev *ingenic_dev, unsigned int addr,
+                    const char *file_path, int check);
+
+int usb_ingenic_nand_ops(struct ingenic_dev *ingenic_dev, int ops);
+
 #endif /*__STAGE2_CMD_TOOL_H__ */
  1. Ejecuta make.
  2. Mantén presionados SELECT+POWER en la GCW Zero.
  3. Conecta la GCW Zero al PC mediante USB.
  4. Ejecuta sudo ./ingenic-boot --mbr mbr.bin --boot bootloader.bin --system system.bin --data data.bin.

Este proceso tardará un tiempo (alrededor de 15 minutos). El nuevo firmware se iniciará automáticamente.

Actualización hasta v1.4.2

Si se ha estado utilizando la consola con la versión anterior de la imagen, seguramente nos interese guardar los savestates de las partidas que hayamos jugado y algunos ajustes personales. Así pues, ANTES de flashear la última versión de la imagen, conviene hacer backup de algunas de estas cosas. Para facilitar esta tarea se puede utilizar la aplicación Py Backup que se describe aquí y que viene preconfigurada con los archivos más importantes de los que conviene hacer backup periódicamente.

En el siguiente vídeo se muestra el proceso completo de actualización. IMPORTANTE: Los pasos 1 al 6 del vídeo sólo serán necesarios en el caso de que la release que vayamos a instalar incorpore entre sus ficheros una configuración para Py Backup mejorada (config.ini).

Ver vídeo

Actualización desde v2.0

La versión 2.0 incluye un cambio importante para facilitar la actualización de futuras versiones. Los savestates de RetroArch y de los emuladores standalone que los soportan se almacenarán ahora en la tarjeta externa, de manera que no se perderán cuando se flashee la tarjeta interna con una nueva versión de la imagen. Los ficheros de configuración sin embargo permanecen en la tarjeta interna ya que forman parte del diseño de la imagen. Los usuarios avanzados que hagan modificaciones a estos ficheros pueden seguir utilizando Py Backup para hacer copias de seguridad y restaurarlos.

Para facilitar la migración especial entre las ramas 1.x y 2.x de la imagen, se ha creado una pequeña utilidad que copia todos los savestates a la nueva estructura de directorios que los mantiene en la tarjeta externa a partir de ahora. Los favoritos de SimpleMenu y los ajustes hechos en cada ROM del emulador elegido para ejecutarlas también son copiados. La uitlidad es el fichero adam_v2.0_migrator.opk incluido en la release v2.0. El siguiente vídeo muestra cómo instalar y utilizar esta utilidad.

Ver vídeo

Una vez utilizado, borrar el OPK adam_v2.0_migrator.opk ya que no será necesario nunca más.