Página 1 de 1
 
 

Mensaje Compilar KOS En Windows 10 + Terminal De Ubuntu

#1  KeiDash 30 Abril 2018, 09:12 AM

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 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í

Al final después de unos pocos intentos y a fecha del 26/04/2018, 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 paso a explicar todo el proceso en base a las explicaciones de Indiket y Guaripolo que son quienes iniciaron estos post y a los que tengo que darles las gracias.

RESUMEN
La idea es la de compilar KOS en una 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 Toolchain es simplemente un conjunto de herramientas preparadas para compilar KOS de manera "sencilla". 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, un paquete preparado para compilar KOS en Linux

ubuntu-win10-kos


NECESARIOS
- Un ordenador con Windows 10 con la última o penúltima actualización.
- Instalar el terminal de Ubuntu para Windows 10 desde la tienda
- Compilar Toolchain

PASOS A REALIZAR
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 comandos básicos para el terminal.

1. Instalar terminal de Ubuntu en Windows 10
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.

Antes de abrir el terminal de Ubuntu, debemos realizar una instalación previa de un componente de Windows 10 llamado Subsistema de Windows para Linux. Para ello, debemos acceder a:

Pandel de Control > Programas > Programas y Características > Activar o Desactivar características de Windows

En la ventana que se nos mostrará, desplazate hasta que encuentres Subsistema de Windows para Linux. Marcalo y da a aceptar. Nos pedirá reinicio de máquina que debemos ejecutar.

image

2. Abrir el terminal de Ubuntu
Una vez reiniciemos el equipo, ya podemos proceder a abrir el terminal de Ubuntu
image

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 C: \Users\<nombre_usuario>\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs\

A demás, estaros pendientes porque el terminal os pedirá un nombre de usuario para el sistema y una contraseña. 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.

2.1. Instalación de componentes extra
Es posible, que la instalación del terminal tenga todas las librerías necesarias para la compilación de KOS. Por defecto, hay una que es necesaria y no está instalada que es la texinfo. Para instalarla, en nuestro terminal, ejecutamos lo siguiente:
Código: [Descargar] [Ocultar]
  1. sudo apt-get install make 
  2. sudo apt-get install texinfo 
  3. sudo apt-get install libjpeg-turbo8-dev 
  4. sudo apt-get install libpng-dev 
  5.  


3. Configurar directorios
La compilación va a trabajar con varios directorios concretos, que debemos configurar previamente. En este caso trabajaremos con los comandos de linux mkdir, sudo, cd, chmod, chown y ls (para ver información detallada de los mismos..google es tu amigo)

3.1.  Directorio de desarrollo:
   Una vez abierto el terminal, se abrirá por defecto en el directorio \home\<nombre_usuario>\. 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:
Código: [Descargar] [Ocultar]
  1. mkdir dreamcast 


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:
Código: [Descargar] [Ocultar]
  1. cd /usr/local  


Accedemos a este directorio porque, la compilación de KOS, va a alojar una estructura de directorios que deben existir previamente, un conjunto de ficheros y librerías necesarias. Dicha estructura es la siguiente:

kos_usr_dir


Así que procedemos a lo siguiente.

Primero, creamos el directorio dc dentro de el directorio llamado local

Código: [Descargar] [Ocultar]
  1. sudo mkdir /usr/local/dc 
  2. sudo mkdir /usr/local/dc/sh-elf 
  3. sudo mkdir /usr/local/dc/sh-elf/sh-elf/includes 
  4. sudo mkdir /usr/local/dc/sh-elf/sh-elf/includes/sys 
  5. sudo mkdir /usr/local/dc/arm-eabi 
  6. sudo mkdir /usr/local/dc/arm-eabi/arm-eabi 
  7. sudo mkdir /usr/local/dc/arm-eabi/arm-eabi/includes 
  8. sudo mkdir /usr/local/dc/arm-eabi/arm-eabi/includes/sys 
  9.  


Asignamos permisos a los directorios a todos los directorios de la siguiente manera (importante)
Código: [Descargar] [Ocultar]
  1. sudo chmod 777 -R dc 
  2. sudo chown -R <nombre_usuario>:<nombre_usuario> dc 
  3.  


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


4. Descarga del KOS y KOS-PORTS
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.

Código: [Descargar] [Ocultar]
  1. git clone git://git.code.sf.net/p/cadcdev/kallistios kos 
  2. git clone git://git.code.sf.net/p/cadcdev/kos-ports kos-ports 
  3.  


Una vez descargado, accedemos al directorio /home/<nombre_usuario>/dreamcast/kos/utils/dc-chain

Estando en este directorio, ejecutamos los siguientes comandos:
a. Descarga
Código: [Descargar] [Ocultar]
  1. sh -e download.sh 

b. Descompresión de ficheros
Código: [Descargar] [Ocultar]
  1. sh -e unpack.sh 


