Guia de Linux DC

-Guia de Linux en Dreamcast para principiantes

Adaptación por Guybrush
Basada en "Linux on Dreamcast: A Beginners Guide", de Adrian O´Grady.


-¿Qué es Linux DC?:

LINUX es un sistema operativo de 32 bits, basado y totalmente compatible con UNIX, probablemente la mejor familia de Sistemas Operativos que existen. LINUX fue creado inicialmente por Linus Torvalds, a partir de UNIX. Lo llamó "Unix para el 386" y pronto miles de programadores se interesarian por su idea y empezarían a colaborar en la creación de este Sistema Operativo. Linux es el núcleo (kernel) del Sistema, que al unirlo con el proyecto GNU de Richard Stallman formó lo que hoy conocemos como GNU/Linux, conocido como Linux a secas por mayor comodidad (aunque linux repito es el nombre del kernel). Se cambió radicalmente un aspecto con respecto UNIX: era un sistema operativo libre (GNU). LINUX tenía el código totalmente abierto (programado en C) y cada usuario podría modificar el Sistema Operativo de acuerdo a sus necesidades. Bajo este tipo de licencia eran lanzados los programas también: todo programa tenía su código fuente disponible al público, para que cada uno lo modificara si lo creía necesario.

En contra de lo que alguien pueda pensar, LINUX se ha convertido en el Sistema Operativo por excelencia para el usuario de nivel alto y medio, y no tiene nada que envidiar a otras soluciones de la competencia. Es un sistema operativo MULTIUSUARIO de 32 bits, con un sistema de archivos mucho más eficiente de lo que nos tienen acostumbrados los sistemas monousuario de la competencia: el EXT2 que permite un altísimo aprovechamiento de la capacidad de disco y un indice 0 de fragmentación (no hay fragmentación). Hay que añadir que se trata de un sistema con concurrencia de procesos muy eficiente, lo que junto a su capacidad de trabajar con varios procesadores a la vez definen el concepto de "Multitarea".


-¿Porque existe una version para Dreamcast?:

Muy simple. Es un clon de UNIX que se caracteriza por ser un sistema PORTABLE, que significa que modificando minimamente el código puede ser compilado para ser usado por otro tipo de procesador, lo que hace que tengamos versiones de UNIX en PC, en Workstations, en MAC... toda clase de miniordenadores. LINUX también tiene esta caracteristica, y ha sido compilado para un tipo un tanto "especial" de miniordenador: la consola Sega Dreamcast.


-Requerimientos:

El unico requerimiento 100% necesario es un TECLADO. Sin él no podrás escribir y por tanto no podrás hacer login (entrar al sistema) con lo cual no podrás usar LINUX DC.

Se hace aconsejable que tengas un RATON para las X-WINDOWS, y si tienes un VGA BOX mejor que mejor (con la TV es posible que se te coma parte de la pantalla, con lo que puedes perder parte de la linea de comandos, bien por abajo o por la izquierda). Los mandos corrientes de DC se pueden usar para jugar con PRBOOM y XMAME.


-Arrancando LINUX:

Pon tu LINUX DC en la dreamcast y enciende (suponiendo que te hayas bajado una imagen AUTOBOOT). Si te la has compilado tu mismo (para poner roms, o algo similar) y NO has hecho el disco AUTOBOOT, carga el boot cd de Utopia y despues cambia el disco por el de LINUX DC.

Tras unos segundos aparecerá una imagen azul y después empezará el proceso de carga de demonios y los checkeos del sistema. Cuando el proceso de carga haya finalizado, el shell del sistema nos pedirá que introduzcamos nuestro nombre de usuario:

Debian GNU/Linux testing/unestable dreamcast tty1

dreamcast login:

Una vez visto esto pondremos "root" (*) y pulsamos enter para hacer LOGIN. Despues de el mensaje de vienvenida (/etc/motd) se te presentará el PROMPT del sistema:

dreamcast:~#

Bienvenido al maravilloso mundo de Linux :)

