4U Bayou: Usando tu ODROID-GO para Investigación Científica

Cuando hayas terminado de descuartizar el mundo DOOM en miles de pedazos, ¿Qué tal si salvas el mundo real que te rodea? Es fácil y puedes usar tu máquina de juegos portátil favorita. Sí, es lo correcto; Con solo un par de modificaciones simples a tu querido ODROID-GO, puedes convertirte en un superhéroe que salve el medio ambiente (vea la Figura 1

Así que, sigue adelante y monta el kit de juegos portátil de acuerdo con las instrucciones de ensamblaje publicadas on-line en la Wiki de ODROID (http://wiki.odroid.com). Luego prepárate para modificar tu ODROID-GO y sal fuera a cargar contra un problema medioambiental. No te preocupes, podrás volver a hacer hamburguesas con ColecoVision BurgerTime una vez hayas salvado el mundo.

Figure 1 - A logo that you can use for this project
Figura 1 - Un logotipo que puede utilizar para este proyecto

Lo que necesitarás

  • ODROID-GO, ensamblado
  • Placa meteorológica Weather Board 2 ODROID
  • Cabezal de ángulo recto de 6 pin (www.sparkfun.com #PRT-00553 Cabezales macho separables de 40 pin: ángulo recto; 1.95$)
  • 3 bolsas de sándwich con cierre de cremallera
  • 1m (3.28’) de cable/cordón/cuerda/hilo
  • Dos apps para dispositivos inteligentes:
  • Google Science Journal
  • Vernier Graphical Analysis
  • Un río navegable local, como la que aparece en la Figura 2, que se usará para tomar las mediciones científicas

Figure 2 - This is our project site—a coastal Mississippi bayou
Figura 2: Este será el lugar de nuestro proyecto: un arroyo costero del Mississippi

Instrucciones paso a paso

1. Ensambla tu ODROID-GO siguiendo las instrucciones de la Wiki de ODROID. No es necesario modificar el hardware.

2. Coge el cabezal macho de 40 pines y separa una longitud de seis pines. Inserta este cabezal en los seis pines (1-6) de entrada/salida de propósito general (GPIO), que están más a la derecha, mirando hacia abajo desde arriba. Estos pines se pueden encontrar a lo largo del borde superior del ODROID-GO. Tras la instalación, asegúrate de que los pines estén apuntando hacia arriba como en la Figura 3.

Figure 3 - The proper orientation for the right-angle header
Figura 3 - La orientación correcta para el cabezal de ángulo recto

3. Conecta con cuidado la placa meteorológica Weather Board 2 a estos pines del cabezal.

ADVERTENCIA: asegúrate de que la placa Weather Board 2 esté en vertical y apuntando hacia FUERA de la carcasa del ODROID-GO. Cuando esté correctamente insertada, deberías poder leer las etiquetas de los pines de la placa Weather Board 2, boca abajo, de derecha a izquierda: GND, INT0, ADC3, SDA, SCL, P3V45 (Figura 4).

Figure 4 - The Weather Board 2 must face up for taking environmental readings
Figura 4: La placa Weather Board 2 debe estar boca arriba para tomar lecturas ambientales

4. Sigue expresamente las instrucciones online de “Arduino for ODROID-GO–Weather Station” de la Wiki de ODROID. Aquí tienes un breve resumen de estas instrucciones: a. Configura el Entorno de Desarrollo Integrado (IDE) de Arduino para la programación ESP32. b. Conecta el ODROID-GO a tu PC con un cable micro-USB. c. Configura la herramienta SP32 SPI Flash File System (SPIFFS). d. Importa la aplicación de ejemplo Weather Station Arduino y compílala/cárgala en tu ODROID-GO. e. Retira tu tarjeta microSD. No la necesitarás para este proyecto.

5. Realiza los siguientes cambios en el archivo Hypertext Markup Language (HTML), index.html, que está dentro de la carpeta de datos de la página web de la aplicación de ejemplo Weather Station:

line 36

<"h1">4U Bayou
<"h2">Format: Temperature C, Pressure hPa, Humidity %, Altitude m, UV Index, Visible lux, IR lux

<"h3" id=”dataLog”>

line 42
6. Continúa siguiendo las instrucciones de la Wiki de ODROID y carga la carpeta de datos utilizando la herramienta de menú ESP32 Sketch Data Upload.

7. Reinicia el ODROID-GO (es decir, apaga y encienda el interruptor de alimentación, aunque este reinicio debería producirse automáticamente). Los datos del sensor ambiental deberían mostrarse en la pantalla de cristal líquido (LCD) de color del dispositivo.

8. Conecta al punto de acceso WiFi (AP) de ODROID-GO: "ODROID_GO _ #####" usando la contraseña "12345678".

9. Inicia tu navegador web e introduce esta dirección de Protocolo de Internet (IP): http://192.168.4.1. Comprueba que los datos del sensor estén sincronizados entre el ODROID-GO y el navegador.

10. Desconecta la alimentación del ODROID-GO y retira el cable micro-USB de tu PC.

Tu dispositivo de recogida de datos de investigación científica ambiental ODROID-GO está listo para ser utilizado sobre el terreno. Los únicos datos que nos interesan en este proyecto de investigación son la temperatura y la luz visible. Aunque los datos restantes se pueden conservar para futuras referencias, la mayor parte de ellos no tendrán sentido. ¿Por qué? Porque las lecturas se realizarán desde el interior de tres bolsas de plástico cerradas y herméticas.

Para preparar la recogida de datos, enciende el ODROID-GO y deja que sus lecturas se estabilicen. Una vez que los datos se hayan establecido, introduce el dispositivo en la primera bolsa de plástico con cierre de cremallera. Asegúrate de que el cierre esté bien apretado y luego coloca el dispositivo con su bolsa dentro de la segunda bolsa de plástico y ciérrala bien con su correspondiente cremallera. Finalmente, introduce tu "sandwich" de datos con doble bolsa en la tercera bolsa de plástico y cierra la cremallera, tal y como se muestra en la Figura 5.

Figure 5 - All ready to go outside and record data inside three zipper-lock plastic bags
Figura 5: Todo listo para salir ahí fuera y registrar datos con las tres bolsas de plástico con cierre de cremallera

Deberás hacer cuidadosamente un pequeño orificio en la solapa de unos de los extremos de la tercera bolsa. NO pinche NINGUNA de las bolsas, simplemente haz una abertura en la solapa. Ahora pasa tu cable/cordón/cuerda/hilo a través de ese orificio y asegúralo con un buen nudo. Tu equipo de pruebas está listo.

Inicie sesión en el Punto de Acceso WiFi del ODROID-GO (Consejo: no debería haber demasiados puntos de acceso WiFi en tu ubicación remota) y dirige tu navegador hacía la página web de la placa Weather Board 2. Cuando estés satisfecho con los datos, guarda una copia de la pantalla del navegador. Esta pantalla contiene los datos de las condiciones actuales de la atmósfera del aire de tu lugar de pruebas.

Baja lentamente el ODROID-GO hacia el agua en la que quieres hacer pruebas (Figura 6). Presta atención a los datos que se transmiten a tu navegador. Cuando las lecturas se hayan estabilizado dentro del agua, haz otra copia de la pantalla del navegador. Esta pantalla representa las condiciones del agua de tu ubicación.

Llegados a este punto, ya ha terminado con el primer ejercicio de recogida de datos ambientales. Este mismo proceso debe repetirse a intervalos regulares durante un período prolongado de tiempo. Por ejemplo, hacer una recogida de datos todos los días durante un año. Si estás falto de tiempo, intenta hacer una captura una vez por semana durante tres meses. Simplemente recuerda que cualquier recogida de datos es mejor que nada.

Figure 6 - Don’t drop it or an alligator could become the next ODROID-GO gamer
Figura 6 - No lo sueltes o un caimán podría convertirse en el próximo jugador de ODROID-GO

¿Qué puedes hacer con los datos?

Puedes usar las apps de Vernier y Google para maquillar tus datos sobre un conjunto de gráficos, fotografías, imágenes satelitales y texto amigables y fáciles de procesar (Figuras 7-9). Luego, cuando tu pareja te reprenda con "¿Por qué no haces algo productivo con esa absurda máquina de juegos?", Puedes impresionarla con tus datos mientras analizar la ROM de BurgerTime.

Figure 7 - Use Vernier Graphical Analysis for plotting your temperature data
Figura 7 - Utiliza Vernier Graphical Analysis para representar tus datos de temperatura

Figure 8 - Record the visible light data on a separate graph
Figura 8 - Registra los datos de luz visible en un gráfico aparte

Figure 9 - Fill your Google Science Journal with graphs, photographs, notes, and your recorded environmental data
Figura 9: Rellena tu Google Science Journal con gráficos, fotografías, notas y datos ambientales registrados

Para devolver a tu ODROID-GO a su estado original de juego, tendrá que volver a colocar el archivo de imagen GO-Play en el ESP32 y volver a insertar tu tarjeta microSD que contiene los archivos del firmware, ROM de juegos y archivos BIOS de máquinas de juego.

Crossgrading ODROID: De armhf a arm64

Con el ODROID-N2 inevitablemente en camino, es posible que tengas el mismo problema que tuve yo: dispones de una compleja configuración que está funcionando muy bien en un XU4 y deseas migrarla a una nueva plataforma de 64 bits. En mi caso, quería migrar mi XU4 NAS (que cuenta con bastantes servicios y adaptaciones para duplicar) a un ODROID-N1.

La mejor forma de hacerlo es con una instalación limpia, pero como se trata de Linux, puedes migrar de 32 a 64 bits con un complejo proceso llamado crossgrading. El requisito es que el sistema de destino permita ejecutar de forma nativa las instrucciones del sistema de origen (de 64 -> 32 bits no funciona). Antes de empezar, debes tener en cuenta lo siguiente: no es un proceso apto para personas pusilánimes, y debes contar en todo momento de una copia de seguridad de tus datos, ya que el resultado final no siempre puede ses el esperado. También puede que sea necesario disponer de acceso en serie ya que desinstalarás la mayor parte de tu sistema durante el proceso.

 

 

El kernel de 64 bits

Puedes empezar haciendo un clon del sistema que deseas migrar. Puedes recurrir a una herramienta como odroid-backup (https://github.com/mad-ady/odroid-backup) o dd. Deberás preparar una tarjeta SD o un módulo eMMC de destino con una imagen funcional para tu plataforma de destino (preferiblemente con la misma versión de distribución). Por ejemplo, para migrar un sistema armhf de Ubuntu 18.04 puedes emplear una imagen arm64 18.04. Inícialo, ejecuta todas las actualizaciones de kernel, uboot y boot.ini y copia algunos archivos en una ubicación segura (conservando los permisos):

# uname -a
# apt list --installed | cut -d '/' -f 1 | tee ~odroid/armhf_packages.txt
# tar -cvf ~odroid/modules.tar /lib/modules
# tar -cvf ~odroid/firmware.tar /lib/firmware
# tar -cvf ~odroid/packages.tar /etc/apt
# tar -cvf ~odroid/include.tar /usr/include/linux/
El kernel arm64 debe tener "CONFIG_COMPAT = y" activado en su configuración, de modo que puedas ejecutar un código de 32 bits. Puedes verificarlo con:
$ zcat /proc/config.gz | grep CONFIG_COMPAT
A continuación, apaga el sistema arm64 y en un PC aparte, sobrescribe la partición rootfs (generalmente la segunda partición) con los rootfs del sistema armhf (Figura 1). Por supuesto, asegúrate de guardar los archivos que acaba de crear antes de sobrescribir la partición (no después, como lo hice yo).

Figure1 - /dev/sde2 is from the armhf system and replaces the stock arm64 partition
Figura 1 - /dev/sde2 es del sistema armhf y reemplaza la partición estándar de arm64

Una vez realizada la copia, deberás desempaquetar los archivos tar en el sistema de archivos raíz de destino para que el kernel de 64 bits pueda encontrar sus módulos al arrancar:

# cd /path/to/armhf/rootfs
# tar -xvf ~/modules.tar
# tar -xvf ~/firmware.tar
# tar -xvf ~/packages.tar
# tar -xvf ~/include.tar
En caso de que la partición armhf tenga un UUID diferente al rootfs de arm64, deberás corregir esto ya sea sobrescribiendo el UUID de armhf o cambiando bootargs en boot.ini. En mi caso, elegí sobrescribir el UUID por el UUID que el sistema arm64 espera que sea:
# e2fsck -f /dev/sdd2
# tune2fs /dev/sdd2 -U a130ca78-0841-400a-8823-06a304a00850
Ahora estás listo para arrancar en un sistema híbrido: un kernel de 64 bits con un espacio de usuario de 32 bits. Es mejor usar una conexión en serie con el dispositivo para identificar y solucionar cualquier problema. También es mejor dejar los periféricos desconectados (discos externos, etc.) llegado a este punto. Yo tuve que desactivar manualmente watchdog antes de que pudiera arrancar de forma estable en el nuevo hardware.
# rm -f /path/to/armhf/rootfs/etc/systemd/system/default.target.wants/watchdog.service
Una vez que inicies, verifica que la configuración de la red para asegurarte de que no se esté duplicando la dirección IP en tu LAN (en caso de que fuera estática) y podamos empezar a convertir los paquetes a 64 bits.

Conversión de 64 bits

Ahora viene la parte más delicada: tienes que reinstalar la mayoría de los paquetes mientras el sistema se está ejecutando. Afortunadamente, alguien se ha molestado en preparar un script que automatiza la mayor parte del trabajo, pero ha sido diseñado para realizar una migración de i386 a amd64. Hice un fork con algunos cambios (en su mayoría, renombrar i386 por armhf y amd64 por arm64) y hace su trabajo sobre el ODROID.

Antes de empezar, deberías echar un vistazo a /etc/apt/sources.list* y desactivar los repositorios específicos de ODROID para la plataforma armhf (por ejemplo, http://deb.odroid.in/5422-s para XU4) y habilitar los repositorios (si existe alguno) para arm64. También debes comprobar que los componentes universe, restricted y multiverse estén activados para que Ubuntu tenga más posibilidades de encontrar todos los paquetes necesarios.

Puedes clonar el script desde aquí al sistema de destino:

# apt-get install git
# git clone https://github.com/mad-ady/distrorejuve.git
# cd distrorejuve
# ./distrorejuve
Cuando lo ejecutas sin argumentos, éste chequea tu sistema y hace algunas recomendaciones para ayudarte con la migración. Por ejemplo, en mi caso, me recomendó desinstalar una larga lista de paquetes X11, que puedo reinstalar más tarde, y así lo hice.

Ya estás listo para iniciar el proceso de crossgrading. Asegúrate de que la red esté conectada, de que haya suficiente espacio libre en el disco (al menos unos pocos gigas) y que no haya nada que pueda interrumpir el proceso (ejecutar desde una conexión en serie o desde una sesión tmux/screen).

# ./distrorejuve.sh --to-64bit | tee -a distrorejuve.log
Una vez que se ejecute, puede indicar que algunos paquetes deb no se han instalado desde apt y que es mejor eliminarlos. Algunos pueden ser críticos, como los paquetes del kernel, así que estate atento a lo que eliminas. Puedes ignorarlo y volver a ejecutar con IGNORECRUFT=Y.
# IGNORECRUFT=Y ./distrorejuve.sh --to-64bit | tee -a distrorejuve.log
Espera a que el script muestre más información y solicite que desinstales manualmente algunos paquetes. Haz una lista con todos ellos para que puedas volver a instalarlos cuando haya terminado. El script me pidió que eliminara wpasupplicant (lo cual eliminó Network Manager), así que asegúrate de que la red este gestionada con systemd-networkd o static.

Una vez que el script empiece a hacer su trabajo, podrás ver interminables pantallas de paquetes que se eliminan, varios errores de dependencia y, en última instancia, paquetes que se instalan como arm64 nuevamente. Este proceso llevará un tiempo dependiendo de cuántos paquetes tengas instalados.

El inevitable fallo

El proceso de crossgrading puede tardar algunas horas, pero en mi caso, parece que se quedó atascado al intentar instalar libclang1-6.0 (intentó instalarlo una y otra vez). El mensaje de error era:

Unpacking libclang1-6.0:arm64 (1:6.0-1ubuntu2) ...
dpkg: error processing archive /var/cache/apt/archives/libclang1-6.0_1%3a6.0-1ubuntu2_arm64.deb (--unpack):
trying to overwrite shared '/usr/lib/llvm-6.0/lib/libclang-6.0.so.1', which is different from other instances of package libclang1-6.0:arm64
El archivo en cuestión es un enlace simbólico a una librería armhf:
# ls -l /usr/lib/llvm-6.0/lib/libclang-6.0.so.1
lrwxrwxrwx 1 root root 43 Apr 6 2018 /usr/lib/llvm-6.0/lib/libclang-6.0.so.1 -> ../../arm-linux-gnueabihf/libclang-6.0.so.1
Eliminé manualmente el archivo (desde un intérprete de comandos aparte) y el proceso de actualización continuó:
# rm /usr/lib/llvm-6.0/lib/libclang-6.0.so.1
# ls -l /usr/lib/llvm-6.0/lib/libclang-6.0.so.1
lrwxrwxrwx 1 root root 41 Apr 6 2018 /usr/lib/llvm-6.0/lib/libclang-6.0.so.1 -> ../../aarch64-linux-gnu/libclang-6.0.so.1
Es posible que aparezcan diversos problemas que tendrás que resolver por ti mismo, de modo que ésta no debe concebirse como una guía completa.

Una vez que distrorejuve finalice su trabajo, es probable que te diga que te quedan muchos paquetes armhf por eliminar.

Figure 2 - Leftover packages
Figura 2 - Paquetes residuales

También debes ejecutar el siguiente comando para ver qué archivos de configuración varían con respecto a los paquetes normales.

# bash ./distrorejuve.sh --show-changes
En mi caso, apt se interrumpió y aún quedaban un montón de paquetes dañados que necesitaban atención. Por ejemplo, ejecutar el siguiente comando dio lugar a fallos con libcdio-dev que intento sobrescribir un archivo de configuración compartido tal y como se muestra en la Figura 3.
# apt-get --fix-broken install
Figure 3 - Symptom of a broken package
Figura 3 - Síntoma de un paquete dañado

El modo de solucionar este problema fue desinstalar los paquetes ofensivos:

# apt-get remove libcdio-dev:armhf libcdio-cdda-dev:armhf libass-dev:armhf libcdio-paranoia-dev:armhf libgnutls28-dev:armhf libharfbuzz-dev:armhf libxml2-dev:armhf libbluray-dev:armhf libicu-le-hb-dev:armhf librtmp-dev:armhf samba-libs:armhf libcdio-cdda-dev libcdio-paranoia-dev ibverbs-providers:armhf ibverbs-providers:armhf
Después de esto, apt logró configurar todos los paquetes sobrantes. También puede llevar tiempo eliminar los paquetes antiguos de 32 bits:
# ./distrorejuve --remove-cruft
Tuve problemas para eliminar dash:armhf, así que apunté /bin/sh y /bin/sh.distrib hacía /bin/bash en lugar de dash. Si no hay un /bin/sh válido, obtendrás muchos fallos extraños, incluso con apt.

Figure 4 - Removing dash:armhf
Figura 4 - Eliminando dash:armhf

En este punto, es posible que quieras asegurarte de que el sistema se encuentre en un estado normal. Necesitarás comprobar lo siguiente:

  • Aún tienes paquetes básicos instalados (vim, ip, bash, netplan, etc.). Me faltaba vim, así que necesitaba reinstalarlo.
  • Comprueba que los paquetes de kernel, uboot, bootini están bien. En mi caso, estoy en un N1 que no tiene paquetes de este tipo para Ubuntu, pero existe el riesgo de que se hayan eliminado componentes clave en el proceso de migración y que tu placa no pueda arrancar. Instala los paquetes que faltan o restaura los archivos perdidos si fuera necesario.

Mantén tus dedos cruzados y reinicia.

Verificación de Servicios y parches

Probablemente tu placa arrancará sin demasiados problemas. Si es así, ¡alégrate! Si no es así, restaura la copia de seguridad y vuelve a mirar más detenidamente qué paquetes se eliminaron (recuerda, ¡no hay reembolsos!).

Pero, aun así, el sistema puede no estar en buena forma por completo. Todavía tendrás que revisar los servicios críticos y ver qué falta o qué no funciona. En mi caso:

  • Apache2 no se iniciaría porque faltaban libapache2-mod-php7.2 y libapache2-mod-fcgid
  • Git estaba ausente y necesitaba reinstalarse
  • Faltaba Samba y necesitaba una reinstalación (aunque la configuración estaba bien)
  • Faltaba Nfs-kernel-server y había que volver a instalarlo
  • Transmisión-daemon había desaparecido

Recuerda que hiciste una copia de seguridad de los paquetes armhf instalados; ahora es el momento de revisar esa lista y compararla con lo que tienes ahora para ver si falta algo importante. Observa que el filtro grep ignora las librerías, ya que generalmente son una dependencia de algo diferente. En el sistema arm64 ejecuta:

# apt list --installed | cut -d '/' -f 1 | tee /root/arm64_packages.txt
# diff -u arm64_packages.txt armhf_packages.txt | egrep '^\+' | grep -v '^\+lib'
Debes revisar la lista e instalar los paquetes necesarios antes de continuar.

Programas heredados de 32 bits

Puede haber programas que se compilaron manualmente y no se instalaron como paquetes deb. En este caso, deberás localizarlos y recompilarlos para arm64. Suponiendo que están en algún lugar de /usr/local (o en rutas conocidas), puedes encontrarlos con:

# find /usr/local -type f -executable -exec file {} ; | grep 32-bit
El problema con estos programas es que no se ejecutarán porque la migración ha eliminado armhf libc (/lib/ld-linux-armhf.so.3) y las librerías de las que dependen. Si intentas ejecutar alguno, recibirás un error de "No such file or directory" nada útil, refiriéndose al cargador que falta, no al programa en sí. Si no puede recompilarlos, puede añadir armhf como una arquitectura ajena e instalar libc6 y las dependencias de las librerías que faltan, aunque terminaras nuevamente con un sistema parcialmente híbrido.
# dpkg --add-architecture armhf
# apt-get update
# apt-get install libc6:armhf
Figure 5 - Finding armhf programs
Figura 5 - Buscando programas armhf

GPIOs y WiringPi

Los módulos (como lirc_odroid) y los programas que utilizan pines GPIO deberán revisarse manualmente porque los números de pines GPIO pueden diferir de una placa a otra. Además, si está utilizando WiringPi, necesitaras obtener e instalar la versión correcta para la placa arm64.

Configuración apuntando a dirs de 32 bits

Hay algunos programas que pueden fallar al ejecutarse porque su configuración apunta a librerias de 32 bits. Lirc puede fallar al iniciar porque suele apuntar a /usr/lib/arm-linux-gnueabihf/lirc/plugins. Deberás ajustar /etc/lirc/lirc_options.conf y cambiar plugindir=/usr/lib/aarch64-linux-gnu/lirc/plugins y reiniciar lirc. KDE puede apuntar a librerías compartidas de 32 bits y pueden tener como resultado paneles dañados igualmente. (https://wiki.debian.org/CrossGrading#Caveats_and_Known_Problems)

Librerías Perl de 32 bits

Las librerías Perl XS que se instalaron desde CPAN también podrían estar dañadas. Estas librerías tienen algún código compilado dentro que depende de la arquitectura. Puedes localizarlas con:

# perldoc perllocal | grep XS

Tipos especiales de datos

Otros programas pueden codificar sus datos utilizando estructuras que dependen del tamaño de la plataforma (o utilizan marcas de tiempo de 32 bits). Uno de estos tipos de datos es rrd, que contiene datos de series de tiempo de round-robin. Herramientas como munin o cactus generalmente escriben en archivos rrd. El programa rrdtool de 64 bits no puede funcionar con archivos rrd creados en sistemas de 32 bits, por lo que deberás exportar todos tus datos rrd a xml al mismo tiempo que se ejecutan en un sistema de 32 bits y volver a crear el rrd en el sistema de 64 bits. Puedes hacer esto en el sistema armhf:

# cd /path/to/rrd/files
# find . -type f -name '*.rrd' -exec rrdtool dump {} {}.xml ;
Puedes crearlos de nuevo en el sistema arm64 con:
# find . -type f -name "*.rrd.xml" -exec sh -c 'file="{}"; newfile=`basename $file .xml`; dir=`dirname $file`; rrdtool restore "$file" "$dir/$newfile"' ;

Conclusión

¿Cómo tal me fue con el proceso? ¡Mejor de lo esperado! ¿Deberías intentarlo? Si tiene tiempo y una copia de seguridad, no veo por qué no. Para ser justos, solo lo he probado en un sistema "servidor" hasta ahora, pero con los paquetes correctos (y los correspondientes ajustes de configuración en /etc/X11/xorg.conf) también debería funcionar con un sistema de escritorio. Hay disponible más información y ayuda en el hilo de soporte en https://forum.odroid.com/viewtopic.php?f=55&t=33861.

Framework para Modelos SBC

Para aquellos que crean diseños con un SBC o microcontroladores, contar con un modelo puede ser algo muy importante. Quisiera compartir un framework simple, liviano y dinámico para la generación de modelos de microcontroladores y de SBC escrito en OpenSCAD. Cuando originalmente creé el modelo OpenSCAD XU4 hace un par de años, https://forum.odroid.com/viewtopic.php?f=97&t=26243, era un modelo estático codificado y el único SBC que tenía. Funcionaba bien por aquel momento, pero desde entonces he adquirido algunos SBC más y he tenido la necesidad de acceder a diferentes modelos mientras trabajaba en varios proyectos.

En el proyecto actual en el que estoy trabajando intervienen múltiples SBC, por lo que decidí hacer una pausa y desarrollar los modelos para el resto de SBC involucrados. La creación de modelos para toda la línea de HK había estado en mi lista de proyectos durante algún tiempo, pero nunca llegaron a tener la prioridad suficiente como para completarlos

En lugar de hacer un modelo predeterminado para todos, decidí que sería mejor crear un framwork que pudiera manejar múltiples SBC y microcontroladores. Este método me permite acceder a todos ellos a través de una única llamada de módulo, manteniendo pequeño y eficiente el código. Esto es importante para mí, ya que los grandes y complejos ensamblajes pueden tardar un tiempo considerable en compilarse en OpenSCAD. A modo de comparación, recientemente he estudiado un modelo STEP y DXF similar al de Odroid H2 de HK. El modelo STEP era de 993 KB y el tamaño del archivo DXF era de 1,273 KB. Puede que no sea especialmente grande para un modelo 3D estático, pero cuando hay involucrados varios modelos, puede empezar a ser significativo. En cambio, todo el código y el conjunto de datos SBC utilizados en este framwork, que representa 8+ SBCs, suponen un total de 83 KB y la eficacia de este método solo aumentará a medida que se agregan más modelos.

Para mí, el criterio más importante en la mayor parte de mi trabajo está relacionado con las dimensiones físicas, de modo que la ubicación y la verificación se pueden realizar de forma rápida y sencilla a medida que desarrollo los diseños. Para que las cosas sean lo más precisas posible, la información para los modelos procede de los planos de diseño mecánico 2D suministrados por HK y de las mediciones reales de los SBC que poseo. En los casos en los que no dispongo de un SBC en particular, uso las especificaciones técnicas de los componentes suministrados por el fabricante. Cuando el fabricante de los componentes no es conocido, comparo las especificaciones técnicas de varios fabricantes para generalizar el diseño de un componente.

La estética no es tan importante para mí como lo es el tamaño del código o la velocidad de procesamiento, de modo que es algo secundario en este framework. Dicho esto, he dedicado tiempo a desarrollar mejores modelos de componentes así que son más completos y se ven mejor que los componentes del modelo XU4 original. Mantendré y agregaré a esta librería de SBC según sea necesario o cuando haya disponibles otros SBC de HK.

Actualmente los SBC soportados y completados son: ODROID-C1+, ODROID-C2, ODROID-XU4, ODROID-N1, ODROID-N2, ODROID-MC1, ODROID-HC1, ODROID-HC2 y ODROID-H2 de Hardkernel

A veces, solo son necesarias las dimensiones de la placa y la disposición de los huecos para un diseño especifico y éstos se puede añadir rápida y fácilmente a este framework editando el archivo de configuración ASCII. Hice esto para probar el procedimiento en los siguientes SBC:

Modelos 3B+, 3B, 3A+, 2, 1A+ de la fundación Raspberry Pi Pine64's A64, Rock64, RockPro64.

Usando el Framework

Se puede llamar a cualquiera de los modelos pasando el modelo SBC solicitado en forma de sbc ("xu4"). A continuación, se muestra un código de ejemplo que fue utilizado para generar la imagen de apertura.

Test.scad
include

translate ([-120,0,0]) sbc("xu4");
linear_extrude(height = 2) {translate([-120,-20,0]) text("Odroid XU4");}
translate ([-120,110,0]) sbc("c2");
linear_extrude(height = 2) {translate([-120,90,0]) text("Odroid C2");}
translate ([-120,200,0]) sbc("c1+");
linear_extrude(height = 2) {translate([-120,180,0]) text("Odroid C1+");}
translate ([0,0,0]) sbc("n1");
linear_extrude(height = 2) {translate([0,-20,0]) text("Odroid N1");}
translate ([0,120,0]) sbc("hc1");
linear_extrude(height = 2) {translate([0,100,0]) text("Odroid HC1/HC2");}
translate ([0,200,0]) sbc("mc1");
linear_extrude(height = 2) {translate([0,180,0]) text("Odroid MC1");}
translate ([120,120,0]) sbc("h2");
linear_extrude(height = 2) {translate([120,100,0]) text("Odroid H2");}
translate ([120,0,0]) sbc("n2");
linear_extrude(height = 2) {translate([120,-20,0]) text("Odroid N2");}
Un componente de un SBC que no es necesario o necesita ser deshabilitado temporalmente, puede excluirse añadiendo un signo menos a su entrada de clase en el archivo sbc_models.cfg. Un ejemplo de este uso podría aplicarse al emmc. Tanto el emmc como la clavija (conectados a la PCB) están disponibles. A continuación, se muestra una ilustración del XU4 para desactivar la visual del emmc mientras se muestra el conector del emmc.
// Hard Kernel ODROIDs
["xu4",83,59,1,3.5,17,6, // sbc model, pcb size and component height
3.5,3.5,3,3.5,55.5,3, // pcb holes 1 and 2 location and pcb hole size
79.5,3.5,3,79.5,55.5,3, // pcb holes 3 and 4 location and pcb hole size
79.61,22,3,28.39,42,3, // pcb holes 5 and 6 location and pcb hole size
0,0,3.3,0,0,3.3, // pcb holes 7 and 8 location and pcb hole size
0,0,0,0,0,0, // pcb holes 9 and 10 location and pcb hole size
14.5,15.75,1.25,59.7,20.55,0,0,"top", // soc1 size, location, roation and side
0,0,0,0,0,0,0,"", // soc2 size, location, roation and side
0,0,0,0,0,0,0,"", // soc3 size, location, roation and side
0,0,0,0,0,0,0,"", // soc4 size, location, roation and side
47.5,13.7,0,"bottom","memory","emmc_plug", // emmc plug location, rotation, side, class and type
45,0,0,"bottom","-memory","emmc", // emmc location, rotation, side, class and type
45.85,5,0,"top","storage","sdcard", // sdcard location, rotation, side, class and type
79,7.15,0,"top","switch","slide_4x9", // switch location, rotation, side, class and type
25.925,52.925,0,"top","button","momentary_6x6x9", // pwrbutton location, rotation, side, class and type
34.85,-1,0,"top","plug","pwr5.5_7.5x11.5", // pwrplug location, rotation, side, class and type
26,0,0,"top","usb2","single_vert_a", // usb2 location, rotation, side, class and type
7.55,41.6,180,"top","usb3","double_stacked_a", // usb3 location, rotation, side, class and type
7.4,0,0,"top","network","rj45_single", // ethernet location, rotation, side, class and type
60,-1,0,"top","video","hdmi_a", // hdmi location, rotation, side, class and type
0,37.8,90,"top","plug","uart_micro", // uart location, rotation, side, class and type
0,25,270,"top","plug","rtc_micro", // rtc location, rotation, side, class and type
27,22,90,"top","fan","micro", // fan location, rotation, side, class and type
35.4,52.25,0,"top","gpio","encl_header_30", // gpio1 location, rotation, side, class and type
76.25,32.5,270,"top","gpio","encl_header_12", // gpio2 location, rotation, side, class and type
43.8,27.25,0,"top","ic","ic_5.75x5.75", // pmic location, rotation, side, class and type
32.5,40.5,0,"top","ic","ic_7x7", // usbhum 7mm location, rotation, side, class and type
11.7,22.8,0,"top","ic","ic_6x6", // nic location, rotation, side, class and type
0,0,0,"*","*","*"], // end

Modificar y añadir componentes

El framwork está configurado para que tanto los SBC como los componentes puedan añadirse o modificarse fácilmente y los modelos resultantes se puedan usar independientemente del estado final. El framework consta de tres partes, el conjunto de datos SBC (sbc_models.cfg), el módulo principal (sbc_models.scad) y una librería de componentes (sbc_library.scad).

sbc_models.cfg es un archivo ASCII que se puede modificar con cualquier editor de texto. Contiene un conjunto de datos sobre la descripción de un supuesto SBC. El esquema es el siguiente

"model",pcbsize_x, pcbsize_y, pcbsize_z, pcbcorner_radius, topmax_component_z, bottommax_component_z
pcb_hole1_x, pcb_hole1_y, pcb1_hole_size, pcb_hole2_x, pcb_hole2_y, pcb2_hole_size
pcb_hole3_x, pcb_hole3_y, pcb3_hole_size, pcb_hole4_x, pcb_hole4_y, pcb4_hole_size
pcb_hole5_x, pcb_hole5_y, pcb5_hole_size, pcb_hole6_x, pcb_hole6_y, pcb6_hole_size
pcb_hole7_x, pcb_hole7_y, pcb7_hole_size, pcb_hole8_x, pcb_hole8_y, pcb8_hole_size
pcb_hole9_x, pcb_hole9_y, pcb9_hole_size, pcb_hole10_x, pcb_hole10_y, pcb10_hole_size
soc1size_x, soc1size_y, soc1size_z, soc1loc_x, soc1loc_y, soc1loc_z, soc1_rotation, "soc1_side",
soc2size_x, soc2size_y, soc2size_z, soc2loc_x, soc2loc_y, soc2loc_z, soc2_rotation, "soc2_side",
soc3size_x, soc3size_y, soc3size_z, soc3loc_x, soc3loc_y, soc3loc_z, soc3_rotation, "soc3_side",
soc4size_x, soc4size_y, soc4size_z, soc4loc_x, soc4loc_y, soc4loc_z, soc4_rotation, "soc4_side",
component_x, component_y, component_rotation, "component_side", "component_class","component_type"
Parte del esquema tiene una longitud fija e incluye el modelo SBC, el tamaño xyz de PCB, el radio de la esquina, las alturas máximas de los componentes superior e inferior, hasta 10 orificios y hasta 4 SOC. Esta parte del esquema tiene la misma longitud para todas las definiciones del SBC. El número de entradas de componentes es ilimitado en cantidad y lo tratare en un minuto. Creo que los datos básicos de PCB se explican por sí mismos. Las dimensiones físicas (xyz) se deben conocer para crear un PCB. La altura máxima del componente Z superior e inferior puede ser útil para los diseños que utilizan esta librería. Los orificios de la PCB están limitados a 10 definidos por su diámetro y ubicación del centro xy. El número se puede ampliar fácilmente si llega a convertirse en un inconveniente.

He decidido incorporar varios SOC y no incluirlos como un componente por un par de razones. Ya hay SBC que están especializados e incluyen múltiples unidades de procesamiento. Me refiero a todos ellos en este framework como SOC, aunque también podrían ser microcontroladores, procesadores de AI o procesadores de comunicación dedicados en la PCB, por nombrar algunos. Al definirlos por separado de los componentes, se puede incluir información adicional como el tamaño y la altura sin cargar cada entrada de componente con esta información adicional. Cuatro entradas deberían ser suficientes, aunque también se pueden ampliar fácilmente en el futuro sin una modificación significativa del programa. Las entradas de SOC pueden rotar y también se pueden colocar a ambos lados de la PCB. Si no es necesario un hueco o SOC, deja los valores escalares a cero y las entradas de texto vacías.

La última entrada en el esquema es para los componentes. Un componente es cualquier cosa que se conecta a la PCB. Se puede colocar cuantos componentes se quiera desde la librería por SBC. El algoritmo colocará automáticamente tantos o tan pocos como se definan. Hay seis valores por componente. La ubicación del componente xy para la parte superior de la PCB se mide desde la esquina inferior izquierda de la PCB hasta la esquina inferior izquierda del componente o abertura, con los orificios medidos hacia el centro. Los componentes del lado inferior se miden desde la esquina superior izquierda hasta la esquina superior izquierda del componente, cuando la PCB rota alrededor del eje x. Todas las medidas están en mm y, como regla general, la orientación de la PCB es con el lado más amplio de la PCB a lo largo del eje x.

El valor de rotación no hace girar el componente alrededor de la ubicación xy. Es una referencia a la dirección en la que el anverso del componente y cualquier esquina del componente que se encuentre en el extremo inferior izquierdo después de la rotación, asumirá la ubicación xy especificada para la entrada del componente. Esta es una manera uniforme de medir la ubicación de los componentes independientemente de su orientación en la PCB. La entrada del esquema etiquetada con component_side es el lado del PCB en el que se colocará el componente. Hasta ahora hemos cubierto component_x, component_y, component_rotation y component_side. Las dos últimas entradas son component_class y component_type. Estas entradas juntas determinan el componente a colocar. Cada clase de componente contiene uno o más tipos de componentes. Actualmente existen 17 clases de componentes con los tipos de componentes correspondientes:

  • memory - emmc, emmc_plug, sodimm_5.2, sodimm_9.2
  • switch - slide_4x9
  • button - momentary_6x6x9, momentary_6x6x4
  • plug - pwr5.5_7.5x11.5, pwr2.5_5x7.5, rtc_micro, uart_micro, molex_4x1, small_encl_satapwr
  • usb2 - single_vert_a, double_stacked_a, micro
  • usb3 - double_stacked_a
  • network - rj45_single
  • video - hdmi_a, dp-hdmi_a
  • fan - micro, encl_pmw
  • gpio - encl_header_30, encl_header_12, header_40, header_20
  • ic - ic_2.8x2.8, ic_4.7x4.7, ic_5x5, ic_5.75x5.75, ic_6x6, ic_6.75x6.75, ic_7x7, ic_6.7x8.4, ic_11x8, ic_13x8
  • audio - out-in-spdif, jack_3.5
  • storage - sata_header, sata_encl_power, sata_encl_header, m.2_header, sdcard
  • combo - rj45-usb2_double, rj45-usb3_double
  • jumper - header_2x1, header_7x1
  • misc - ir_1

En resumen, los nuevos SBC se definen en sbc_model.cfg y los nuevos componentes se añaden a sbc_library.scad. Para agregar un SBC, modifica sbc_models.cfg creando o copiando una entrada de SBC existente. Actualiza los componentes y datos relativos al SBC para el nuevo SBC. Cuando sea necesario añadir un tipo de componente, simplemente agrega el código que traza este tipo de componente en el módulo clase al que pertenece el componente, ubicado en sbc_library.scad. No hay comprobación ni validación de ningún tipo, de modo que realmente cualquier clase puede contener cualquier tipo de componente. Los nombres son simplemente los que yo he elegido para que la estructura tenga sentido para mí en un futuro.

OpenSCAD tiene la posibilidad de exportar modelos a otros formatos, así que, a través de la exportación y la posible traducción, otros sistemas CAD también pueden usar estos modelos. Si tiene alguna pregunta o problema, o desea contribuir con datos o componentes de SBC a la librería, escribe un post o envíeme un Mensaje Privado. Mantendré esta librería y publicaré cualquier SBC y componente adicional en el hilo del foro. https://forum.odroid.com/viewtopic.php?f=98&t=33823

Para aquellos interesados en probar este framework de modelo SBC, recomiendo una versión más reciente de OpenSCAD que esté disponible en su repositorio snapshot en http://files.openscad.org/snapshots/.

Incluso hay una aplicación armhf reciente que he verificado que funciona en un XU4 con Ubuntu 18.04. Desafortunadamente, no está acelerada por hardware, por lo que es lenta para los diseños de un tamaño significativo. Recientemente intenté compilar la fuente para el XU4. Se pudieron cubrir todas las dependencias, pero hubo un problema con desajustes de la declaración de opengl. En mi breve investigación, esto es normal y parece resolverse usando Glew u otra herramienta. Por ahora es un problema poco prioritario para mí, pero me gustaría que la aceleración de hardware funcionara para OpenSCAD sobre los Odroids en el futuro.

ODROID-N2: Ejecuta Ubuntu 18.04 y Android Pie con el más reciente, potente y rápido ordenador de placa reducida de Hardkernel

El ODROID-N2 es un ordenador de placa reducida (SBC) de nueva generación que es más potente, más estable y con un rendimiento superior al ODROID-N1. La CPU principal del ODROID-N2 está basada en la arquitectura big.little, que integra un clúster CPU ARM Cortex-A73 de cuatro núcleos y un clúster Cortex-A53 de doble núcleo con una GPU Mali-G52 de nueva generación.

Gracias a la moderna tecnología de silicio de 12 nm, los núcleos A73 funcionan a 1.8 Ghz sin regulación térmica utilizando un gran disipador de calor metálico, lo cual permite disponer de un ordenador robusto y silencioso. El rendimiento de la CPU multi-nucleo es aproximadamente un 20% más rápida y la memoria RAM DDR4 de 4 GB es aproximadamente un 35% más rápida que la del ODROID-N1. La memoria RAM DDR4 del ODROID-N2 funciona a 1320Mhz, mientras que la memoria DDR3 del ODROID-N1 funciona a 800Mhz.

El voluminoso disipador térmico de metal está diseñado para optimizar la disipación de calor de la CPU y de la RAM reduciendo al mínimo el tener que recurrir a la regulación. La CPU está ubicada en la parte inferior de la PCB con el objetivo de que el rendimiento término sea el mejor posible.

Figura 1 - La nueva placa ODROID-N2

Figura 2 – Componentes y detalles del conector ODROID-N2

Figura 3 - Tabla de componentes del ODROID-N2

Figura 4 - Tabla diagrama por bloques

Rendimiento de la CPU

Los resultados de las pruebas de rendimiento del ancho de banda de la memoria, de Dhrystone-2, Whetstone, Sysbench que aparecen a continuación muestran que el rendimiento del sistema ODROID-N2 está por delante de otros SBC ARM conocidos.

Figura 5 – Prueba de rendimiento de la CPU

Rendimiento de la GPU

El Mali-G52 funciona a 846Mhz y es un 10% más rápida que la Mali-T860MP4 del ODROID-N1. El Mali-G52 es la segunda GPU estándar basada en Bifrost de Arm. Hay dos procesadores Shader en la GPU y cada núcleo tiene tres motores de ejecución. A veces esto suele denominarse MP6. El rendimiento de la GPU se ha medido con la opción “- off-screen” de glmark2-es2.

Figura 6 – Pruebas de rendimiento de la GPU

Rendimiento de la RAM

La siguiente gráfica refleja por qué es tan importante la nueva generación de memoria RAM DDR4. La DDR4 a 1320Mhz es un 35% más rápida que la DDR3 a 800Mhz. La memoria RAM DDR4 del ODROID-N2 se ejecuta a 1320Mhz.

Figura 7 – Pruebas de rendimiento de la memoria

Rendimiento vs frecuencia CPU

Algunos usuarios de ODROID podrán recordar que la velocidad de reloj es inferior a la esperada en el SOC S905. Ejecutamos una prueba para comprobar la relación entre la frecuencia de reloj de la CPU y el rendimiento, usando para ello el siguiente comando:

$ sysbench cpu --max-cpu-prime=100000 --time=10 --threads=6 run
Figura 8 - Resultados de Sysbench

Características térmicas

Para evaluar la regulación térmica, pusimos la CPU y la GPU juntas a ejecutar algunos trabajos pesados y monitorizamos la temperatura. Ejecutamos las pruebas dentro de una habitación en la que la temperatura ambiente se mantenía a 35 °C, usando el siguiente comando:

$ stress-ng --cpu 6 --cpu-method matrixprod && glmark2-es2-fbdev --off-screen --run-forever
Figura 9 - Prueba de esfuerzo de CPU y GPU

Figura 10 - Prueba de esfuerzo de la CPU - Frecuencia vs tiempo

Ethernet Gigabit

Teniendo en cuenta los resultados de la prueba iperf, el rendimiento esta cerca de 1 Gbps.

Figura 11 - Prueba de rendimiento de la red IfPerf

Hosts USB 3.0

Medimos la velocidad de transferencia del USB3 con un SSD compatible con UAS. El promedio de rendimiento de ~ 340 MB/s que observamos, debería ser el aceptable para muchas aplicaciones. Puesto que los cuatro puertos host USB3 comparten un solo hub root, la velocidad de transferencia debería ser menor si utilizas varios dispositivos USB al mismo tiempo.

Figura 12 - Prueba de escritura USB 3.0

Figura 13 - Prueba de lectura de USB 3.0

Rendimiento de almacenamiento del eMMC

La velocidad de lectura y escritura secuencial es superior a 150 MB/s y 125 MB/s, respectivamente. El rendimiento de acceso aleatorio en 4K también es razonablemente rápido. El resultado de las pruebas con iozone es el siguiente:

Figura 14 - Rendimiento de almacenamiento eMMC

Rendimiento UHS micro-SD

Utilizando la escala de voltaje dinámico UHS correctamente, la velocidad de lectura y escritura secuencial es superior a 70 MB/s y 55 MB/s, respectivamente.

Figura 15 - Rendimiento UHS Micro-SD

El Soc S905 anterior no puede activar el modo UHS una vez que el sistema arranca desde el eMMC. Sin embargo, el S922X puede seguir utilizar simultáneamente el modo UHS con el módulo eMMC.

Sonido DAC

El ODROID-N2 tiene una salida de audio estéreo de alta calidad de 384 kHz/32 bits. El rango dinámico y la SNR están cerca de los 100dB y la distorsión armónica total es inferior al 0,006%. Es posible disfrutar de una calidad de sonido Hi-Fi sin recurrir a un costoso DAC de audio externo.

Figura 16 - Relación señal-ruido: 1 KHz (384 KHz, 32 bits, 2 canales):

Figura 17 - Relación THD + N: 1 KHz (384 KHz, 32 bits, 2 canales):

Figura 18 - Respuesta de frecuencia: 20Hz - 20KHz (384KHz, 32bit, 2-ch)

Arranque con memoria flash PI

El ODROID-N2 puede arrancar desde la memoria SPI integrada en lugar de la memoria uSD o las tarjetas eMMC. La memoria SPI integrada tiene un tamaño de 8 MB y puede incluir los archivos binarios bootstrap, U-boot, kernel de Linux mínimo y un ramdisk que incluye "Petitboot". El software "Petitboot" proporciona una interfaz fácil de usar que permite a los usuarios seleccionar un medio de arranque.

Desafortunadamente, dado que el bus SPI en S922X comparte la interfaz de hardware con eMMC, solo se puede acceder a la memoria flash SPI en ODROID-N2 durante el arranque hasta que se active el bloqueo de hardware eMMC. Por lo tanto, debes retirar el módulo eMMC y arrancar desde una tarjeta SD para poder actualizar el firmware en la memoria SPI.

RTC

El ODROID-N2 tiene un componente RTC integrado, NXP PCF8563, conectado al bus I2C y puede usar una pila de reserva como fuente de alimentación alternativa mientras que la fuente de alimentación principal esté ausente. Dado que el consumo medio de energía en realidad es inferior a 1uA, el RTC puede funcionar durante más de 10 años con una pila CR2032. Además, esto permitirá que tu ODROID-N2 se active a una cierta hora una vez que fijes una alarma y lo apagues.

Motor crypto

La arquitectura ARMv8 de la CPU admite extensiones criptográficas aceleradas por hardware para desarrollar un sistema seguro. Como era de esperar, podremos ver un rendimiento openSSL muy decente con el ODROID-N2, usando el siguiente comando:

$ openssl speed sha256 (8KByte)
Figura 19: pruebas de rendimiento de openSSL con ODROID-N2

El GPIO (cabezal de 40 Pin)

La interfaz GPIO del ODIOID-N2 es similar a la del ODROID-C2 y es totalmente compatible con una interfaz de 3.3Volt, mientras que ODROID-N1 solo admite E/S de 2.8Volt. Esto es supone una gran ventaja a la hora de usar varios periféricos sin complicados shifters de nivel.

Otra gran mejora es una interfaz de bus SPI más rápida. Su frecuencia máxima es superior a 150Mhz, intentaremos implementar un driver SPI controlado por DMA para conectar una pantalla LCD más rápida.

Consumo de energía

Estado inactivo: 1.6 ~ 1.8 vatios Estado de máxima carga de trabajo: 5.2 ~ 5.3 vatios (stress-ng --cpu 6 --cpu-method matrixprod) No hay cables conectados, excepto la entrada de alimentación DC y el cable de la consola de depuración USB-UART.

Soporte de software - Linux

Hay disponible una imagen de Ubuntu 18.04 LTS (completa de 64 bits) con la versión del kernel 4.9.152 LTS en este momento. Esta versión del kernel tendrá soporte oficial hasta enero de 2023.

Hay disponible yn driver decodificador de video acelerado por hardware (VPU). Tenemos ejemplos de c2player y kplayer que pueden reproducir videos 4K/UHD H.265 60fps sin problemas sobre el framebuffer de la salida HDMI del ODROID-N2.

El driver Linux de la GPU Mali G52 solo funciona sobre el framebuffer. Probamos la emulación PPSSPP y el sistema puede manejar el escalado x3 en una pantalla 4K muy bien con el VSYNC bien implementado. Habrá un driver Linux Wayland dentro de unos meses. Estamos trabajando intensamente en esta cuestión junto con Arm y Amlogic. Desafortunadamente, no existe un driver GPU X11 ya que ARM ya no tiene planes para dar soporte X11 en la GPU Bifrost. Esperamos que el driver de código abierto de Panfrost sea exportado a ODROID-N2 pronto.

Soporte de software - Android

El Android 9 Pie está listo y tenemos pensado lazar una completa BSP de código fuente junto con una imagen pre-configurada. En este momento, la zona de usuario de Android solo admite el sistema de 32 bits, mientras que el Kernel se ejecuta en modo 64 bits. Con el tiempo, intentaremos ofrecer un sistema Android de 64 bits con un driver GPU que soporte Vulkan, posiblemente dentro de unos cuantos meses.

Disponibilidad y precios

Empezaremos a venderlo a finales de marzo y el primer envío se realizará a principios de abril. No planes para aceptar pedidos con anterioridad. El coste del modelo de 2GB de RAM será de 63$ y el de 4GB de 79$.

Proceso de depuración

Hemos enviado algunas muestras de ingeniería a algunos de nuestros miembros más activos y amigables de la comunidad. ¡La fiesta está en marcha!

Especificaciones

Figura 21 - Tabla de especificaciones del ODROID-N2

Carcasa (Shield de plástico)

Puedes elegir entre dos colores: negro oscuro semitransparente o blanco claro. Su precio será de tan sólo 4$.

Figura 22 – Opción 1 de color de la carcasa del ODROID N2

Figura 23 - Opción 2 de color de la carcasa del ODROID N2

Figura 24 - Opción 3 de color de la carcasa del ODROID N2

Figura 25 – Opción 4 de color de la carcasa del ODROID N2

Figura 26 - Opción 5 de color de la carcasa del ODROID N2

Figura 27 - Opción 6 de color de la carcasa del ODROID N2

Pruebas de rendimiento adicionales

Hemos ejecutado otra prueba de rendimiento para testear la velocidad de compresión/descompresión del 7-zip (LZMA) con la misma cadena de herramientas GCC 6.3 en Debian.

Figura 28 - Compresión y descompresión usando Linux Debian

Como podemos ver, N2 es en torno al 20% más rápido que el N1, obviamente. Si hacemos overclocking en el N2, aumenta la velocidad en un 7% o 8%.

Figura 29 – Incremento adicional en el rendimiento del dispositivo con overclocking activado

Podemos decir que Unixbench aunque es antiguo continua siendo muy efectivo a la hora comparar el rendimiento. No obstante, necesitamos recurrir también a herramientas de pruebas de rendimiento más modernas como PTS (Phoronix Test Suite).

Analizaremos el rendimiento de la memoria más cuidadosamente en próximas semanas, ya que el problema de la memoria lenta del RK3399 parece solucionarse con un par de parches en el Kernel. No hemos testeado el kernel del ODROID-N1 desde que lo lanzamos hace varios meses. Creemos que la diferencia en el ancho de banda de la memoria puede ser insignificante y no del 35% como hemos visto anteriormente, si aplicamos los parches.

References

Foro: https://forum.odroid.com/viewtopic.php?f=176&t=33781 Páginas de la WiKi: https://wiki.odroid.com/odroid-n2/odroid-n2 Kernel Github: https://github.com/hardkernel/linux/tree/odroidn2-4.9.y U-boot Github : https://github.com/hardkernel/u-boot/tr ... 2-v2015.01

Cómo Crear un Servidor de Backup Utilizando Clonezilla y PXE - Parte 1

Este es un artículo dividido en dos partes que ha sido adaptado de los foros ODROID. En esta primera parte proporcionaré una introducción sobre las ventajas de usar Clonezilla, una descripción general de las cuestiones que voy a tratar y los pasos que se deben seguir para configurar un servidor DHCP. Para obtener más información o para ver el tema completo en el foro, que se compone de varios post del usuario @lazlo, visita https://forum.odroid.com/viewtopic.php?f=52&t=33529.

Finalidad

El objetivo de este “CÓMO HACER” es guiar al lector a través de la creación de un entorno de arranque en red simple y minimalista que permita que cualquier ordenador que soporte PXE arranque Clonezilla sobre la subred local con el fin de crear y restaurar imágenes de disco. Esto requerirá de un cierto conocimiento de las redes TCP/IP y de la instalación/configuración de paquetes de software en tu distribución linux favorita. Esta guía intentará ser lo más neutral posible, con suerte, permitiendo al lector utilizar la distribución de linux que más le satisfaga. Esto también significa que la ubicación y el diseño de los archivos de configuración en tu sistema pueden diferir de lo que aparece en esta guía. Si te quedas atascado, consulta la documentación de tu distribución para el paquete de software en cuestión. Una vez que encuentre una solución, deja un comentario al final para ayudar a otros lectores que tengas el mismo problema.

¿Por qué Clonezilla?

Clonezilla es básicamente una suite de gestión de imágenes de disco de tipo empresarial. Se puede ejecutar en cualquier ordenador x86 (32 bits o 64 bits) que permita ejecutar Debian, puede crear y restaurar imágenes de discos completas o particiones individuales, puede comprimir y cifrar imágenes de disco, admite una amplia variedad de protocolos de red, y es un Software totalmente libre. Tienes más información en https://www.clonezilla.org y mientras visitas la web, descárgate la versión .zip del instalador y colócala en el sistema que usarás como servidor PXE. Lo necesitaremos más tarde.

¿Por qué PXE?

Durante años mis backups mensuales han sido así:

  • 1. Buscar mi unidad de almacenamiento USB Clonezilla
  • 2. Tener en cuenta que debo haberlo casualmente sobrescribiendo en el último mes
  • 3. Crear una nueva unidad de almacenamiento USB Clonezilla
  • 4. Un día después, encontrar mi vieja unidad de almacenamiento USB Clonezilla. Las copias de seguridad mensuales han sido mucho más simples y menos frustrantes desde que aprendí a configurar PXE.

Cómo funciona el arranque de PXE, en pocas palabras, cuando el sistema del cliente se inicia a través de PXE, lo primero que sucede es que el cliente emite una solicitud de un servidor DHCP para indicarle no solo el lugar que ocupa el cliente en la red, sino también dónde encontrar Los archivos que necesita para arrancar. El cliente se pone en contacto con el servidor TFTP al que fue remitido por el servidor DHCP y empieza a descargar los archivos que necesita y los almacena en la RAM. Una vez que se completa este proceso, el cliente se inicia desde los archivos de la RAM y está listo para ser utilizado.

¿Qué significa esto?

Esto significa que necesitaremos un servidor DHCP, un servidor TFTP, un cliente para realizar la copia de seguridad y, opcionalmente, un servidor de archivos para almacenar las copias de seguridad. El servidor DHCP puede ser un router doméstico o un servidor independiente como el servidor ISCP DHCP. Si el servidor DHCP es un router doméstico, o si tienes algún otro servidor DHCP que no se pueda reconfigurar en tu subred, entonces necesitaremos usar el paquete dnsmasq para que actué como un proxy entre el cliente y el servidor DHCP. Aunque dnsmasq puede actuar como un Protocolo de Transferencia de Archivos Trivial (TFTP), el servidor tftp-hpa es mucho más flexible si alguna vez quieres ampliar tu servidor PXE más allá del campo de actuación de esta guía. Es el que yo uso en mi servidor doméstico y es el que describo en esta guía. El cliente puede ser cualquier ordenador x86 (32 bits o 64 bits) que soporte el arranque a través de PXE y pueda ejecutar Debian. El modo único UEFI no funcionará con esta guía. Aunque empezaré a trabajar en esta cuestión pronto. El servidor de archivos puede ser casi cualquier cosa, solo necesita una conexión de red estable y, con suerte, rápida, y suficiente espacio en disco para almacenar las copias de seguridad. En mi servidor doméstico, uso NFS, pero también puede usar Samba/CIFS, SSH, Amazon AWS S3 y algunos otros. Por último, los servidores DHCP, TFTP y de archivos pueden instalarse en el mismo sistema operativo o estar en diferentes servidores físicos, máquinas virtuales y/o contenedores.

¿Qué debes hacer antes de cambiar algo en tus ordenadores y/o red? Debes leer esta guía de principio a fin antes de hacer algo o cambiar algo. Lee los ejemplos y sigue los enlaces. Si no estás seguro de algo, recuerda que preguntar antes de actuar es mejor que preguntar cómo reparar una red inservible. Debes hacer una copia de seguridad de todos los archivos de configuración antes de editarlos con forme vas siguiendo esta guía. Si los sistemas con los que estás trabajando almacenan datos que te son importantes, deberías hacer una copia de esos datos antes de empezar. Recuerda que una copia de seguridad es solo una copia de seguridad si realmente puedes restaurarla.

Primera parte: DHCP

dnsmasq como proxy DHCP

Una cuestión antes de empezar: el paquete dnsmasq se usa en una gran variedad de pilas de software y es posible que ya lo tengas instalado y esté funcionando en tu sistema. Si este es el caso, entonces es aconsejable asegurarse de que cualquier cambio que realices en la configuración no interfiera en la forma en la que se utiliza este paquete en otras partes de tu ordenador. Hay muchas formas de configurar dnsmasq y mucha documentación sobre cómo usarlo. Si nunca ha leído el archivo de configuración de ejemplo del paquete, suele encontrarse normalmente en /usr/share/doc/dnsmasq o algo así, dependiendo de tu distribución. El archivo está bien documentado y es muy didáctico gracias a la gran cantidad de ejemplos y comentarios que contiene. La página de guía de dnsmasq la puedes encontrar en http://www.thekelleys.org.uk/dnsmasq/do ... q-man.html

Si aún no tienes dnsmasq, instálalo en este momento. El archivo de configuración principal normalmente se encuentra en /etc/dnsmasq.conf o /etc/dnsmasq/dnsmasq.conf o /etc/dnsmasq.d/some_program_that_uses_dnsmasq.conf dependiendo de tu distribución.

Aquí tienes la configuración para un proxy dhcp básico:

#This option enables some extra logging which might help with troubleshooting:

log-dhcp

#This option disables DNS services.  You should be getting DNS server info from 
#elsewhere if you installed dnsmasq just for the DHCP proxy.  If dnsmasq was
#already installed as part of a virtualization stack this might break your VM’s so
#test it early.  You may have to omit it:

port=0  

#A bit counter intuitive, this entry actually disables DHCP in dnsmasq and 
#tells it act as a proxy for all DHCP requests on the 192.168.0.0/24 subnet.  
#The safest option is to use the ip address of this server’s NIC, but any valid IP 
#address in your subnet will work:

dhcp-range=192.168.0.151,proxy,255.255.255.0

#This option is mainly for compatibility with older or broken DHCP clients.
#It doesn’t hurt to be careful:

dhcp-no-override

#This option tells the PXE what file it needs to start booting and where to get it.
#The path to the file pxelinux.0 is relative to the root directory for tftpd.
#Since this guide is about simple and minimal we will put it in the root dir.
#The IP address is for the TFTP server, which may or may not be the one running 
#our DHCP proxy:

dhcp-boot=pxelinux.0,192.168.0.151

#This option disables multicast and starts the download right away:

dhcp-option=vendor:PXEClient,6,2b
No olvides reiniciar el servicio dnsmasq tras editar su archivo de configuración.

Servidor DHCP ISC

El servidor DHCP ISC es el servidor DHCP estándar para la mayoría de las versiones de Linux y Unix. Querrás usar éste si quieres un servidor DHCP potente y flexible en tu subred. Está muy bien documentado y su configuración está en un archivo que incluye muchos comentarios y esto hace que sea muy didáctico. Su página web principal es https://www.isc.org/downloads/dhcp/ y puedes encontrar una copia de las páginas de guía en https://www.isc.org/dhcp-manual-pages/. De modo que tomate algo de tiempo y léelas, así como cualquier documentación específica aplicable a tu distribución antes de instalarlo. El nombre del paquete puede variar de una distro a otra, pero generalmente es "isc-dhcpd-server" o "dhcp" aunque es posible que tenga que buscar un poco. El archivo de configuración principal del paquete generalmente se encuentra en /etc/dhcp/dhcpd.conf y algunas distribuciones pueden tener un segundo archivo ubicado en /etc/default/dhcp. A continuación tienes un extracto del archivo dhcpd.conf de mi servidor doméstico con mis propios comentarios añadidos:

#Start the subnet definition:
subnet 192.168.123.0 netmask 255.255.255.0 {
#Authoritative means that this is the main DHCP server on this subnet:
        authoritative;  
#This is the range of IP addresses given out by dhcpd:
        range 192.168.123.50 192.168.123.150;
#These next lines define the network topology for the subnet and allow 
#dhcpd to pass the needed parameters to the dhcp clients:
        option broadcast-address 192.168.123.255;
        option domain-name-servers 192.168.123.1, 192.168.0.1;
#I have my server set up to act as a router so this is the address of the LAN
#side NIC.  Otherwise enter the default gateway for your subnet:
        option routers 192.168.123.1;
#This is name of the file needed to start the PXE boot process. It’s path
#is relative to the TFTP root directory:
        filename "pxelinux.0";
#This is the IP address of the TFTP server that will be sending files to
#our PXE clients:
        next-server 192.168.123.1;
}
Tras editar la configuración para hacer frente a tus necesidades, reinicia el servicio dhcpd.

Estos son los primeros pasos para configurar tu propio servidor de backup en casa. La siguiente parte de esta guía aparecerá en el número del próximo mes de ODROID magazine. Si tienes alguna pregunta o si desea leer la publicación completa en los foros ODROID, consulta el siguiente enlace: https://forum.odroid.com/viewtopic.php?f=52&t=33529

Instalación de Google Play Store en el ODROID-N2

This article details the steps necessary to install the Google Play Store on ODROID-N2 using Android Pie.

Open Lightning Browser, then go to https://opengapps.org/ and select ARM / 9.0 / pico.

Download the package.

Open the ODROID Utility.

Select "Update" and "From download package".

Select "Recent" and "File Manager".

Select "Download" and "open_gapps-arm-9.0-pico-2019xxxx.zip".

Reboot and install "Play Store".

Open lightning browser and search "device id apk".

Download the apk.

Open "File Manager" and install device id apk.

Click "Google Service Framework (GSF)".

Click "COPY".

Click Notification.

Go to the registration site.

Log in to your Google account.

Paste GSF id.

Wait about 30 minutes, then reboot the system.

For comments, questions, and suggestions, please visit the original post at https://goo.gl/Cd3gTx.

Juegos Linux: PC-Engine / TurboGrafx - Parte 3

¡Buscar e investigar para la última entrega de esta serie me ha resultado fascinante! Sabía que el sistema contaba con algunos juegos bastante buenos, pero realmente quede sorprendió con la cantidad de juegos con los que he disfrutado. Solo ha habido 3 juegos que no me han gustado en esta última parte, me pregunto si esta buena racha continuará en el futuro. Hasta ahora, realmente he disfrutado de mi experiencia con PC-Engine / TurboGrafx.

Juegos que me han gustado

Galaxy Keiji Gayvan

Figure 1 - Fighting off regular enemies in a somewhat cartoon style
Figura 1 - Combatiendo contra frecuentes enemigos con un estilo un tanto animado

Figure 2 - A boss fight at the end of each level as in every good beat ‘em up
Figura 2 – Un combate contra un jefe al final de cada nivel como en todo buen beat ‘em up

Realmente me gusta este beat ‘em up de estilo animado que me recuerda a Double Dragon o Street of Rage. Es bastante divertido y tiene muy buenos gráficos. Si te gustan este tipo de juegos definitivamente debes probarlo. Con el botón uno atacas, con el botón dos saltas. Si presionas el botón seleccionar, tu personaje se transformará y usará una armadura de combate, lo cual aumenta tu velocidad y la cantidad de golpes que puedes recibir. Puede cambiar entre el modo armadura y el modo normal en cualquier momento, pero pierdes energía (barra de la esquina inferior izquierda) cuando usas la armadura, que se repone recopilando esferas rojas o lentamente de forma automática cuando te encuentras en modo "normal". Puedes seleccionar entre dos personajes uno masculino (Hiro / Gayvan) o femenino (Mittchi). Aunque ambos son casi idénticos, tienen algunos movimientos que los diferencian (por ejemplo, patada en cuclillas).

Hawk F-123

Tal y como sugiere su nombre, en este juego juegas con un luchador F-123 y el juego en sí es un clásico del desplazamiento lateral. Al principio, no estaba realmente seguro de si me gustaba el juego, incluso considerando que los gráficos son bastante buenos con cierto nivel de desplazamiento de paralaje, puesto que me eliminaban bastante rápido, y ni siquiera lograba terminar el primer nivel. Me llevó un poco de tiempo, no me rendí y después de un rato, mejoré bastante y disfruté del juego mucho más. Hay diferentes potenciadores que puedes recoger, como son las típicas mejoras de armas (que tienen colores diferentes para las diferentes armas), aceleradores, misiles guiados, pelotas que rebotan (en lugar de misiles), una pequeña nave que te sigue y te proporciona energía adicional, escudos que te hacen invencible por un corto periodo de tiempo y muchos tipos de ataques especiales que son geniales para matar a los jefes. En general, el juego tiene mucha variedad y como los gráficos, los sonidos y la música son bastante buenos, en conjunto la experiencia es buena, disfruté bastante jugando.

Figure 3 - Love the explosions and multiple level of parallax scrolling
Figura 3: Me encantan las explosiones y los múltiples niveles de desplazamiento de paralaje

Figure 4 - Hawk also offers the usual boss fights at the end of the level
Figura 4 - Hawk también tiene los habituales combates de jefe al final de cada nivel.

Iga Ninden Gaiou

Este juego me recuerda un poco a Ninja Gaiden, aunque tiene su propio estilo particular. Al principio no estaba muy seguro de si me gustaría el juego, ya que la introducción y todas las escenas están completamente en japonés, lo cual es un fastidio, ya que la historia parece ser bastante interesante. En este juego de plataformas de acción, avanzas por el nivel empuñando tu fiel espada y lanzando cuchillos, luchando contra monstruos que tienen diferentes patrones.

Figure 5 - Very colorful and bright graphics with many different locations
Figura 5 - Gráficos muy coloridos y brillantes con muchas y diferentes ubicaciones

Figure 6 - The usual boss fights at the end of a level
Figura 6 – Típico combate contra un jefe al final de un nivel

Muchos de los monstruos reaparecen tras unos segundos, y puedes matarlos de nuevo, lo cual puede serte útil para conseguir objetos. Hay pequeños corazones que recargan un poco tu salud, corazones más grandes que reponen gran parte de tu salud (~ 50%), hay pergaminos que puedes recolectar para lanzar tu ataque especial (esquina inferior izquierda de la pantalla) e incluso puedes recoger una vida extra de los monstruos, por lo que a veces machacar a tus enemigos una y otra vez puede venirte muy bien. Si mantienes presionado el botón de ataque, empieza a cargar la barra de tus cuchillos lanzadores, y una vez que esté llena, lanzarás un cuchillo, aunque no es muy práctico, ya que demora bastante en cargarse y el daño que causa es pequeño, mientras que golpear a tu enemigo con la espada le hace más daño. Una vez que hayas completado un nivel y normalmente derrotes a un jefe de algún tipo, te encontrarás con tus amigos, supongo (una vez más, todo está en japonés) y te proporcionan mejoras, nuevas espadas, nuevos cuchillos para lanzar (el segundo tipo al menos golpea a múltiples enemigos (el primero es prácticamente inútil), mejoran tu armadura o te ofrecen un nuevo pergamino para un nuevo "súper ataque". Este ataque se puede lanzar presionando botón de Inicio (El botón de Seleccionar te lleva a algún tipo de menú donde puede cambiar tu equipo), si primero consigues un pergamino para activarlo. Posteriormente, deberás recopilar varios pergaminos para aumentar la potencia de tu "súper ataque" o para desplazarte por los diferentes rollos que tienes. Hay dos tipos de salto: uno se realiza simplemente presionando el botón de salto, y el otro requiere que presiones el botón hacia arriba y el botón de salto. Este último te permite hacer un gran salto que te permite saltar más lejos, también se puede utilizar para saltar sobre los edificios o en las paredes. En general, el juego es bastante divertido, especialmente cuando descubres el patrón de un jefe y finalmente lo vences.

Image Fight II - Operation Deepstriker

Este juego empieza con una muy buena introducción. Tiene subtítulos en inglés en la introducción que está completamente en japonés. El resto de secuencias de video también están en japonés, pero carecen de subtítulos, lo cual es una lástima, ya que el juego tiene secuencias de muy buena calidad que se ven más bien como un anime.

Figure 7 - More shooting action for the PC-Engine
Figura 7 - Más acción de disparos para PC-Engine

Figure 8 - Bosses require quick reaction and luckily you can adjust your speed
Figura 8: los jefes requieren de una reacción rápida, afortunadamente puedes ajustar tu velocidad

El juego viene a ser el típico shooter vertical, aunque está muy bien diseñado, con colores vivos, a veces un poco oscuros. La música y el sonido son realmente buenos y se adaptan muy bien a los escenarios del juego. Puedes recopilar diferentes elementos a partir de las "opciones" que rodean tu nave y que te permiten aumentar la potencia de fuego, así como protegerte de los enemigos y de los disparos. Hay dos tipos de opciones: azul y roja. Las azules siempre disparan en línea recta, y las rojas giran dependiendo de dónde te mueves, se mueve en la dirección opuesta a la tuya. Aparte de esto, puedes "montar" un arma especial que reemplazará tu "lanzador de guisantes" estándar por algo diferente, como un láser potente, cohetes o disparos que se propagan. La variedad es inmensa, y es interesante descubrir que hace lo que montas. El arma que montas en tu nave también cuenta con una especie de escudo que al golpearlo explota en lugar de hacerlo tú cuando te golpean. Tiene la desventaja de tener que destruirlo (disparando o chocando contra una pared) para poder montar una nueva arma en tu nave. El juego es bastante divertido y tiene muchos niveles, enemigos y jefes, de modo que es un juego muy variado.

Kaizou Choujin Shubibinman 3 - Ikai no Princess

Este fue uno de los primeros juegos al que jugué de PC Engine y, aunque está completamente japonés, me enganche a él al instante. Este juego de plataformas de acción se puede jugar con hasta dos jugadores y ambos tienen una espada y algún tipo de ataque de bola de energía. La espada se usa con el botón de ataque, y la bola de energía se lanza si mantienes presionado el botón de ataque durante unos segundos (es bastante rápido, aunque no dispones de un indicador que te muestre cuando está lista para lanzarse). La bola de energía es en realidad tu ataque más potente y probablemente es al que más recurrirás cuando luchas contra enemigos y jefes más grandes, o si quieres destruir algo. Presiona y mantén pulsado el botón de ataque después de disparar la bola, y podrás controlar la dirección de la bola de energía e incluso hacer un giro de 180°, si lo deseas. El juego tiene gráficos sorprendentes con un poco de desplazamiento de paralaje aquí y allá. Los colores brillantes son muy amigables y los enemigos cambian a menudo. Algunos son pequeños, mientras que otros son enormes. A veces, puedes coger diferentes vehículos con los que vas avanzando a lo largo del nivel como por ejemplo un mecha. Esto hace que el juego sea realmente divertido y ofrece mucha variedad. La música también esta muy bien. Te recomiendo que pruebes este juego.

Figure 9 - Fighting off a bunch of enemies using the energy ball to kill all at once
Figura 9 - Luchando contra un grupo de enemigos usando la bola de energía para matarlos a todos al mismo tiempo

Figure 10 - There are plenty of bosses and mid-bosses in the game
Figura 10 - Hay muchos jefes y mandos intermedios en el juego

Entre los niveles, tienes secuencias de video animadas que se ven fantásticas, pero desafortunadamente todas están en japonés como siempre. Puedes jugar a este juego solo o con un amigo, y puedes seleccionar entre un chico y una chica como personaje principal, las secuencias de video varían en función de tu elección.

Kaze Kiri - Ninja Action

Similar a Iga Ninden Gaiou y Kaizou Choujin Shubibinman 3 - Ikai no Princess, es un juego de plataformas de acción, más del estilo de Iga Ninden Gaiou o Ninja Gaiden. En resumen, se trata de un juego increíble, los efectos visuales son impresionantes con varias capas de desplazamiento de paralaje, lo cual está bastante bien para ser un juego de este tipo.

Figure 11 - You have to kill enemies until the bar in the is empty
Figura 11 - Tienes que matar enemigos hasta que la barra quede vacía

Figure 12 - Bosses can be thrown just like normal enemies but they are stronger
Figura 12: Los jefes pueden aparecen como enemigos comunes, pero son bastante más fuertes

En plena lucha, si atacas desde lejos, haces uso de los cuchillos, pero cuando estás más cerca, automáticamente atacas con tu espada o incluso agarras al enemigo y lo lanzas por encima de tus hombros. Los enemigos tampoco están completamente indefensos; aunque los primeros enemigos son fáciles de eliminar con cuchillos, la mayoría de los enemigos de la segunda fase empiezan a bloquear tus cuchillos, y algunos incluso llegaran a bloquear los ataques de espada, razón por la cual tienes que cambiar de táctica constantemente: saltar por encima de ellos, atacar por detrás, o atacarlos desde arriba. Es muy divertido ver que no solo mejoras mientras juega, sino que también tus enemigos se vuelven más fuertes necesitando mejorar tus habilidades para vencerlos. Además, serán capaces de dar más golpes y es posible que tengas que luchar contra varios enemigos al mismo tiempo. Los jefes son similares, a menudo incluso se parecen a ti y tienen capacidades y tácticas similares, pero también tienen habilidades especiales que los hacen un poco más fuertes. Aun así, incluso puedes agarrarlos y arrojados por encima de tu hombro, lo que pone de manifiesto que "No son tan poderosos” como la mayoría de jefes en otros juegos.

Tu barra de salud se recupera constantemente, de modo que en el peor de los casos incluso puede quedarte quieto y esperar a que se recupere tu salud. Esta barra de salud también se usa para tus ataques. Lanzar un cuchillo reduce la barra un punto, pero se recupera con bastante rapidez. También tienes la capacidad de volverte invisible (y con ello invencible) durante unos segundos, lo cual es genial para evitar ataques. En general, este juego se ve y se juega fantásticamente, recomiendo sumamente probarlo.

Juegos que están bien

Gain Ground SX

Este juego es un tanto complicado de describir. Cuentas con una selección de luchadores y tienes que matar a todos los enemigos del nivel o llevar a todos tus "soldados" a la salida. El enemigo normalmente ataca bastante lento, de modo que puedes huir o simplemente evitar sus ataques. En algunos niveles encuentras pequeñas miniaturas, y si las coleccionas te siguen y NECESITAS dirigirte con ellas a la salida para tenerlas disponibles en el siguiente nivel. Si en cambio matas a todos los enemigos, no obtendrás el personaje extra para el siguiente nivel.

Algunos niveles tienen múltiples miniaturas para "coleccionar", mientras que otros tienen uno o ninguno. La mayoría tienen diferentes ataques, desde lanzas, arcos, pistolas e incluso lanzamisiles. También suelen tener dos modos de ataque diferentes y, de hecho, pueden tener ataques totalmente diferentes en este sentido (por ejemplo, pistola + granada). Sin embargo, se vuelve difícil con rapidez y es posible que pierdas a tus luchadores rápidamente en los siguientes niveles. No estoy muy seguro de por qué utiliza el formato CD, ya que no tiene interpretaciones de voz, no hay escenas que se puedan ver, y los gráficos tampoco son tan impresionantes. Creo que una HuCard hubiera sido suficiente para este juego.

Garou Densetsu II - Aratanaru Tatakai / Garou Densetsu Special (aka Fatal Fury)

En realidad, son dos juegos, aunque los encontré muy similares, ya que son de la misma serie, siendo Garou Densetsu Special el mejor de los dos en mi opinión, con mejores gráficos y más personajes donde elegir. No obstante, encontré ambos juegos bastante difíciles. Utiliza SELECT y START como teclas de acción adicionales, ya que la PCE solo contaba con dos botones de acción (I y II), pero "solventaron" este problema utilizando los botones de inicio y selección como botones adicionales, y fueron capaces de mapear patadas y golpes bajos y altos dependiendo de tu diseño sobre estos 4 botones. Aparecen algunas voces con el anuncio del personaje y la música es buena, pero en general, probablemente sea más fácil para NeoGeo. No obstante, para PCE estos juegos son espectaculares, y si te gustan los juegos de lucha, este podría ser uno de los tuyos, si quieres emplearte a fondo con la PCE.

Ginga Fukei Densetsu – Sapphire

Este es uno de los muchos juegos shooter por los que este sistema es tan famoso. Puedes seleccionar una de las 4 chicas de anime, las cuales tienen diferentes aeronaves y pueden recolectar algunos potenciadores, que se limitan a una bomba adicional o a uno de los potenciadores aplicables a tu arma. Cada arma se puede actualizar varias veces, y puedes cambiar a otra arma si esperas que el potenciador cambie de color (rojo, azul o verde). Cada una de las 4 aeronaves maneja las armas y los potenciadores de forma diferente, de modo que cuentas con un total de 12 armas diferentes con múltiples niveles de potencia. Aparte de esto, no hay mucho más que decir sobre este juego. Hay toneladas de enemigos y balas que van y viene por toda la pantalla, y tienes varios jefes intermedios y un jefe final en cada escenario. Es un juego divertido para hacer estallar cosas, aunque no es nada del otro mundo. Al menos la música es bastante buena.

GöTzenDiener

A pesar de su nombre un tanto alemán, el juego está completamente en japonés y, como de costumbre, no se entiende nada. Empieza con un texto en japonés, y si presiona el botón de inicio, pasar por alto el resto de la introducción. En la introducción, ves a una joven mujer que está secuestrada por fuerzas maléficas y monstruos, acto seguido un grupo de soldados aparece para derrotar a los monstruos, y todos menos uno son asesinados. El juego empieza con una breve presentación entre el único sobreviviente y un gran demonio (¿probablemente el malvado señor o algo así?). Ambos se matan entre sí, y la chica que estaba en ese momento colgada con cadenas en el fondo se libera repentinamente. Ella coge la espada del soldado caído, y es ahí donde da comienzo el juego.

Ahora la pequeña niña con la espada del soldado se dirige a casa (supongo) tratando de hacer lo que no ha llegado hacer un ejército entero. Confuso, ¿verdad? De todas formas, al juego se juega en perspectiva isométrica en tercera persona, y los controles son TERRIBLES. Caminas por las zonas, subes y bajas escaleras, matas a un enemigo de vez en cuando, puedes empujar y levantas algunos objetos (como un martillo gigante para destrozar piedras), y simplemente deambulas sin rumbo por la torre en la que te encuentras. Los gráficos no son nada del otro mundo y el sonido está bien, aunque tiene poco, se puede apreciar algunos sonidos ambientales (como las campanas sonando) y algunos cambios de espada y similares. Cuando matas a un enemigo, aparece un efecto visual en el que se desvanecen todos sus píxeles y finalmente desaparece, lo cual es genial, pero aparte de esto, no hay mucho más que contar. No tienes un mapa ni un objetivo, y no tienes ni idea de qué hacer, excepto tratar de encontrar un camino por el que no hayas pasado ya diez veces. No estoy seguro de si me disgusta o simplemente no me llama la atención, pero creo que podría haberse hecho bastante mejor.

God Panic - Shijou Saikyou Gundan

Este es un tipo de cute ‘em up aunque tiene muy poca variedad. Solo hay una nave y varios niveles de potenciadores para tu arma, pero no hay armas diferentes. Los gráficos son aceptables, y la música es aceptable. En general es un juego que está bien, pero no es un fuera de serie.

Golden Axe

En fin, qué puedes decir sobre este juego: es una versión bastante buena de Golden Axe con música de CD y algunas intros para los tres personajes entre los que puedes elegir. Los gráficos son un poco más oscuros que en otras versiones, pero aparte de eso, parece bastante bueno. Si eres fanático de Golden Axe, no te decepcionará.

Gradius II - Gofer no Yabou

Una vez más, si conoces Grandia 2, sabrás de que va este juego. Es una versión arcade bastante agradable, con buena calidad de sonido y música, y una muy buena intro animada. Es un juego muy difícil, que es uno de los principales inconvenientes en mi caso, y como este análisis parte de mi opinión personal, lo he clasificado un juego que "está bien". El hecho de que solo tengas 3 vidas y no puedas continuar hace que el juego sea demasiado difícil para mí, he tenido que empezarlo varias veces. Tal vez con más práctica lo disfrutaría más, pero es demasiado complicado para mi gusto.

Hellfire S - The Another Story

Este es otro de las muchos shoot ‘em ups de desplazamiento lateral del sistema. Tiene una intro muy animada y en general los gráficos son bastante buenos. Este juego además permite usar el "Turbo Switch" (L2) para que funcione correctamente. Tienes un par de potenciadores como la velocidad y los potenciadores de las armas, pero no hay "bombas" especiales. Al presionar el segundo botón cambia la dirección de tu arma. Puede disparar hacia adelante, hacia atrás, hacia arriba y hacia abajo, y en diagonal en las 4 direcciones. Esto es necesarios ya que los enemigos te atacan por todas direcciones y algunos solo pueden ser alcanzados si disparas hacia atrás o hacia arriba y abajo, especialmente los jefes con los que necesitas usar este tipo de disparos a menudo. Cambiar de armas es "algo diferente" pero no siempre es útil. Por lo general, el juego no está mal, aunque también es bastante difícil.

Hihou Densetsu - Chris no Bouken

Una vez más, un juego que está totalmente en japonés. Peor aún, la intro solo muestra imágenes (sin animación alguna) con interpretaciones de voz, que tienen muy buena calidad, pero está completamente en japonés, sin subtítulos de ningún tipo. El juego se ve bastante bien en general y básicamente es un juego de plataformas de acción. El personaje principal es una mujer que aparentemente va tras su padre explorando templos antiguos, posiblemente adivines lo que estaba pensando cuando jugué por primera vez, tiene algunas cuestiones que se asemejan al Tomb Raider: recolectas monedas antiguas cuando derrotas a los enemigos, y hay un montón de rompecabezas de saltos que requieren sincronización y precisión. De hecho, el tiempo es muy importante, ya que solo dispones de un tiempo limitado para cada nivel. También manejas una espada/daga que puedes usar para romper objetos o matar a los enemigos. Esta daga en sí misma es bastante corta y la mayoría de los enemigos tendrán que recibir más de un golpe, aunque puede mejorarse con diferentes orbes que puedes recolectar, y al parecer, la combinación de dos colores de orbe diferentes define el tipo de mejora de arma que obtienes. Algunos de los cuales son de corto alcance (o ampliaciones de éste), mientras que otros incluso te permiten disparar a los enemigos. En general, el arma por defecto es muy débil y los enemigos a menudo tienen un alcance mayor que la que tienes tú, por lo que es esencial actualizar tu arma. Aun así, encontré el juego muy difícil, ya que tienes un tiempo limitado, tienes que correr por los niveles y, con frecuencia, eres golpeado en el proceso, lo cual te lleva a perder con rapidez. Al final de cada nivel, luchas contra un monstruo jefe, y cada nivel tiene dos etapas, al parecer. Después de cada nivel, aparece una escena con la que avanzas en la historia. Como he comentado, los gráficos son bastante buenos y la música es muy bien. Probablemente lo disfrutaría bastante más si no fuera tan difícil y no tuvieras esa limitación de tiempo por nivel.

Horror Story

Este es otro juego de plataformas de acción en el que tu héroe está fuertemente armado y lucha contra todo tipo de monstruos (probablemente todos los que aparecen en las Historias de terror chinas). Los gráficos están bien, aunque no son impactantes, el fondo se desplaza continuamente, presionándote para que avances. Sin embargo, no es demasiado difícil; Una vez que descubres que tienes un doble salto, la partida se vuelve mucho más fácil, ya que tu doble salto es probablemente 3 a 4 veces más alto que el salto normal, y sin él todo sería mucho más complicado. Puedes recolectar algunos potenciadores: "P", por ejemplo, te dará un "Escudo" si recolectas 3, básicamente se trata de una armadura que te permite recibir un golpe adicional antes de morir (normalmente mueres si algo te toca). Otros te darán diferentes armas, como láser, triple disparo, lanzallamas y similares. Se puede jugar solo o con un amigo. Es divertido para un rato con buena música, pero nada que te despierte interés durante mucho tiempo.

Human Sports Festival

Se trata de una combinación de tres juegos de deportes en un único disco: golf, fútbol y tenis. Los tres juegos son sólidos y se ven bien para su tiempo. Los controles están bien, la música es buena. Simplemente no soy un gran fan de los juegos de deportes, especialmente de los primeros títulos, y una vez más, solo está disponible en japonés.

Hyper Dyne SideArms Special

Este juego tiene dos opciones diferentes en la pantalla de inicio: "Standard" y "Before Christ". Ambos parecen tener el mismo diseño de nivel, pero se controlan de forma ligeramente diferente, con diferentes tipos de armas y gráficos levemente modificados. En la opción "Standard", consigues potenciadores con bastante frecuencia y puedes disparar para cambiar a otros tipos de armas, y puedes pausar el juego para cambiar entre los diferentes tipos de armas que has seleccionado. En la opción "Before Christ", las mejoras de armas son bastante raras y cambian automáticamente de una opción a la siguiente, lo que significa que tienes que pasar un tiempo cuando la recojes para mejorar el arma que deseas, o para conseguir el arma que quieres. No tienes la opción de cambiar de arma. El botón I disparará a la derecha, y el botón II gira tu personaje a la izquierda y dispara a la izquierda. Los gráficos son buenos, pero no espectaculares, la música es bastante agradable y se adapta perfectamente al juego.

It Came From The Desert

Este juego es una aventura interactiva con algunas escenas de acción en un entorno donde corres y disparas. De hecho, impresiona bastante, ya que es la primera vez que veo completos vídeos de movimiento sobre la PC Engine. Sin embargo, la paleta de colores queda reducida en gran medida, lo cual hace que sea un poco difícil de ver, ya que quizás sólo veas 8 colores a la vez durante la reproducción de video. Además, los videos estan muy granulados. Algunos gráficos del juego parecen fotografías digitalizadas, que tienen una calidad algo mejor, pero no son nada en comparación con los gráficos animados que encuentras normalmente en el sistema. La mayor parte del juego consisten en hablar con la gente y visitar lugares. Con todo en FMV, esto se parece más a una película interactiva que a un juego que es bastante singular. El juego está totalmente en inglés, así que puede sentarse y disfrutar del espectáculo en su mayor parte.

J League Tremendous Soccer '94

Este juego de fútbol tiene muy buenos gráficos, de hecho, tiene la resolución de pantalla más alta que he visto en todos los juegos que he probado hasta ahora. Los gráficos presentan colores muy vivos, la acción es rápida, las voces están en inglés, aunque el menú está solo en japonés. También encontré el juego muy difícil, aunque puede que sea debido a que soy muy malo con este tipo de juegos. En general, es un juego muy bueno y si te gusta el fútbol, deberías probarlo.

J. B. Harold Murder Club

En este juego de detectives intentas resolver un asesinato. Visitas diferentes lugares para preguntar a las personas que estaban haciendo y qué saben interrogandolos, etc. Se reproduce de forma similar al juego Snatcher de Sega CD, pero utiliza en su mayor parte fotos de personas y lugares, lo que lo hace parecer más granulado. Tienes la opción de tener la narrativa en inglés o en japonés, pero esto ralentizará significativamente el juego, ya que tendrás que esperar hasta que terminen de hablar. En general, es un juego muy interesante, simplemente no tengo tiempo para jugar, de lo contrario, probablemente lo disfrutaría bastante más.

Jim Power - In Mutant Planet

Reconozco este juego de Amiga, y la versión de PC Engine está muy cerca de la experiencia de Amiga, pero también tiene algunas mejoras. Por ejemplo, se ha añadido una introducción que explica lo que estás haciendo, un tanto cutre, pero está bien. Una gran mejora es probablemente la banda sonora con calidad CD. Aunque no tienes muchas pistas de música, las que existen son bastante buenas y se ajustan a la configuración. Con los gráficos animados y colores brillantes, este juego realmente es muy similar a la versión Amiga.

Al igual que en la versión Amiga, presionando el botón "up" hace que el personaje salte, lo que significa que si tu D-Pad no funciona correctamente, puedes saltar con más frecuencia de lo esperado. No obstante, tienes un botón secundario para saltar también. Como con la mayoría de los juegos de plataformas europeos, golpear cualquier cosa (incluso una gota de agua) significa muerte instantánea. Aún así, el juego es bastante sorprendente, y si te gustan los juegos de plataformas de acción, deberías probar este.

Juuouki (aka Altered Beast)

Sé que este juego esta para muchas plataformas y esta es realmente una muy buena versión, pero tuve un gran problema con él. Cuando recogí la tercera esfera y me transformé en una bestia, el juego dejó de avanzar. Puedes matar a todos los enemigos de la sección del juego, pero después de eso el juego simplemente se detiene. Puedes caminar, saltar, atacar, lo que sea, pero el juego ya no avanza y te quedas atrapado en la escena en la que te encuentras. Realmente es un fastidio. Tal vez es mi versión la que tiene este problema, pero hace que el juego sea mucho más difícil de lo que debería ser.

Kaze no Densetsu Xanadu / Kaze no Densetsu Xanadu 2

Estos juegos son similares a los primeros juegos de Ys y forman parte de la serie Dragon Slayers. La intro de la primera parte es bastante impactante. Puedes echar un vistazo a la extensa intro en https://www.youtube.com/watch?v=XXXxiyn4aWY). Como es habitual, el juego está totalmente en japonés, que es el mayor inconveniente. Los "gráficos" del primer juego no son tan impresionantes y ni siquiera tan buenos como en la intro. De hecho, son bastante sosos. El segundo juego mejoró los "gráficos del juego" y la jugabilidad BASTANTE y me gusta mucho más. Sin embargo, puesto que el juego está completamente en japonés, no tengo ni idea de qué hacer y dónde ir. Me resulto más sencillo entender algunas cosas en el segundo juego, pero sigue siendo una gran decepción para mí.

El estilo de lucha es como en la primera serie de Ys, lo que significa que te topas con el enemigo, y si los golpeas de frente, lo dañas, pero si no estás alineado correctamente o si un enemigo te golpea por detrás o por el lateral, te causara daño. No hay un botón de ataque y simplemente te topas con el enemigo. Creo que, si entendiera lo que pasa, el segundo juego de la serie me mantendría ocupado durante varias horas.

Kiaidan 00

Este agradable juego de disparos al estilo mecha viene con una buena intro y una gran variedad de armas. Puedes pasar por todas las armas presionando el segundo botón, y con el primer botón atacarás. Deja de atacar y automáticamente se cargará un ataque especial dependiendo de qué arma hayas seleccionado. Los gráficos son realmente buenos, y los sonidos y la música también están bien. El juego es un poco difícil cuando luchas contra enemigos desde todas las direcciones, y solo cuentas con una o dos armas que puedes usar para atacar a los enemigos que aparecen detrás de ti, por lo que se hace necesario tener de cambiar de arma y puede resultar un tanto difícil en el seno de la batalla. En general, el juego es bastante divertido y probablemente incluso merecería ser incluido en los juegos que me gustan, pero no podría jugarlo siempre y cuando hubiera querido decidir esto.

Kick Boxing

No puedo decir mucho sobre este juego, excepto que es bastante decente. Tiene buenos gráficos y un buen número de imágenes con animaciones. Dispones de campos de entrenamiento para mejorar tu personaje y así sucesivamente. Soporta únicamente dos botones. No es mi tipo de juego favorito, pero merece la pena, funciona bastante bien, y si te gustan este tipo de juegos, definitivamente deberías echarle un vistazo.

Kuusou Kagaku Sekai - Gulliver Boy

Cuando vi por primera vez el FMV en "It Came From The Dessert", ya me había imaginado que era posible, pero este juego me ha sorprendió aún más. Los videos en este juego son anime, y aparte de un poco de granulosidad, los videos se ven perfectos. Realmente son de alta calidad y de hecho muestran varios minutos de película ininterrumpida. Esto junto con la presentación general del juego (gráficos, sonidos y música) muestran que fue un título muy tardío en la vida útil del sistema (1995), y por aquel entonces los desarrolladores realmente sabían cómo aprovechar al máximo el sistema. Para decir la verdad, si lograra entender que es lo que realmente ocurre en el juego (como es habitual, todo está en japonés), no dejaría de jugar hasta completarlo. Se siente más como un juego de Sega Saturn desde punto de vista de la calidad en lugar de algo parecido a PC Engine. Desafortunadamente, puesto que no entiendo lo que sucede en el juego, simplemnte puedo curiosear dentro del juego. Aunque realmente es una pena.

Juegos que no me han gustado

Genocide

Este juego de lucha tipo mecha realmente no tiene nada para disfrutar. Ni siquiera se puede omitir la introducción de texto en japonés, que es bastante molesta. Después, aparece una agradable presentación con buenos gráficos, hasta el punto de hacerte pensar que el juego podría ser divertido. Sin embargo, una vez que estás dentro del juego, todo cambia. Los gráficos están bien, pero la jugabilidad es realmente mala. Controlas un mecha que solo puede golpear con su espada o saltar, teniendo que matar a enemigos que son increíblemente rápidos y te golpean constantemente, lo que significa que pierdes salud con casi todos los enemigos. Los combates son aburridos, sin nada interesante y poca variedad, excepto los monstruos en si mismos. Sueles morir rápidamente y no me resultó nada entretenido.

Godzilla

Por supuesto, Godzilla podría no ser un mal juego, ya que la música y los gráficos son agradables. Las secuencias de video realmente se ven bastante bien, pero este juego de lucha al estilo Street Fighter 2 simplemente no es mi tipo. Los personajes son lentos, e incluso en el nivel más bajo, los enemigos me golpearon fácilmente y no pude hacer mucho para defenderme. Puedes realizar algunos movimientos especiales, aunque tu movimiento especial es algo más potente que un golpe normal con el brazo, el enemigo logra golpearte por todos lados. Esto me parece un poco injusto.

Gulclight TDF 2

Este juego de estrategia de táctica basado en rondas es un poco difícil de entender, y no me esto refiriendo a que está completamente en japonés, aunque esto tampoco ayuda mucho. En este juego, puedes desplazar a tus unidades, planear ataques y cambiar entre armas. Es similar a juegos como Fire Emblem o Shining Force, pero también algo diferente. De hecho, si intentas atacar a un enemigo, probablemente terminarás perdiendo bastante rápido, mientras que recuriendo a la estrategia de excavar y esperar a que el enemigo ataque te ayudará a superar el nivel, así que realmente te encuentras en desventaja si simplemente atacas, lo cual es muy extraño en un juego así. Aparte de este hecho, el juego te arroja a batallas aparentemente aleatorias. No sabes muy bien por qué estás luchando o cuál es el objetivo, así que es un poco frustrante y no me gustó para nada.

Implode

Se trata una compilación de 3 juegos caseros no oficiales hechos a principios de la década de 2000. Implode es un juego bastante conocido en el que haces clic en un bloque, y todos los bloques del mismo color que están conectados al bloque en el que hiciste clic desaparecen e intentas conseguir el minimo número de bloques restantes. El segundo juego de la lista es similar al blobby volley para aquellos que lo conocen. Es una especie de "simulación" de voleibol con algunos giros adicionales, como mover la red hacia la izquierda o hacia la derecha y hacerla más alta o más baja. El PC es extremadamente bueno y muy difícil de superar. El último es algún tipo de juego de carreras en el que intentas evitar golpear el coche de otros jugadores, lo cual es básicamente imposible. En mi opinión, ninguno de los juegos es realmente divertido, aunque pone de manifiesto que todavía hay personas que crean juegos para el sistema.

Jack Nicklaus Turbo Golf / Jack Nicklaus World Tour Golf

No hay mucho que pueda decir sobre este juego: los simuladores de golf normalmente no fueron lo mío, ni tampoco lo son hoy día. Tiene algunas interpretaciones de voces que explican en qué sentido juegas, pero como he dicho, se trata de un simulador de golf. Si te gusta este tipo de juegos, pruébalo.

John Madden Duo CD Football

No soy realmente un fanático del fútbol o de los juegos de simulación de fútbol. Es un juego bantente bueno hasta dondo yo sé, usa algo de FMV cuando muestra los lanzamientos y los comentarios. El juego en sí parece estar bien, pero como he dicho, no soy un gran fan de ese género, así que realmente no sé cómo valorar este juego. Simplemente no me aporta nada.

Kakutou Haou Densetsu Algunos

Este juego de lucha se ve bastante bien y tiene muchos y diferentes personajes para elegir. En el modo batalla, luchas contra otro jugador humano, mientras que en el modo historia luchas contra el PC. Aunque el juego parece tener soporte para hasta 6 botones, no puedo usar más de dos. Los personajes tienen tamaños muy diferentes, y el tamaño importa. Si tienes un personaje pequeño con un rango de aproximadamente 1 a 2 pulgadas en la pantalla, imaginate cómo te manegarías con un personaje que tiene un rango de más de 1/3 de la pantalla donde ni siquiera puedes acercarte para golpear a los enemigos. El enemigo está constantemente bloqueando tu ataque, al mismo tiempo que probablemente recibirás un golpe tras otro. Tal vez sea simplemente yo, que soy lo peor en este tipo de juegos. Los gráficos son muy buenos y la música también está bastante bien. El sonido podría haber sido un poco mejor, pero supongo que es aceptable. En general, no me gusta el juego debido al desajuste en el sistema de juego.

El Punto G: Tu principal Rumbo en Todos los Juegos Android: Aargh, Plunder, Me Hearties

Cuando leas este artículo en marzo de 2019, el lanzamiento del muy anticipada e igualmente retrasado Plunder Kings de Goodnight Games ya debería haber tenido lugar a fines de febrero. Recordarás que Goodnight Games inicialmente prometió este juego de disparos en febrero de 2018, así que puedes coger esta fecha de lanzamiento con cautela. Es decir, hasta que veas el tráiler más reciente de Goodnight Games en https://m.youtube.com/watch?v=H1aWXAn57tA.

¡Ahí la tienes al final del video, una nueva fecha de lanzamiento para el 26 de febrero de 2019! Así que, ver es creer, ¿eh? En cualquier caso, Plunder Kings es un increíble, potente y magnífico desplazador de vista superior que cuenta con naves, villanos y armas en abundancia (Figura 1). Sin embargo, hay un cambio inesperado. Durante el juego, puedes coger tu botín al final de un nivel, o puedes tirarlo y seguir jugando, arriesgándote a morir y a perder tu botín conseguido de dudosa forma.

Figure 1 - Thar she blows! Plunder Kings mayhem
Figure 1 - Thar she blows! Plunder Kings mayhem

Pero aún es mejor que eso, compañeros.

Antes de lanzarte a cada misión, puedes apostar a cuántas oleadas puedes vencer. Si ganas esta apuesta, puedes sacar provecho de la gran cantidad de mejoras, tesoros y botines piratas de un rey. Por desgracia, si pierdes, realmente lo pierdes ... todo. ¿Vale la pena la apuesta? Oye, esto son las Vegas, baby y eres un pirata, así que ve a por todas (Figura 2).

Figure 2 - Intra-game communication in Plunder Kings
Figura 2 - Comunicación dentro del juego en Plunder Kings

Es tu historia y eres libre de reescribirla

Otro lanzamiento muy esperado ya está acumulando críticas muy favorables. Revolve8 de SEGA es un juego de estrategia en tiempo real con "episodic", que es un término de SEGA, batirse en duelo dentro de un cuento de hadas. Este juego es gratuito para descargar y jugar aunque incluye compras dentro de la aplicación. Como es de esperarse en los juegos de SEGA, Revolve8 presenta buenos gráficos, un juego realista y una banda sonora cautivadora (Figura 3). Es más que eso, los créditos para este juego se leen como un quién es quién de los juegos más importantes: el productor principal es Masayoshi Kikuchi, el diseñador de personajes es Koji Igarashi, con Ryota-H como artista de personajes, y Shunsuke Tsuchiya y Yasunori Mitsuda como productores de sonido. Este legendario juego puede compararse con clásicos títulos como Yakuzza, Jet Set Radio, Castlevania y Xenoblade Chronicles 2. ¡WOW!

Así que toma tu baraja de cartas, derrota a tus oponentes y escápate a tu propio mundo.

Figure 3 - Revolve8 from SEGA will take your ODROID gaming skills to the limit
Figura 3: Revolve8 de SEGA llevará al límite tus habilidades de juego ODROID

¿Necesitas una última razón para descargar Revolve8? Echa un vistazo a este tráiler en inglés https://m.youtube.com/watch?v=xBQyhphCfao.

Not Craw; Craw

¿Buscas una pequeña distracción a modo de juego mientras esperas a que lleguen estos nuevos lanzamientos? Bien, ¿qué tal un trabajo a tiempo parcial? Mejor aún, un Part Time UFO (Figura 4). Suena completamente a locura, pero manejar este OVNI en bloque y recoger cosas con su garra extensible/plegable puede llegar a ser hasta terapéutico. Creado por HAL Laboratory, Inc. a principios de 2018, Part Time UFO se vende por 3.99$ y puede volverse adictivo. Consideraos advertidos, ex adictos a Flappy Bird.

Figure 4 - Blocky fun that will grab you in Part Time UFO
Figura 4 – La diversión con bloques te atrapará en Part Time UFO

Cuanto más rápido puedas coger y soltar cosas, mayores serán las bonificaciones que obtendrás. En el camino, puedes recoger trabajo adicional, como el jarrón que se esconde junto al edificio, simplemente continua y agárralo. Bingo, acabas de obtener una bonificación extra porque apilaste tu jarrón sobre otras cosas. Estos bonos no duran demasiado, así que mueve a tu pequeño OVNI en seguida antes de que tus bonos salgan de este mundo. Mira el video: https://m.youtube.com/watch?v=2Nb718u4XMU.

Mantén tu Android activado – Top Ten de febrero de ODROID Magazine

  • Alto’s Odyssey - GRATUITO
  • Asphalt 9: Legends - GRATUITO
  • Minecraft - $6.99 USD
  • The War of Mine - 14.99$ / paquete de expansión para desarrolladores 1.99$
  • Vainglory - GRATUITO
  • Fire Emblem Heroes - GRATUITO
  • Monument Valley 2 - 4.99$
  • Shadowgun Legends - GRATUITO (Si te gustan los shooters de rol, descarga este juego!)
  • Crashlands - 4.99$
  • PUBG Mobile – GRATUITO (Más de diez millones de descargas no puede ser un error, ¿verdad?)

PARA EN PRENSA!

Dios mío. Parece una eternidad, dos años y medio es una eternidad en la industria de los juegos con Android, desde la última vez que oímos hablar de Oceanhorn 2: Knights of the Lost Realm. Anunciado por el desarrollador Cornfox & Bros como sucesor de su exitoso título Oceanhorn, el desarrollo avanzaba a un ritmo vertiginoso hasta que Epic Games se involucró. No obstante, esta participación era algo que se esperada, ya que Oceanhorn 2 está codificado con Unreal Engine 4 de Epic Games.

Irónicamente, es debido a la participación de Epic Games por lo que tenemos este sorprendente anuncio en prensa. En un evento de juegos en Helsinki, Finlandia, que fue organizado por Epic Games, hubo una versión avanzada de Oceanhorn 2 disponible para que los asistentes jugaran. Aunque el video es un poco chungo, puedes ver el juego en acción. Con un sistema de juego de perspectiva en segunda persona, Oceanhorn 2 se ve genial y debería ser recibido por todos los aficionados de Zelda. El video está disponible en https://m.youtube.com/watch?v=DY6qotqTEbQ.

Presentando NEMS Linux - Parte 5

En la edición de enero de ODROID Magazine, presenté algunas de las nuevas características de NEMS Linux 1.5 y cómo actualizar de la versión 1.4.1 a la 1.5 con la herramienta NEMS Migrator. Desde entonces, NEMS Linux 1.5 ha ido ganando intensidad en la plataforma XU4. Este pequeño ordenador de placa reducida de Hardkernel ha demostrado ser una plataforma estable para montar un servidor de monitorización empresarial Nagios. Es sensible, compatible con eMMC (que notablemente es más fiable que las tarjetas SD) y, obviamente, tiene un factor de forma que se adapta a cualquier tamaño de red, desde el usuario doméstico que busca saber si su conexión a Internet funciona con lentitud, hasta la empresa a gran escala que necesita monitorizar el estado de cientos de terminales conectados.

Figura 1 - Monitorizando tu velocidad de internet en NEMS 1.5

Ha habido algunas actualizaciones de infraestructura importantes para el sistema de distribución NEMS Linux y el sitio web. Nuestro sitio web ahora está alojado en su propia instancia EC2, lo que me brinda una escalabilidad óptima a medida que NEMS Linux continúa creciendo en popularidad. Este movimiento también se está preparando para muchas de las nuevas funciones de NEMS Cloud Services, que brindan funciones opcionales basadas en la nube para hacer que la monitorización de Nagios sea aún más fácil para los administradores de sistemas. Las descargas de NEMS Linux 1.5 están disponibles a través de BitTorrent. Este método de distribución ha demostrado ser una excelente manera de reducir costes y, al mismo tiempo, mejora la velocidad de descarga general para los usuarios finales. También ha empezado a proporcionar los archivos IMG dentro de un archivo ZIP, reduciéndolos significativamente en tamaño. Puesto que balenaEtcher y otras herramientas pueden actualizar tu tarjeta SD o eMMC sin tener que descomprimir el archivo, tiene sentido distribuir ahora los archivos IMG como ZIP. De modo que, inicia tu cliente Transmission y dirígete a nuestro sitio web para descargar NEMS Linux para ODROID-XU4.

Figura 2 - Primera pantalla de NEMS antes de la inicialización

NEMS Linux se puede descargar y usar de forma gratuita, pero hay algunas características adicionales que están disponibles como extra para los usuarios. Una de esas características es NEMS CheckIn. Desarrollé esta función para tratar el problema de que, si un servidor NEMS se desconectara, el administrador dejaría de recibir notificaciones y podría no darse cuenta de esto durante algún tiempo. Esto llevó a algunos usuarios a configurar múltiples servidores NEMS: servidores NEMS para monitorizar otros servidores NEMS. NEMS CheckIn es la respuesta a esto.

Figura 3: Recibe notificaciones si tu servidor NEMS se desconecta

NEMS CheckIn es muy fácil de configurar y, si está activado, simplemente enviará un ping al servidor NEMS Cloud Services cada 15 minutos. Si el servidor no recibe noticias de tu servidor NEMS Linux dentro de un período de tiempo establecido, se enviará un correo electrónico a la dirección de correo electrónico que hayas especificado para avisarte de que tu servidor NEMS no responde. Es una solución simple pero muy efectiva. NEMS CheckIn se puede activar dentro de la herramienta de configuración del sistema NEMS en NEMS Cloud Services. Está deshabilitado por defecto.

Figura 4 - Un ejemplo de notificación de NEMS CheckIn

Webmin ha sido eliminado y reemplazado en NEMS Linux 1.5 por Cockpit, una interfaz de sistema basada en web de Red Hat Enterprises. En versiones anteriores de NEMS, se incluyó Webmin para ofrecer un terminal Linux basado en navegador junto con la posibilidad de disponer de una visión global del sistema. Al principio también se usaba para configurar la red, pero como ha estado plagado de errores durante mucho tiempo con pocas esperanzas de ver una solución a corto plazo, consulté a la comunidad y tomé la decisión de eliminar Webmin. Una excelente característica de Cockpit, a diferencia de Webmin, es que no utiliza recursos del sistema cuando no está activo. Donde Webmin tiene un demonio activo que usa una gran cantidad de recursos del sistema que es particularmente notable en placa inferiores como el Raspberry Pi, Cockpit baja la carga por sí misma y configura un detector de puertos. Una vez que se accede al puerto, el sistema Cockpit se reactiva nuevamente. Esto es muy útil para una distro que esté centrada en el uso de ordenadores de placa reducida.

Cockpit es, al menos en apariencia, mucho más simple que Webmin. Se podría decir que está menos abarrotado. Cockpit se percibe más bien como una interfaz iDRAC simplificada para NEMS Linux, sin necesidad de un controlador adicional. Tiene algunos gráficos de rendimiento que son visibles sobre la marcha: la posibilidad de reiniciar o apagar de forma segura su servidor NEMS desde el navegador (solo asegúrate de marcar la casilla "Reuse my password for privileged tasks"), y quizás lo más importante, una ventana de terminal amigable que te permite administrar tu servidor NEMS Linux a nivel de terminal, sin SSH. Por ahora, no permite las operaciones de copiar y pegar, pero para un uso general está muy bien. Incluso puedes ejecutar tu tarea nems-init directamente en el navegador. Para los usuarios avanzados interesados en leer la documentación sobre RHEL, descubriréis que también se puede usar Cockpit para administrar múltiples servidores desde una misma consola.

Figura 5 - Cockpit lleva el terminal de Linux al navegador

Además de los aspectos técnicos de NEMS Linux, la estética también es importante. Uno de mis objetivos con NEMS Linux es proporcionar una experiencia Nagios pre-configurada lo más bonita posible. Aunque no es una característica importante desde el punto de vista técnico, cierto número de usuarios de NEMS han solicitado la posibilidad de personalizar los distintos paneles de control para poder adaptarlos al entorno de su área de servidores. En particular, deseaban cambiar el fondo del área de servidores NEMS por un fondo de su propia elección. Aproveché la oportunidad de trabajar en esta función, ya que me di un pequeño respiro con las mejoras más técnicas de NEMS Linux 1.5, lo cual me permitió centrarme en NEMS Dashboard UX durante algún tiempo. El resultado de este "descanso" con mi lista de tareas pendientes de desarrollo fue que NEMS 1.5 incluye la posibilidad de cargar tu propio fondo que se escalará y comprimirá automáticamente. Además, he añadido la función de poder elegir un color de fondo en lugar de una imagen, y escribí una nueva función API que carga una "foto del día" todos los días desde un repositorio CC0 creado únicamente para ese propósito. Esto ha pasado a ser el nuevo valor por defecto, de modo que cada día aparecerá una imagen de fondo diferente, seleccionada al zar. Además, la nueva función de fondo te permite agregar un efecto de desenfoque, proporcionando excelentes opciones de personalización para cada usuario.

Figura 6: Cuadro de mandos de NEMS Linux 1.5 con un fondo cargado por el usuario

Hay más tutoriales técnicos de camino, pero como NEMS Linux 1.5 es completamente nuevo, sentí que era importante aportar algunas de las nuevas mejoras de primera mano antes de sumergirse de nuevo en las profundidades de esta avanzada herramienta de monitorización de red para ODROID XU4. Si eres nuevo en NEMS Linux, te animo a volver atrás y leer los primeros artículos que presentan NEMS Linux a la comunidad de ODROID en los números de octubre de 2018, noviembre de 2018 y diciembre de 2019 de ODROID magazine. Aunque los primeros se escribieron sobre NEMS Linux 1.4.1, los procesos no han cambiado y la información sigue siendo válida para NEMS Linux 1.5.

Aprender Más

NEMS tiene foro comunitario muy activo. Entro con bastante frecuencia para proporcionar soporte gratuito a los usuarios. También ofrezco asistencia prioritaria personalizada a los usuarios que necesitan un mayor nivel de asistencia. NEMS Linux es gratis para descargar y usar. Su código fuente está disponible en GitHub. Puedes descargar NEMS Linux para ODROID https://nemslinux.com/

También puedes seguir a @NEMSLinux en Twitter o unirse a nosotros en Discord. También he lanzado un canal de YouTube específicamente para NEMS en el que publicaré screencasts y tutoriales sobre NEMS Linux. Si bien el contenido aún está por llegar, ¡Apreciaría mucho que te suscribieras! Encontrarás el canal aquí.

Sobre el Autor

Robbie Ferguson es el anfitrión de Category5 Technology TV y autor de NEMS Linux. Su programa de televisión se encuentra en https://category5.tv/ y su blog es https://baldnerd.com/

Conceptos Básicos de BASH: Introducción a BASH - Parte 8

La productividad es clave. Una de las razones por las que las personas trabajan sobre línea de comandos con BASH, a pesar de disponer de fantásticas opciones gráficas incluso para los SBC como nuestros ODROID, es que pueden hacer su tarea más rápido y tienen la posibilidad de recurrir a la automatización.

Productividad con BASH

Cuestiones diversas de BASH

Ctrl-t para errores tipográficos cambia la letra debajo del cursor por la anterior y, si es posible, mueve el cursor hacia adelante, o usa los dos caracteres anteriores si está al final de la línea. Ya hemos aprendido muchos atajos en las últimas partes. Una ayuda muy importante, además del conocido sudo, para prefijar el último comando con sudo, es usar !$ como argumento para extraer el argumento del último comando.

Supongamos que queremos listar un determinado archivo para ver el tamaño:

$ ls -l /path/to/filewithlongname/suspiciousbigfile
Si decides deshacerte del archivo, no necesitas volver a escribirlo todo, simplemente puedes usar !$ junto a rm:
$rm !$
Si usas Alt-. en lugar de !$, incluso puedes seleccionar qué argumentos del último comando deseas reutilizar escribiéndolo varias veces. Recorre los últimos argumentos de los comandos anteriores similares a Ctrl-R cuando buscas en tu historial BASH - te detienes en la entrada que quieres usar.

Puesto que estamos con el tema del historial de BASH: el siguiente, Alt-#, es un atajo para "abandonar esta línea, pero mantenerla en el historial". Agrega un # al inicio de la línea, convirtiéndolo en un comentario. Es fácil de localizar con la búsqueda inversa Ctrl-r, ya que a menudo no usas # en el terminal. También puedes tomar nota de algo mientras estás en el intérprete de comandos. Simplemente escríbelo y presiona Alt- #, y se añade a tu historial. También es de gran ayuda cuando queremos incluir una explicación para un comando muy complicado. Inicia un comando complejo y guárdalo temporalmente con Alt- #, luego deténgase a la mitad, quizás buscando algo. Después recupera la línea del historial con la tecla ARRIBA o Ctrl-r y finalice el comando saltando al principio con Ctrl-a, seguido de Del.

Un pequeño inconveniente es que la terminación del comando no funciona sobre las líneas que empiezan con un # (a menos que sea parte de una tubería, cualquier cosa que funcione como es de esperar): la terminación de la ruta y el nombre de archivo, sin embargo, funciona.

Guardar un archivo de historial BASH personalizado
Ahora, después de haber aprendido tanto sobre BASH, seguramente hay cosas que te llamen la atención, y después de probar determinadas frases ingeniosas, quieres asegurarte de que se conserven permanentemente en tus archivos de referencia.

Pero cuando trabajas en algo, quieres mantenerte centrado y no cambiar a un editor de texto para guardar lo más destacado de tu trabajo. Para poder tener tus propios fragmentos de BASH guardados en forma de notas, abre tu archivo ~/.bashrc con tu editor de texto favorito y agrega una función al final:

Anexar la última entrada del historial al archivo
function hsave() { history -p '!!' >> ~/bak/savedbashlines ; } Ahora puede ejecutar un comando complejo y luego introducir hsave para guardarlo en tu archivo dentro de ~/bak/savedbashlines. Escribe una aclaración sobre él en la línea de comandos, haz Alt-t hsave para guardarla, ejecuta hsave nuevamente.

Por ejemplo, coge un comando como el siguiente:

$ du -a /path/to/directory | sort -n -r | head -n 25 | awk '{$1=""}1' | $ awk '{$1=$1}1' | sed '1d' | sed 's/^.\{1,\}$/"&"/'
Te proporciona una lista con los 25 directorios más grandes de esta ruta, encapsulados entre comillas, y es muy apropiado en este caso no tener que reinventar la rueda otra vez, o pensar en lo que se está haciendo.
Copia de seguridad al sistema remoto/trabajo con espacios en rutas
¿Cuál podría ser el uso de una lista con los directorios más grandes? Uno podría ser dirigir esta lista a un archivo con > biggies.txt anexado al comando y copiar los directorios en otro sistema de almacenamiento con menos limitaciones que un ordenador de placa reducida.

Para copias de seguridad completas, tienes la excelente herramienta Odroid-Backup, pero con bastante frecuencia, queremos una copia de seguridad de sólo una parte del sistema. La herramienta habitual para esto es rsync. En pocas palabras, puede usar el siguiente comando para hacer una copia de seguridad del directorio y su contenido en un ordenador remoto:

`rsync -avr /path/to/local/directory user@remotepc.lan:/path/to/backup`
Sin embargo, ten cuidado, porque la inclusión de una "/" después del nombre del directorio con una barra inclinada tras el directorio realiza una copia de seguridad de contendido del directorio, no del directorio en sí:
 `rsync -avr /path/to/local/directory/ user@remotepc.lan:/path/to/backup`
Hasta ahora, esto es normal. Pero en la vida real, los detalles pueden ser llegar a ser complicados: cuando tus rutas contienen espacios o corchetes, debes poner comillas para que rsync funcione. ¡Pero solo un par de comillas en el sistema local no es suficiente! Ya que necesitas evitar que el intérprete de comandos BASH expanda estos caracteres dos veces, una vez en el sistema local y otra en el sistema remoto. Puede resultar muy molesto trabajar y tener como resultado constantes problemas si tienes prisa.

Pero hay una opción de la que casi nunca se habla: en lugar de usar rsync -avr, utiliza rsync -avrs para asegurarte de que rsync tenga en cuenta los caracteres especiales. Por lo tanto, cuando trabajes con archivos con nombres extraños, como archivos de audio o video, debe usar el parámetro -s de rsync para asegurarte de que sus nombres se mantengan intactos. Cuando descubrí esto, me sorprendió la cantidad de quebraderos de cabeza que me iba a evitar relacionados con los espacios en el sistema local y remoto.

Gráficos en el terminal

En esta última sección, usamos el script templogger.sh para registrar las temperaturas de nuestro sistema durante un tiempo, y cerrar la sesión y volver a iniciarla en el sistema mientras tanto. ¿No sería genial tener la opción de observar las temperaturas en tiempo real? Existe gnuplot, pero esto es demasiado complicado para una gráfica rápida y fácil. Me he vuelto aficionado a ttyplot, un reciente programa que aún no se ha incluido en las distribuciones. La página del proyecto está en GitHub.

Descarga la versión adecuada para tu sistema, en la mayoría de los casos será ttyplot-arm-linux:

$ wget https://github.com/tenox7/ttyplot/releases/download/1.1/ttyplot-arm-linux
$ sudo mv ttyplot-arm-linux /usr/local/bin/ttyplot
y ejecútala en paralelo con una tarea exigente desde una segunda sesión ssh (Ejemplo en XU4, modifícala para los sistemas que no son Exynos):
$ { while true; do echo `cat /sys/devices/virtual/thermal/thermal_zone0/temp`/1000 | 
bc; sleep 1; done } | ttyplot -t "XU4 CPU temp" -u "°C" -s 105
Para probar tu sistema, puede usar stress-ng de la distribución normal. El factor estresante de la matriz con 0 como modificador hará hincapié en los 8 núcleos de CPU con alta carga:
$ sleep 5; stress-ng --matrix 0 -t 1m --times
En mi sistema, la gráfica se ve así:

Figura 1 - ttyplot de temperatura XU4

Además, ejecuté como root, cpufreq que no se puede leer de otra forma.

$ { while true; do echo `cat /sys/devices/system/cpu/cpufreq/policy0/cpuinfo_cur_freq`/`cat 
/sys/devices/system/cpu/cpufreq/policy0/cpuinfo_max_freq`*100 | bc; sleep 1; done } | 
ttyplot -t "XU4 CPU freq [%max]" -u "%" -s 105
para asegurarme de que la frecuencia de la CPU no caiga por debajo del 100% de la frecuencia máxima:

Figura 2- ttyplot de frecuencia de la cpu XU4

Este es un ejemplo real; probar que mi XU4 con Cloudshell y modificado con un ventilador Noctua NF-A4x10 5V sea suficiente para mantener el sistema frro bajo alta carga de trabajo, incluso con el sistema de refrigeración estándar más pequeño.

Figura 3 - Cloudshell XU4 con sistema de refrigeración Noctua

Esta es una modificación que puedo recomendar a todos los propietarios de un XU4, ya que el ventilador estándar suena como una abeja enfadada dentro de una bolsa de papel. Un anticipo de la siguiente parte, continuaremos con la búsqueda de productividad y más líneas prácticas. ¿Habrá un final para esto? ¡Lo averiguaremos!

Referencias https://github.com/tenox7/ttyplot https://forum.odroid.com/viewtopic.php?f=52&t=22930

Conociendo un ODROIDian: Joshua Yang

Hola, mi nombre es Joshua Yang y mi nombre coreano es Yang Deokgyu. Vivo en Corea del Sur y trabajo para Hardkernel. Estoy especializado en ciencias de la computación, y me encantan las cosas TI, como teléfonos inteligentes, hardware de ordenadores, software y programación, especialmente las tecnologías más modernas. He montado mi propio sistema NAS usando CloudShell2 y he migrado a un ODROID-H2 con su potente CPU Intel. Tengo un blog en https://awesometic.tistory.com que versa sobre TI, programación y algunos consejos para NAS, Linux y OSX.

En Hardkernel, estoy a cargo del desarrollo de librerías y programas simples no solo para usuarios individuales, sino también para nuestra producción. Testeo muchas cosas relacionadas con las nuestras placas, incluidos nuestros accesorios. También estoy trabajando en las páginas de nuestra wiki donde puedes buscar información para usar nuestros productos y respondo a preguntas del foro.

Figura 1 - Parque Haneul, otoño de 2017 (que significa cielo en coreano). Por suerte este es uno de los mejores climas que he visto

Donde vives? Vivo en Suwon, en Corea del Sur, la ciudad donde nací y crecí. En realidad, el lugar donde vivo no está tan lejos del lugar donde nací. Suwon es una ciudad pequeña pero muy poblada que tiene bastantes monumentos históricos e edificios culturales. Puedes llegar a cualquier lugar con el adecuado sistema de transporte, así que, aunque hay muchas otras ciudades buenas en Corea, no hay razón para que me vaya.

¿Cuál es tu nivel de estudios? Me ha encantado la informática desde que estaba a punto de terminar la escuela primaria. Por aquel entonces, disfrutaba jugando con los juegos de ordenadores, especialmente juegos de carreras como Need for Speed. Pero mi ordenador no podía ejecutar este tipo de juegos por aquel entonces. Así que empecé a conocer el hardware de los ordenadores cuando tenía unos 10 años, y recuerdo que le pedí a mi padre que cambiara la tarjeta gráfica a una Geforce 4. También me interesaban los dispositivos TI como reproductores de MP3, reproductores multimedia portátiles (PMP) y auriculares. Compraba y vendía a menudo para tener siempre un nuevo dispositivo, especialmente la primera generación de iPods que no se habían lanzado en Corea. Todas estas experiencias me llevaron a especializarme en Ciencias de la Computación. Todavía sigo teniendo mucho interés en los dispositivos y software TI.

Mis padres trabajan y mi hermana mayor está estudiando enfermería. Mi familia tiene un cachorro Shih Tzu cuyo nombre es Dalbong. Todas las personas de mi familia a veces lo llaman Yang Dalbong para incluir el nombre de nuestra familia. Creo que es más fácil pronunciarlo.

¿Cómo empezaste con los ordenadores? Cuando era joven, solo usaba los ordenadores para los juegos y jugaba muchos a juegos online y offline. Cuando tenía 18 años, estudié con un tutor, que me enseñó cómo se desarrollan los programas informáticos, lo cual despertó mi interés en la programación informática. Compré un libro en lenguaje C, que fue uno de los más vendidos sobre programación informaática, y estudié hasta el capítulo más complicado en aquel momento, que era los punteros.

¿En qué tipo de proyectos trabajas en Hardkernel? Recientemente, desarrollé los códigos de ejemplos de ODROID-GO Arduino y la librería MicroPython, y cargué sus guías en nuestra wiki. También he desarrollado un plugin para WordPress con el objeto de que nuestros sitios web dispongan de un panel de administración más fácil de usar para nuestro departamento de administración. Actualmente estoy manteniendo la librería WiringPi, que nos ayuda a usar los periféricos GPIO más fácilmente en las placas ODROID.

¿Cómo usas tus ODROIDs personales? Estoy usando mi ODROID como NAS. Conseguí mi primer ODROID-XU4 hace aproximadamente 4 años. Funciona perfectamente para mi uso personal, por lo que escribí muchos artículos, guías y consejos sobre este dispositivo en mi blog. Lo he cambiado por un ODROID-H2, ya que el nuevo es un sistema x86-64 compatible con SATA 3 nativo, y también soporta el almacenamiento NVMe, que es extremadamente rápido. He montado mi NAS con algunas imágenes de Docker disponibles. Lleva funcionando aproximadamente 3 meses y es muy estable. El uso principal de mi NAS es para sincronizar mis proyectos personales, documentos y fotos, así como para transmitir videos a mis dispositivos.

Figura 2 - Atardecer en Draisine en Uiwang-si, que es el mejor momento del día

¿Cuál tu ODROID favorito y por qué? El ODROID-XU4 es mi favorito. A pesar de que han pasado algunos años desde que se publicó, sigo pensando que es uno de los mejores SBC con un precio bastante razonable. Recientemente me ha empezado a gustar ODROID-H2. Creo que H2 encaja perfectamente para un uso en forma de Mini-PC o NAS. No es demasiado caro, pero ofrece un rendimiento excepcional y un puerto E/S de lujo. Además, es muy silencioso y de bajo consumo.

¿Qué innovaciones te gustaría ver en futuros productos de Hardkernel? Me gustaría ver teléfonos inteligentes para desarrolladores, como un ODROID-A4. Pero a diferencia de los dispositivos de la serie A anterior, que no solo dispongan de funciones limitadas. Permitiría el uso de varias plataformas, como Android, Linux y Windows. Tendría muchos pines GPIO disponibles para que los usuarios puedan usar sus periféricos, con altavoces estéreo para escuchar contenido multimedia o jugar a juegos. Sería como una actualización del ODROID-GO.

Figura 3 - Un nuevo servidor H2 montado recientemente que funciona 24/7

¿Qué aficiones e intereses tienes aparte de los ordenadores? Me gusta ver películas y programas de televisión, escuchar música y cantar canciones. Además, me gusta andar buscando deliciosos restaurantes. Recientemente, fui a un restaurante vietnamita con mis amigos. Probé el Tom Yum Goong allí, y me sorprendió bastante ya que estaba más delicioso de lo que pensaba.

¿Qué consejo le darías a alguien que quiera aprender más sobre programación? Creo que es una buena idea empezar a aprender C o C++ en primer lugar. De hecho, hay mucha gente que no lo cree así actualmente. Pero yo recomiendo aprender C / C ++ primero, porque casi todos los demás lenguajes están influenciados por el lenguaje C. De modo que, si conoces C/C++, puedes aprender otro lenguaje con facilidad y luego saltar a tu plataforma favorita. Si te gusta Android, desarrolla una aplicación de Android con Kotlin. No te olvides de usar siempre proyectos de código abierto y contribuir con ellos algún día.