5. Modificacion Makefile
Una vez terminen estos dos procesos, toca modificar el fichero Makefile del mismo directorio (lo podeis hacer con cualquier editor de texto, yo lo hice en el terminal con nano (nano Makefile). Lo modificamos con las siguientes opciones:
Código: [Descargar] [Ocultar]
  1. sh_target=sh-elf 
  2. arm_target=arm-eabi 
  3. sh_prefix  := /usr/local/dc/$(sh_target) 
  4. arm_prefix := /usr/local/dc/$(arm_target) 
  5. # kos_root: KOS Git root (contains kos/ and kos-ports/) 
  6. kos_root=/home/<nombre_usuario>/dreamcast 
  7. # kos_base: equivalent of KOS_BASE (contains include/ and kernel/) 
  8. kos_base=/home/<nombre_usuario>/dreamcast/kos 
  9. binutils_ver=2.27 
  10. gcc_ver=4.7.3 
  11. newlib_ver=2.0.0 
  12. gdb_ver=7.11.1 
  13. insight_ver=6.8-1 
  14.  


En principio, mientras la versión no cambie, las variables binutils_ver, gcc_ver, newlib_ver, gdb_ver y insight_ver no hace falta cambiarlas. Yo las dejé con las que estaban por defecto.

6. Compilación
Ya una vez preparado esto, ya solo toca compilar. Para ello y muy importante, hay que ejecutar el make cómo super usuario (sudo). Para ello, estando en el directorio /home/<nombre_usuario>/dreamcast/kos/utils/dc-chain ejecutamos el siguiente comando:

Código: [Descargar] [Ocultar]
  1. sudo make 


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 cleanup, 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.

Código: [Descargar] [Ocultar]
  1. sh -e cleanup.sh 


Y listo, ya tenéis KOS compilado y listo para comenzar a desarrollar vuestros juegos :-D

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í

Espero no haberme equivocado en ningún paso concreto, si es así, que los Masters me corrijan por favor :-)

Saludos!
 



 
avatar
scotland.png KeiDash Sexo: Masculino
AMelian
Segata Sanshirō
Segata Sanshirō
 
Registrado: Julio 2007
Ubicación: Atlántida
Mensajes: 407
  • Volver arriba Página inferior
 

Mensaje Re: Compilar KOS En Windows 10 + Terminal De Ubuntu

#2  Ryo Suzuki 30 Abril 2018, 11:28 AM

Estupendo. Gracias por el tutorial!

La verdad es que lo conseguí hacer en Windows 10 pero con el uso del Cygwin y todo el rollo ese. Así como lo planteas parece mucho más fácil y cómodo.

Lo probaré seguro con tu método, a ver qué tal...

Ahora puedes tratar de meterle el SDL de Chui:

http://chui.dcemu.co.uk/sdl.html

Aunque creo que te tendrán que ayudar, ya que a mí no me funcionaba. Creo que Bluecrab tocó algo del KOS y ahora hay que modificar algo manualmente para que pueda funcionar conjuntamente con SDL 1.2.

Indiket es nuestro amigo si pasa algo raro
 




____________
Ayúdame a mantener este y otros proyectos, pulsa aquí

sega_firma

Choose a job you love, and you will never have to work a day in your life. (Confucius)
 
avatar
japan.png Ryo Suzuki Sexo: Masculino
Alfonso Martínez González
Webmaster
Webmaster
Shenmue Freak
 
Registrado: Agosto 2005
Ubicación: 難波
Mensajes: 10758
  • Volver arriba Página inferior
 

Mensaje Re: Compilar KOS En Windows 10 + Terminal De Ubuntu

#3  pachoman 15 May 2018, 11:36 AM

Saludos, soy nuevo en esto de programar y más para la Dreamcast.

¿Qué viabilidad le ven ustedes a esta forma de usar KOS y Debian Jessie dentro de un container de docker...

https://github.com/Nold360/docker-kallistios-sdk

https://hub.docker.com/r/nold360/kallistios-sdk/

¿Es más complicada o tiene futuro? Yo la estoy intentando probar.

Gracias.
 



 
avatar
 pachoman Sexo: Masculino
Recien llegado
Recien llegado
 
Registrado: Octobre 2009
Mensajes: 7
  • Volver arriba Página inferior
 

Mensaje Re: Compilar KOS En Windows 10 + Terminal De Ubuntu

#4  KeiDash 16 May 2018, 09:15 AM

Hola pachoman

Yo sinceramente no tengo una respuesta a tu pregunta, nunca he usado estos Dockers en Debian. Parece un buen empaquetado la verdad, dispone de todas las herramientas preparadas por lo que leo y eso es bueno.

¿Cuál es la diferencia entre prepararlo tu todo o hacerlo con este docker?...Entiendo que la personalización.

Viendo lo que cuesta prepararte tu mismo el entorno (porque tiene miga) quizás un docker sea una buena vía de escapeta.

En cuanto a si es más complicado o no, entiendo que te refieres a su instalación. Por lo que entiendo, es mucho más sencillo usar el docker, estoy por probarlo yo mismo..
 



 
avatar
scotland.png KeiDash Sexo: Masculino
AMelian
Segata Sanshirō
Segata Sanshirō
 
Registrado: Julio 2007
Ubicación: Atlántida
Mensajes: 407
  • Volver arriba Página inferior
 