(*) El "root" es el superusuario del Sistema, tiene UID 0 (todos los privilegios). Es el encargado de crear nuevos usuarios, administrar sus permisos y crear grupos, entre otras cosas. En ESTA VERSION para DC solo hay 1 usuario: el "root", y además NO TIENE CLAVE, porque en este caso no es necesario Esto no es lo normal En un sistema UNIX/LINUX funcionando en un ordenador. Normalmente es totalmente indispensable que el superusuario tenga un password que nadie conozca y además este debe ser cambiado con regularidad, debe ser alfanumerico y que preferiblemente no se encuentre en ningún diccionario (por motivos de seguridad).


-Consideraciones a tener en cuenta:

1) Nuestro teclado es español (se supone) pero LINUX viene con el teclado configurado en inglés. Así que algunas teclas no estarán donde aparecen representadas. Puedes poner cualquier caracter si conoces su código ASCII, pulsando ALT + ASCII. Por ejemplo, para poner el símbolo ~ debemos pulsar ALT + 126 (126 es el códgo ASCII del carácter ~)

2) Los directorios se separan con barras, no contrabarras. Aunque no lo parezca todos los SO´s trabajan así, solo Microsoft introdujo la contrabarra \ para separar directorios, para utilizar la barra / al añadir modificadores a los comandos.

3) Linux es "case sensitive", es decir, distingue mayúsculas y minúsculas. No es lo mismo el archivo "cosas.doc", que "COSAS.DOC" o "Cosas.doc". Lo mismo sucede con los comandos, que hay que escribir en minúsculas.

4) Los comandos y programas tienen una entrada estándar y una salida estándar. Podemos cambiar esto mediante los redirecionamientos (>, <, >>, << ). Por ejemplo, la salida estándar del comando ls será la pantalla. Podemos hacer que en lugar de mostrarlo por pantalla lo guarde en un fichero:

ls -lagF > fichero

O podemos hacer que, si existía el fichero, añada los datos a continuación, sin borrar lo que había:

ls -lagF >> fichero

Son solo dos ejemplos, el que quiera más información que la busque. No acabaría si me pusiera a hablar de los redirecionamientos ;)

5) Se puede usar la SALIDA de un programa como ENTRADA de otro. Para esto usamos las tuberías | :

ls | sort

La salida de ls (listado de archivos) la recibe como entrada sort, quien recibe la lista de archivos y los ordena, y luego los muestra por la salida estándar de sort: la pantalla.


-Unos cuantos comandos simples:

No voy a explayarme demasiado sobre estos comandos, teneis multitud de informacion sobre como funciona LINUX en internet. No obstante, aquí van algunos comandos:

Nota: el comando MAN no está en esta version. Este comando, nos muestra como se usa cualquier comando del sistema.

pwd: Te enseña en el directorio en que estás posicionado (directorio activo).

cd directorio: cambia al directorio especificado. Recordemos que en LINUX la se utiliza la barra / para separar directorios, no la contrabarra \como en los sistemas Microsoft.

ls: nos muestra los archivos y directorios del directorio actual. Es el equivalente al comando DIR de MS-DOS. Podemos poner detrás una ruta de directorio para que haga el ls alli en lugar de en el directorio activo. Con ls -l haremos un listado largo (veremos todos los datos), y con ls -a veremos también los archivos ocultos. Nota: podemos encadenar varios modificadores: ls -alFg

mkdir: Igual que en MS-DOS, crea un directorio.

rmdir: Borra un directorio. Debe estar vacio.

more archivo: Nos muestra, paginado, el contenido de un archivo.

startx: Inicia el entorno de ventanas X-WINDOWS.

xdm: Igual que startx pero pidiendo, además, LOGIN.

df: Enseña cuanto espacio de disco está usado.

which comando: Te dice exactamente que ejecutable está asociado a un comando

shutdown -h now: Apaga el sistema. No es necesario en este LINUX puesto que no tenemos disco duro, la unidad está emulada en RAM y por tanto es volatil y no causará daños en archivos al apagar (directamente se destruirán).

cat: Concatenar. Recibe texto y lo manda a la salida estándar. Podemos usarlo para escribir en un fichero (cat > fichero), o para leer lo que contiene, por ejemplo (cat fichero).

who: muestra los usuarios que hay utilizando el sistema. En este caso solo puedes estar tu.

vi: programa editor de texto muy potente, aunque un poco complicado de usar para novatos. Si escribimos código C nos coloreará el texto.


