Iniciar sesión

Ver la versión completa : serie... puerto serie.



Drumpi
05/05/2010, 02:12
Hola a todos:

Pues nada, ya vengo con mis dudas, esta podría haber ido al subforo de GP2X, pero está más muerto que abandonado, y no quiero cerrarme las puertas a otras ideas (además, es más duda de Linux que de otra cosa).

Vereis, me encuentro liado con la BeagleBoard. Ya he compilado Xloader, uboot, kernel (sospecho que este último mal) y hasta un pequeño trozo de Angstrom (no entero, porque no sé cómo se hace :p). Pues bien, me toca ver la salida de video, y tras leer 20 tutoriales distintos no ha habido forma de ver nada por la salida s-video.
Pues nada, tendrá que ser por HDMI, pero mi tele tiene sólo entrada de antena, y el modulador que he comprado no me arregla nada. Solución: trasladarme al piso de abajo, a la tele de la salita. Problema: necesito un puerto serie para hacer debug y me acaban de vetar el acceso al único portátil de la casa :laser: (pues nada, ya les vetaré yo el acceso al servicio técnico, ejem).

Pues bien, he aquí el dilema, necesito depurar la salida por el puerto serie. No es imprescindible, pero teniendo en cuenta que estoy con una distro sin probar y que no sé hasta qué punto tengo acceso con herramientas USB (léase teclado y ratón)...

La única solución que he encontrado de momento es usar el puerto serie de la cradle de mi GP2X y termula. Tambien puedo apropiarme de la tele para mi cuarto, o de la salita con mi equipo de sobremesa, pero no creo que me dejen mucho tiempo :lol:

El problema es que no sé cómo establecer la comunicación GP2X<->beagleboard. Para Linux uso minicom, pero la negrita no lo trae, y no se qué programas tiene Linux como sustituto ni cómo tiene el acceso al puerto (puede ser por /dev/ttyS0, pero ni idea de cómo va).

Un saludo a los linuxeros.

JoJo_ReloadeD
05/05/2010, 08:43
En los parametros que le pasas al uboot ya tienes que indicarle que quieres usar la consola serie en ttyS0, observa el boot.scr que va en la particion 1:



'V[�I�J%^�Execute uImage.binif fatload mmc 0 80200000 uImage.bin
then
echo ***** Kernel: /dev/mmcblk0p1/uImage.bin *****
else
echo ***** Kernel: /dev/mtd3 *****
nand read 80200000 280000 400000
fi
if fatload mmc 0 81600000 ramdisk.gz
then
echo ***** RootFS: /dev/mmcblk0p1/ramdisk.gz *****
setenv bootargs 'console=ttyS0,115200n8 console=tty0 root=/dev/ram0 rw ramdisk_size=32768 initrd=0x81600000,32M'
else
echo ***** RootFS: /dev/mmcblk0p2 *****
setenv bootargs 'console=ttyS0,115200n8 console=tty0 root=/dev/mmcblk0p2 rw rootwait'
fi
bootm 80200000


Con esto podremos ver como bootea, descomprime el kernel, arranca...

pero para luego hacer login en el sistema tienes que añadir esto a /etc/inittab:



T0:23:respawn:/sbin/getty -L ttyS0 115200 vt100


Cuidado que por las restricciones del getty es muy posible que no te deje loguearte como root, create un usuario y luego haces un su.

Y ya te digo, si quieres una imagen de una SD con una debian preparada para la beagle, pudiendo usar los repositorios y demas... dilo.

EDIT: Se me olvidaba, para usar el ttyS0 (un puerto real, no esa emulacion que trae por el cable USB) necesitas este adaptador:

http://www.logicsupply.com/images/photos/cables/db9-idc10_big.jpg

Es un db9 - idc10, mas conocido como AT-Everex, era el tipico conector que venia en los PCs de sobremesa desde el pentium 1 hasta hace bien poco para conectar el segundo puerto serie...

Drumpi
06/05/2010, 03:07
Emmm, lo que yo decía era justo lo contrario: eso que comentas ya lo he hecho (he usado tanto las demos que hay como una versión compilada por mi), el problema es que no tengo PC donde leer dicha información del puerto serie, y quiero hacerlo desde GP2X, pero no sé cómo.

< - >
Perdonad que insista, pero es que me corre un poco de prisa :(

juanvvc
06/05/2010, 07:51
Si solo es leer la serie, ¿has probado un simple script que haga "cat /dev/ttyS0 > /mnt/sd/salida_serie"? Incluso desde termula "cat /dev/ttyS0" podría funcionar.

Si necesitas configuración especial, hacerte un programilla en C que abra la serie y te la muestre por la salida estándar, que luego puedes ver en termula, es algo así como trivial :)

Drumpi
06/05/2010, 22:33
Hombre, lo suyo sería leer y enviar comandos.
¿Has probado alguna vez a usar el puerto serie de la cradle para algo similar?

Endher
06/05/2010, 22:44
Drumpi, hay algún sitio en el que vayas explicando lo que vas haciendo con el proyecto? Es que me resulta muy interesante leerte, y pese a que hay cosas que ni tan siquiera entiendo, me gusta mucho ir siguiendo tus avances :brindis:

Drumpi
06/05/2010, 22:51
Pues no, aunque de todas maneras no hay nada interesante de momento, a menos que entiendas por "interesante" compilarte tu propia distribución de Angstrom, el XLoader, uboot, etc...
Eso si, aviso que se necesita un disco duro grande, y por GRANDE quiero decir que 50GB sólo para lo básico y las x11.

Endher
06/05/2010, 22:59
Pues a mi todas esas cosas me llaman la atención :o. Soy un curioso nato, y en los temas de electrónica y/o programación, mucho más xD

Drumpi
07/05/2010, 01:30
Hombre, de momento tengo un borrador que uso para no olvidarme de los pasos que sigo, y aun no se si tengo el kernel bien compilado.
Tampoco se si debería sacar nada a la luz aún, no se exactamente como va el tema de derechos del proyecto ni nada de eso, así que para no arriesgar prefiero no sacar nada hasta haberlo presentado, espero que lo entiendas. De todas formas, como he dicho muchas veces, espero tenerlo terminado para Junio, por lo que no queda nada, pero aun no me he puesto a compilar: como veis, aun ando liado "independizando" la placa del puerto serie y en casa no me lo están poniendo nada fácil.

juanvvc: ahora que lo pienso, sí, es una posible solución, al fin y al cabo de momento sólo me interesa leer lo que sale por dicho puerto. Lo que ya no sé es si eso muestra la salida en tiempo real o lo tengo que estar invocando cada x tiempo, ni si tiene buffer de entrada o qué.

Endher
08/05/2010, 01:40
Tranquilo, Drumpi, cuando puedas :) solo espero que si lo lanzas, avises por el foro! Es algo que no me gustaría perderme :) :brindis: