Re: 2018 - Configurar KOS 2.0 Toolchain en Windows 10 + Terminal de Ubuntu
Buenas a todos,
Recientemente me he puesto a intentar compilar KOS en mi máquina de Windows 10, aprovechando que hace unos pocos meses, Windows sacó en su catálogo de aplicaciones el Terminal de ubuntu, que nos permite ejecutar cualquier tipo de comando de una máquina real de Linux/Ubuntu en Windows.
Esto lo que nos permite es [b]tener en nuestro S.O Windows 10, a parte de nuestra típica consola de comandos (cmd), un terminal de Linux en el que podemos ejecutar comandos del mismo sin necesidad de estar instalando Cygwin, MinGW o hacerlo en un sistema Linux si no lo deseamos así[/b]
Al final después de unos pocos intentos y a fecha del [b]26/04/2018[/b], como me interesa de cara al futuro desarrollar con KOS o por lo menos intentarlo, he conseguido compilar el KOS a la perfección con la última versión del mismo, así que, para quien le interese [b]paso a explicar todo el proceso en base a [url=http://www.dreamcast.es/forum/viewthread.php?thread_id=442]las explicaciones de Indiket y Guaripolo[/url][/b] que son quienes iniciaron estos post y a los que tengo que darles las gracias.
[b]RESUMEN[/b]
La idea es la de compilar KOS en ena máquina Windows 10, pero teniendo acceso a todos los comandos de un terminal de Linux. La idea de usar un terminar de linux es porque la compilación y distribución de desarrollo KOS, se realiza muchísimo a la mejor bajo un sistema Linux que en uno Windows, ya que, en sí, directamente no existe para Win.
Indicar que[b] Toolchain es simplemente un conjunto de herramientas preparadas para compilar KOS de manera "sencilla"[/b]. He estado buscando una definición de qué es concretamente el Toolchain de Dreamcast pero no la he encontrado. A pesar de ello, por el contenido del directorio y los procesos que realiza, es simplemente eso, [b]un paquete preparado para compilar KOS en Linux[/b]
[center][url=https://postimg.cc/image/5n25jons7/][img]https://s31.postimg.cc/5n25jons7/ubuntu-win10-kos.png[/img][/url][/center]
[b]NECESARIOS[/b]
- Un ordenador con Windows 10 con la última o penúltima actualización.
- Instalar el [url=https://www.microsoft.com/store/productId/9NBLGGH4MSV6]terminal de Ubuntu[/url] para Windows 10 desde la tienda
- Compilar Toolchain
[b]PASOS A REALIZAR[/b]
Los pasos a realizar intentaré explicarlos lo máximo posible para que en todo momento, sepas que es lo que estás haciendo y porqué. Si no eres un usuario habitual de Linux, te aconsejo que te veas algún tipo de manual de [url=https://hipertextual.com/archivo/2014/04/comandos-basicos-terminal/]comandos básicos para el terminal[/url].
[b]1. Instalar terminal de Ubuntu en Windows 10[/b]
Este paso realmente no tiene complejidad, al final se basa en ir a la tienda de Windows 10 y buscar terminal de ubuntu, pero voy a explicar exactamente que hace esto en nuestro equipo. Lo que instalaremos será un subsistema de Linux en Windows, lo que como comentaba anteriormente, nos permitirá no solo lanzar comandos linux, si no tener un arbol de directorio en nuestro equipo semejante al de muchas distribuciones Debian de Linux, en este caso, Ubuntu.
[b]Antes de abrir el terminal de Ubuntu[/b], debemos realizar una instalación previa de un componente de Windows 10 llamado [b]Subsistema de Windows para Linux[/b]. Para ello, debemos acceder a:
[b][color=#0000cc]Pandel de Control > Programas > Programas y Características > Activar o Desactivar características de Windows[/color][/b]
En la ventana que se nos mostrará, desplazate hasta que encuentres [b]Subsistema de Windows para Linux[/b]. Marcalo y da a aceptar. Nos pedirá reinicio de máquina que debemos ejecutar.
[url=https://postimg.cc/image/rpsqcj6rb/][img]https://s31.postimg.cc/rpsqcj6rb/image.png[/img][/url]
[b]2. Abrir el terminal de Ubuntu[/b]
Una vez reiniciemos el equipo, ya podemos proceder a abrir el terminal de Ubuntu
[url=https://postimg.cc/image/uwn9vue93/][img]https://s31.postimg.cc/uwn9vue93/image.png[/img][/url]
Al abrirlo no te apures, estará unos minutos creando el subsistema en tu equipo y dependerá de lo rápido que sea tu PC. Al final este proceso lo que hace es instalar elementos relacionados con Linux y un árbol de directorio Linux que normalmente se aloja en [b]C: \Users\<nombre_usuario>\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs\[/b]
A demás, estaros pendientes porque el terminal os pedirá [b]un nombre de usuario para el sistema y una contraseña[/b]. Finalmente, creará dentro de \home\ una carpeta con tu nombre de usuario, donde comenzaremos a trabajar..pero no será la única carpeta con la que tocaremos.
[b]2.1. Instalación de componentes extra[/b]
Es posible, que la instalación del terminal tenga todas las [url=http://www.dreamcast.es/forum/viewthread.php?thread_id=877#post_6250] librerías necesarias [/url]para la compilación de KOS. Por defecto, hay una que es necesaria y no está instalada que es la [b]texinfo[/b]. Para instalarla, en nuestro terminal, ejecutamos lo siguiente:
[code]
sudo apt-get install texinfo
sudo apt-get install libjpeg-turbo8-dev
sudo apt-get install libpng-dev
[/code]
[b]3. Configurar directorios[/b]
La compilación va a trabajar con varios directorios concretos, que debemos configurar previamente. En este caso trabajaremos con los comandos de linux [b][color=#0000ff]mkdir, sudo, cd, chmod, chown y ls[/color] [i](para ver información detallada de los mismos..google es tu amigo)[/i][/b]
[b]3.1. Directorio de desarrollo:[/b]
Una vez abierto el terminal, se abrirá por defecto en el directorio [b]\home\<nombre_usuario>\[/b]. Nuestro fin es crear una carpeta llamada dreamcast dentro de nuestra carpeta personal. El directorio podría ser otro, pero para seguir la regla del tutorial de Guaripolo, lo dejamos así. Para ello ejecutamos lo siguiente:
[code]mkdir dreamcast[/code]
Una vez creada la carpeta, nos desplazamos al directorio /usr/local, que está en la raíz de nuestro árbol de directorios de Linux. Para ello lanzamos el suiguiente comando:
[code]cd /usr/local [/code]
Accedemos a este directorio porque,[b] la compilación de KOS, va a alojar en 2 directorios que deben existir previamente, un conjunto de ficheros y librerías necesarias[/b]. Dichos directorios son:
[b]- sh-elf
- arm-eabi[/b]
Así que procedemos a lo siguiente.
Primero, creamos el directorio [b]dc[/b] dentro de el directorio llamado [b]local[/b]
[code]mkdir dc[/code]
Asignamos permisos a los directorios (importante)
[code]
sudo chmod 775 cd
sudo chown <nombre_usuario>:<nombre_usuario> dc
[/code]
Ahora, dentro de dc, crearemos el los dos directorios indicados previamente:
[code]
mkdir sh-elf
mkdir arm-eabi
[/code]
Asignamos permisos a los directorios (importante)
[code]
sudo chmod 777 sh-elf
sudo chown <nombre_usuario>:<nombre_usuario> sh-elf
sudo chmod 777 arm-eabi
sudo chown <nombre_usuario>:<nombre_usuario> arm-eabi
[/code]
Ahora, debemos volver a crear dentro de estos directorios, otros sub-directorios para terminar de crear la estructura. Para cada carpeta (sh-elf y arm-eabi) deben existir esta estructura
[code]
/usr/local/dc/sh-elf/sh-elf/include/sys
/usr/local/dc/arm-eabi/arm-eabi/include/sys
[/code]
[b]4. Descarga del KOS y KOS-PORTS[/b]
Regresamos a la carpeta /home/<nombre_usuario>/dreamcast y escribimos en el terminal los siguientes comandos (de uno en uno) que descargarán del repositorio de git las últimas versiones de cada distribución.
[code]
git clone git://git.code.sf.net/p/cadcdev/kallistios kos
git clone git://git.code.sf.net/p/cadcdev/kos-ports kos-ports
[/code]
Una vez descargado, accedemos al directorio /home/<nombre_usuario>/dreamcast/kos/utils/dc-chain
Estando en este directorio, ejecutamos los siguientes comandos:
a. Descarga
[code]sh -e download.sh[/code]
b. Descompresión de ficheros
[code]sh -e unpack.sh[/code]
[b]5. Modificacion Makefile[/b]
Una vez terminen estos dos procesos, toca modificar el fichero [b]Makefile[/b] del mismo directorio (lo podeis hacer con cualquier editor de texto, yo lo hice en el terminal con [i]nano[/i] (nano Makefile). Lo modificamos con las siguientes opciones:
[code]
sh_target=sh-elf
arm_target=arm-eabi
sh_prefix := /usr/local/dc/$(sh_target)
arm_prefix := /usr/local/dc/$(arm_target)
# kos_root: KOS Git root (contains kos/ and kos-ports/)
kos_root=/home/<nombre_usuario>/dreamcast
# kos_base: equivalent of KOS_BASE (contains include/ and kernel/)
kos_base=/home/<nombre_usuario>/dreamcast/kos
binutils_ver=2.27
gcc_ver=4.7.3
newlib_ver=2.0.0
gdb_ver=7.11.1
insight_ver=6.8-1
[/code]
En principio, mientras la versión no cambie, las variables [b]binutils_ver, gcc_ver, newlib_ver, gdb_ver y insight_ver[/b] no hace falta cambiarlas. Yo las dejé con las que estaban por defecto.
[b]6. Compilación[/b]
Ya una vez preparado esto, ya solo toca compilar.[b] Para ello y muy importante, hay que ejecutar el make cómo super usuario (sudo)[/b]. Para ello, estando en el directorio [b]/home/<nombre_usuario>/dreamcast/kos/utils/dc-chain[/b] ejecutamos el siguiente comando:
[code]sudo make[/code]
Así comenzará la compilación con permisos de administrador (harán falta, ya que es posible que al ejecutar todo con tu usuario, la compilación no tenga permisos para crear cietos directorios y de un error).
Si todo sale bien, no verás ningún error en la consola. Espera un buen rato porque la compilación va para largo y no desesperes.
Si quieres echar todo atrás porque da algún error, lo mejor es ejecutar del directorio dc-chain el script [b]cleanup[/b], que borrará todo el contenido. Podéis tambiar ejecutar los pasos que indica Guaripolo en su post, aunque a mi personalmente me funcionaron a medias y lo que hice fue empezar todo desde cero en cada proceso que me daba error, mientras resolvía esos errores.
[code]sh -e cleanup.sh[/code]
Y listo, ya tenéis KOS compilado y listo para comenzar a desarrollar vuestros juegos :-D
[b]Ahora queda configurar el directorio propio de KOS, para posteriormente poder compilar nuestro código, por lo que haré una segunda parte de este tutorial justo aquí[/b]
[b]Espero no haberme equivocado en ningún paso concreto, si es así, que los Masters me corrijan por favor :-)[/b]
Saludos!