-El sistema de archivos:

LINUX DC arranca usando más o menos 2 megas de RAMDISK (disco en memoria RAM). Esto se traduce en que no hay mucho espacio para guardar tus archivos en la DC. De todas formas, cuando apagues la consola todos los datos se borrarán. No obstante, hay algunos directorios importantes en esta versión de LINUX:

/root: Tu "home" o directorio principal. Aqui es donde puedes guardar todo el trabajo que hagas. Es tu directorio personal de usuario que en el caso de cualquier usuario normal es /home/usuario, pero el root siempre tiene uno fijo llamado /root.

/etc: La mayoria de los ficheros de configuración de los programas en esta distribución están aqui.

/gdrom: Es un enlace a /mnt/gdrom, es decir, aqui encontraremos el contenido del GD de LINUX. Por desgracia, en esta versión no se puede hacer un "umount" para montar la unidad de nuevo, por lo que solo podremos leer el disco original de LINUX no pudiendo cambiarlo por otro.

/bin
/sbin
/usr/bin
/usr/sbin
: En estos directorios están la mayoria de los binarios o programas que incluye esta distribución. Basta echar un ojo para ver que contienen.

/usr/games: Unos cuantos juegos para LINUX, la mayoria en modo texto.

/usr/doc: Documentación sobre LINUX.

Muchos programas puede que no estén en el path, así que tendreis que ejecutarlos de forma absoluta, anteponiendo ./ al comando, por ejemplo:

./startx


-Prboom:

Empieza lo divertido. Prboom es un port del DOOM de MS-DOS para LINUX. Pues como tenemos LINUX podemos jugarlo.

Lo primero es fijar el "frame buffer depth". Lo haremos escribiendo:

fbset -depth 16

Despues lanza el prboom escribiendo prboom. En ocasiones falla, asi que vuelve a poner el fbset y vuelve a intentar lanzar el prboom. Tarde o temprano funcionará.


-Como usar vi para editar los ficheros:

Esto es una breve explicación de como se usa vi. Que conste que un manual completo nos podria llevar fácilmente 30 páginas, porque a pesar de ser muy potente, vi sigue siendo un poco complejo para usuarios no experimentados.

Para abrir o crear un archivo con vi, escribe vi seguido del nombre del fichero:

dreamcast:~# vi hola.txt

Una vez que se haya cargado el programa, tienes que ponerte en modo "insertar" para poder escribir cualquier cosa. Para esto pulsa "i". Una vez hecho esto, puedes escribir como el cualquier otro editor de texto y moverte por el texto con las teclas de dirección.

Cuando hayas terminado de editar tu documento, presiona ESCAPE para abandonar el modo de inserción. Puedes salir sin guardar los cambios escribiendo ZZ (shift + zz) o salir guardando los cambios escribiendo :q!


-Programando con la Dreamcast:

Esta versión de LINUX viene con un compilador de C/C++ para Dreamcast. El límite solo lo pone el tamaño de la RAM. Para empezar, aquí tenemos un típico programa "hola mundo" en C.

Primero necesitamos editar el codigo fuente:

dreamcast:~# vi hola.c

Luego ponemos el siguiente texto:

main()
{
printf("Hola mundo!!\n\n");
return 0;

}


Que conste que la función principal siempre debe devolver algo en DC.

Después de guardarlo podemos compilarlo así:

dreamcast:~# gcc hola.c -o hola

(Donde "hola" es el nombre del fichero ejecutable resultante)

Luego podrás ejecutar el programa de la siguiente manera:

dreamcast:~# ./hola
Hola mundo!!

dreamcast:~#


Felicidades. Acabas de escribir tu primer programa para Dreamcast. Aquí va otro ejemplo un poco más complejo, por si alguien quiere probarlo:


main()
{
int num1, num2;
printf("Escriba un numero\n");
scanf("%d", &num1);
printf("Escriba otro numero\n");
scanf("%d", &num2);
printf("La suma de los dos números es %d\n", num1+num2);
return 0;

}



-Uso del coders cable:

