Fuzix en ZXDOS+
Publicado: 03 Jul 2021, 23:43
A raíz de estar trasteando con la última distribución para ZX-Uno (https://www.zxuno.com/forum/viewtopic.php?f=27&t=4142) y ver qué se podía aprovechar para el ZXDOS+/gomaDOS+, he encontrado la forma de hacer funcionar Fuzix. Copio y pego a continuación las instrucciones (también disponibles en la última versión del manual en GitHub: https://github.com/zxdos/zxuno/tree/master/doc).
Las siguientes instrucciones han sido probadas con el último código disponible en Junio de 2021 (https://github.com/EtchedPixels/FUZIX/t ... b875562dee).
Cómo compilarlo
Estas instrucciones han sido elaboradas usando una instalación limpia de Fedora Workstation Linux (Fedora 34). Aparte de los comandos relativos a la instalación de paquetes, el resto de pasos deberían servir también con muchas otras distribuciones de Linux.
Primero, instalar los paquetes necesarios, si no estuvieran ya:
Obtener la versión especial del compilador SDCC para Fuzix, e instalarla:
Obtener el código fuente de Fuzix:
Modificar el fichero Makefile y cambiar la línea que pone TARGET= para que sea TARGET=zxdiv. Compilar:
Cuando termine, obtener el fichero binario de esxdos y la imagen del kernel en estas rutas:
Construir el sistema de archivos raíz:
Obtener el archivo de imagen en esta ubicación:
Cómo utilizarlo
Hace falta que la tarjeta microSD tenga una tabla de particiones MBR. Se pueden configurar una o dos particiones primarias de la forma habitual (la primera de ellas con una instalación funcional de esxdos), dejando suficiente espacio libre al final para añadir una partición de 32MB (Tipo 7E) para el sistema de archivos raíz y otra partición de 4MB (Tipo 4E) para el espacio de intercambio (swap).
Volcar el contenido del sistema de archivos raíz en la partición 7E. Para ello, se puede usar la utilidad dd, incluida en Linux, MacOS, etc. (y también convertida para Windows).
Una vez determinado el nombre del dispositivo asociado a la partición 7E se debe usar esta como destino del fichero rootfs. Por ejemplo, para /dev/rdisks3:
Copiar el fichero FUZIX dentro del directorio BIN y copiar FUZIX.BIN al directorio raíz de la particion esxdos.
Al terminar, recordar detener el sistema usando el comando shutdown o el sistema de archivos raíz quedará marcado como no limpio, y esto forzará un comprobación del mismo en el próximo arranque de Fuzix.
Adjunto aquí los ficheros ya compilados (fuzix, fuzix.bin y rootfs) que yo he podido usar sin problemas.
Las siguientes instrucciones han sido probadas con el último código disponible en Junio de 2021 (https://github.com/EtchedPixels/FUZIX/t ... b875562dee).
Cómo compilarlo
Estas instrucciones han sido elaboradas usando una instalación limpia de Fedora Workstation Linux (Fedora 34). Aparte de los comandos relativos a la instalación de paquetes, el resto de pasos deberían servir también con muchas otras distribuciones de Linux.
Primero, instalar los paquetes necesarios, si no estuvieran ya:
Código: Seleccionar todo
sudo dnf groupinstall -y 'Development Tools'
sudo dnf install -y gcc-c++ automake boost-devel gputils flex texinfo bison byacc
Código: Seleccionar todo
git clone https://github.com/EtchedPixels/sdcc280.git
cd sdcc280
cd sdcc
./configure
make
sudo make install
cd ../..
Código: Seleccionar todo
git clone https://github.com/EtchedPixels/FUZIX.git
cd FUZIX
Código: Seleccionar todo
sudo make
Código: Seleccionar todo
./Kernel/platform-zxdiv/FUZIX
./Kernel/platform-zxdiv/FUZIX.BIN
Código: Seleccionar todo
cd ./Standalone/filesystem-src
./build-filesystem rootfs 256 65535
cd ../..
Código: Seleccionar todo
./build-filesystem/rootfs
Hace falta que la tarjeta microSD tenga una tabla de particiones MBR. Se pueden configurar una o dos particiones primarias de la forma habitual (la primera de ellas con una instalación funcional de esxdos), dejando suficiente espacio libre al final para añadir una partición de 32MB (Tipo 7E) para el sistema de archivos raíz y otra partición de 4MB (Tipo 4E) para el espacio de intercambio (swap).
Volcar el contenido del sistema de archivos raíz en la partición 7E. Para ello, se puede usar la utilidad dd, incluida en Linux, MacOS, etc. (y también convertida para Windows).
Una vez determinado el nombre del dispositivo asociado a la partición 7E se debe usar esta como destino del fichero rootfs. Por ejemplo, para /dev/rdisks3:
Código: Seleccionar todo
sudo dd if=rootfs of=/dev/rdisks3
- Iniciar un core de Spectrum con una ROM de 128K y con esxdos, escribir .fuzix, y pulsar Enter (la configuración del teclado en la BIOS debería ser con una disposición en inglés, o no será posible teclear algunos caracteres, como |).
- Al cabo de unos pocos segundos, el sistema debería detectar la tarjeta microSD y encontrar las particiones. En este ejemplo, la raíz está en la tercera partición de SD 0.
- Escribir el identificador de la partición raiz (por ejemplo, hd3) y pulsar Enter.
- Definir la fecha (pulsar Enter) y la hora (pulsar Enter).
- Iniciar sesión con el usuario root y sin contraseña.
Al terminar, recordar detener el sistema usando el comando shutdown o el sistema de archivos raíz quedará marcado como no limpio, y esto forzará un comprobación del mismo en el próximo arranque de Fuzix.
Adjunto aquí los ficheros ya compilados (fuzix, fuzix.bin y rootfs) que yo he podido usar sin problemas.