Mensaje Re: Compilar KOS En Windows 10 + Terminal De Ubuntu

#5  pachoman 16 May 2018, 04:00 PM

Hola KeiDash,

Probé a compilar este megaman del mismo creador del contenedor y la imagen cdi me funciona en el emulador lxdream.
Me falta probar en la dreamcast mediante SDloader porque CDs no tengo.
 



 
avatar
 pachoman Sexo: Masculino
Recien llegado
Recien llegado
 
Registrado: Octobre 2009
Mensajes: 7
  • Volver arriba Página inferior
 

Mensaje Re: Compilar KOS En Windows 10 + Terminal De Ubuntu

#6  KeiDash 16 May 2018, 05:46 PM

pachoman escribió: [Ver mensaje]
Hola KeiDash,

Probé a compilar este megaman del mismo creador del contenedor y la imagen cdi me funciona en el emulador lxdream.
Me falta probar en la dreamcast mediante SDloader porque CDs no tengo.


Hola de nuevo,

Acabo de probar el Docket este que me comentas y he de decir que va perfecto, acabo de compilar todos los proyectos de ejemplo de KOS y funciona a la perfección, así que sin duda creo que esto es mucho menos "lio" que estar montandolo todo desde 0, por tema de librerias, compatibilidades, etc.

A demás, con el dcbuild lanzas comandos de compilación al instante y te genera todo el resultado genial.

Acabo de compilar yo también ese ejemplo de Sonic/Megaman y funciona la perfección. Te tengo que dar las gracias porque ni conocía esto.. Para mi lo bueno de todo esto es que ya está todo preparado y incluso con el VSCode como ide, puedo lanzar los builds desde su consola

 image_3_1526487214_640184
 



 
avatar
scotland.png KeiDash Sexo: Masculino
AMelian
Segata Sanshirō
Segata Sanshirō
 
Registrado: Julio 2007
Ubicación: Atlántida
Mensajes: 407
  • Volver arriba Página inferior
 

Mensaje Re: Compilar KOS En Windows 10 + Terminal De Ubuntu

#7  pachoman 17 May 2018, 12:02 PM

Hola KeiDash,

Me alegro mucho que te haya servido. Lo de los docker es un gran invento, yo todavía tengo una imagen de Virtualbox con Debian Jessie con KOS configurado, pero creo que va a quedar en el olvido.
 



 
avatar
 pachoman Sexo: Masculino
Recien llegado
Recien llegado
 
Registrado: Octobre 2009
Mensajes: 7
  • Volver arriba Página inferior
 

Mensaje Re: Compilar KOS En Windows 10 + Terminal De Ubuntu

#8  KeiDash 23 May 2018, 10:03 AM

pachoman escribió: [Ver mensaje]
Hola KeiDash,

Me alegro mucho que te haya servido. Lo de los docker es un gran invento, yo todavía tengo una imagen de Virtualbox con Debian Jessie con KOS configurado, pero creo que va a quedar en el olvido.


En el olvido por?
 



 
avatar
scotland.png KeiDash Sexo: Masculino
AMelian
Segata Sanshirō
Segata Sanshirō
 
Registrado: Julio 2007
Ubicación: Atlántida
Mensajes: 407
  • Volver arriba Página inferior
 

Mensaje Re: Compilar KOS En Windows 10 + Terminal De Ubuntu

#9  pachoman 25 May 2018, 01:22 PM

KeiDash escribió: [Ver mensaje]
pachoman escribió: [Ver mensaje]
Hola KeiDash,

Me alegro mucho que te haya servido. Lo de los docker es un gran invento, yo todavía tengo una imagen de Virtualbox con Debian Jessie con KOS configurado, pero creo que va a quedar en el olvido.


En el olvido por?


Porque con el docker de KOS en el ordenador no me hace falta la maquina virtual de Debian Jessie. Es más rápido y más cómodo.
 



 
avatar
 pachoman Sexo: Masculino
Recien llegado
Recien llegado
 
Registrado: Octobre 2009
Mensajes: 7
  • Volver arriba Página inferior
 

Mensaje Re: Compilar KOS En Windows 10 + Terminal De Ubuntu

#10  KeiDash 25 May 2018, 02:11 PM

Ah vale no te había entendido. Si claro en ese caso mucho mejor, teniéndolo en máquina real no hace falta para nada una vm.
 



 
avatar
scotland.png KeiDash Sexo: Masculino
AMelian
Segata Sanshirō
Segata Sanshirō
 
Registrado: Julio 2007
Ubicación: Atlántida
Mensajes: 407
  • Volver arriba Página inferior
 


Ocultar¿Este tema fue útil?
Compartir este tema
Correo a un amigo Facebook Twitter Windows Live Favorites MySpace del.icio.us Digg SlashDot google.com LinkedIn StumbleUpon Blogmarks Diigo reddit.com Blinklist co.mments.com
technorati.com DIGG ITA linkagogo.com meneame.net netscape.com newsvine.com yahoo.com Fai Informazione Ok Notizie Segnalo Bookmark IT fark.com feedmelinks.com spurl.net

Página 1 de 1