Puedes usar el coders cable para conectar la Dreamcast desde tu PC. Abre tu programa de comunicaciónes (por ejemplo, el Hyper Terminal) y configuralo a 115200bpp (8-N-1) y una vez que la dreamcast haya arrancado, deberías ver la pantalla de login. Haz login como root.

Ahora podemos usar el cable para guardar datos en el PC desde la Dreamcast. Para ello escribiremos:

dreamcast:~# gzip stuff.dat
dreamcast:~# uuencode stuff.dat.gz stuff.dat.gz.uue > stuff.dat.gz.uue
dreamcast:~# more stuff.dat.gz.uue


Así copiamos la salida en un fichero de texto y lo guardamos en el disco duro del pc. Para devolver el archivo a la dreamcast primero le dremos a la dreamcast que copie alguna entrada en un fichero:

dreamcast:~# cat > stuff.dat.gz.uue

Despúes, copiamos los datos del archivo de texto al archivo de comandos y presionamos CONTROL + C (en una nueva linea) cuando lo haya mandado todo. Después escribimos:

dreamcast:~# uudecode stuff.dat.gz.uue -o stuff.dat.gz
dreamcast:~# gunzip stuff.dat.gz
dreamcast:~# rm stuff.dat.gz.uue


Ya tenemos el archivo stuff.dat de vuelta.

(Nota: esto ha sido traducido directamente del texto de Adrian O´Grady y no ha sido comprobado por mi)
Ala Temjin, ya tienes faena para poner en el hilo importante.

No he corregido demasiado faltas de ortografía y demás. Si quieres poner mas negritas o poner bien los titulos (no miden lo mismo con todos los tipos de letras y aki en EOL se ven mal).


Ala, taluego. [fumando]
Digamos que es bastante...largoXD
Ahora me pongo a ello, espero que a la gente le sea util;)
Guybrush, te lo has currado, pero mucho [ok] . Ahora ya se donde ir cuando tenga alguna duda ;)
Hola a to2. Se me había ocurrido continuar la excelente labor de Guybrush realizando un MegaFAQ de la DC con TODAS las preguntas que han surgido hasta ahora sobre la DC en este foro. Además procuraré complementar esta info con cosillas que encuentre por ahí. Esto requiere un trabajo bastante largo y me va a llevar un poco de tiempo...pero os prometo que lo conseguiré. De este modo tendremos la Biblia de Dreamcast en EOL que espero que con el tiempo se llegue a convertir en una de las mayores bases de datos sobre DC en Internet.
Os iré informando con el tiempo sobre mis progresos...


Salu2,

ZniaM
a tus pies guybrush(no sera pa tanto)curradisimo,con estos hilos ya he resuelto muchas de mis dudas,thanks

UP TO SIX BILLION PLAYERS![666] [666] [666]
Buen tutorial... Siempre he pensado que la DC es algo mas que una simple consola. Felicitaciones [oki] [oki]
Menuda Guia ;) bueno ya de poco queda hacer guias y menos tan buenas como esta ;)
felicitaciones que esta muy bien hecho, buen trabajo.
Peazo de FAQ....

Pero explicame una cosa que estaras mejor enterado que yo...
Tengo entendido que linux no se basa en Unix, si no en MimiX, de hecho lo llaman GNU (Gnu Not Unix)...
No estoy seguro de lo que hablo, ya que me estoy metiendo a en el mundo Linux y me suena esto un poco.... por eso, si me aclaras...

Gracias...

P.D.: De donde lo puedo descargar??? (estoy metiendo linux hasta en la ipaq!!! Opie forever!!!)

P.D.2: tengo un adaptador de PS/2 para DC... vale???
La historia de linux que puse ahi es una versión recortada para explicarlo en 4 lineas, pero efectivamente como tu dices no es asi ;)

En principio fue torvalds el que quería un UNIX para su 386, y como no pudo pagarlo empezó a programarse uno. De ahi nacio LINUX, el kernel. Por otro lado Richard Stallman mientras trabajaba en el MIT creo el proyecto GNU con la misma idea que Torlvalds de crear un sistema compatible con unix ;) Ambos unieron sus proyectos y de ahi salio "GNU/Linux", conocido solo como "Linux" por uso cotidiano. (y mas gente que se iba acomplando al proyecto GNU/linux)

Torvalds se basó en MINIX como dices, que también era un clon de UNIX (evidentemente no podia tener acceso al codigo UNIX, como saltan berreando los de SCO ahora [carcajad])

Luego fueron añadiendose cada vez mas personas al proycto, y ha acabado... asi, con millones de personas de todo el mundo trabajando por mejorar este sistema operativo.

Como dato curioso, Linus no quería abzarar el Open Source desde el prinicipio, tuvo que ser Stallman el que lo convenciera poco a poco XD

A las preguntas:

1) De muchos sitios. Mira en http://www.dcemulation.com por ejemplo

2) No lo se [carcajad]
Escrito originalmente por Guybrush
1) De muchos sitios. Mira en http://www.dcemulation.com por ejemplo

2) No lo se [carcajad]

1.- anda, claro... jeje... (le digo a todo el mundo que si necesita algo de la scene se vallan ahi, y ahora que encesito yo algo, pregunto... XD) pero bueno, ya se esta downloading....
2.- pues habra que probar... uff...


gracias por la aclaracion [poraki] ... con tantas cosas nuevas, me hago la picha un lio... jeje...
Al final si funciona el aparatito 3in1 para el teclado en LinuxDC, pero me funciono en el puerto 2 de la consola....
Aver pero exactamente k se puede acer con este linux?

Es como el de pc? xk por el emule me pone k solo ocupa 100mb el de dc. I en 100mb no creo k aya mucho pero weno.

Bueno se puede utilizar como un pc normal? Y le cd's con imagenes, videos....
Es como un pc?

Salu2 espero vos respuestas [boing]
TerminChU escribió:Aver pero exactamente k se puede acer con este linux?

Es como el de pc? xk por el emule me pone k solo ocupa 100mb el de dc. I en 100mb no creo k aya mucho pero weno.

Bueno se puede utilizar como un pc normal? Y le cd's con imagenes, videos....
Es como un pc?

Salu2 espero vos respuestas [boing]


Pues imagina Linux en un PC a 200Mhz, con 16Mb de RAM y sin disco duro. Es una curiosidad, pero no podrás hacer demasiado con él. El Xmame por ejemplo lo probé (hace tiempo) y el PacMan sin sonido rulaba a 9fps, así que ver videos como que no.
Pues imagina Linux en un PC a 200Mhz, con 16Mb de RAM y sin disco duro


No tiene absolutamente nada que ver. Dreamcast es mucho más potente que eso, de la misma forma que XBOX es muchísimo más potente que un Pentium 3 700 con 64 megas de ram y una Gforce3.

Eso si, la ram en este caso es una pega, y tb es cierto que es meramente anecdótico el uso de Linux en DC.
Guybrush escribió:
No tiene absolutamente nada que ver. Dreamcast es mucho más potente que eso, de la misma forma que XBOX es muchísimo más potente que un Pentium 3 700 con 64 megas de ram y una Gforce3.

Eso si, la ram en este caso es una pega, y tb es cierto que es meramente anecdótico el uso de Linux en DC.


DC es más potente que el PC equivalente SOLO para jugar, porque tiene procesadores dedicados a tal efecto. Los procesadores de PC son buenos procesadores de propósito general, y como tales se defenderán mejor que una DC en tareas genéricas.

Te pongo como ejemplo el Xmame: PacMan a 9fps y sin sonido...no comments. Cuando probé Xmame en mi K6 200MMX PacMan me funcionó a full speed y con sonido. O simplemente los emuladores, reproductores multimedia y programas en general que tienes en un PC a 200Mhz por lo general superan los que tiene nuestra DC.

En resumen, no creo que DC pueda hacer cosas que no hiciera un PC equivalente (que no sean juegos), si acaso al revés.
Wenasss, me baje un paquete de linux de descarga directa y aora lo tngo en un archivo .tar con icono de archivo zip, como lo grabo?? en http://www.dcemulation.com no lo encontre. Por cierto se puede grabar un emulador con roms aparte?¿ como? muchas gracias
A día de hoy, ¿existe algún sitio en Internet de donde se pueda descargar el Linux para la Dreamcast?. Estoy buscando desesperadamente pero no lo encuentro.
Gracias
18 respuestas