PDA

Ver la versión completa : Tutorial transmision de archivos por USBSerial



hopez
13/02/2010, 12:54
Buenas, refloto el hilo (viene de http://www.gp32spain.com/foros/showthread.php?t=69218) porque he conseguido transmision de archivos por USBSerial.
Así no es necesario usar el USBNetwork (que en el nuevo firm 1.2.x no funciona)

La cuestión es usar minicom + rzsz, como este programa (zmodem) no está instalado en la wiz lo he compilado y preparado para instalar.

Miniguia:

- Asegurarse que el ordenador tiene los programas de zmodem instalados, si no instalarlos, por ejemplo en ubuntu:


sudo apt-get install lrzsz

- Instalar lrz lsz desde el archivo adjunto (http://www.gp32spain.com/foros/attachment.php?attachmentid=20335&stc=1&d=1269636065) ejecutando el install.gpe en la wiz (copia los ejecutables a sbin)

- Ejecutar USBSerial de hcf como siempre (http://www.gp32spain.com/foros/showthread.php?t=69218)

- Simular la conexión série en el pc (linux):


$ sudo modprobe usbserial vendor=0x0525 product=0xA4A6

- Instalar/configurar minicom en el pc:


$ minicom -s

Lo único que he tenido que tocar yo ha sido la dirección del puerto serie:


+-----------------------------------------------------------------------+
| A - Dispositivo Serial : /dev/ttyUSB0 |
| B - Localización del Archivo de Bloqueo : /var/lock |
| C - Programa de Acceso : |
| D - Programa de Salida : |
| E - Bps/Paridad/Bits : 115200 8N1 |
| F - Control de Flujo por Hardware: Sí |
| G - Control de Flujo por Software: No |
| |
| ¿Qué configuración alterar? |
+-----------------------------------------------------------------------+

Por lo visto en placa de desarrollo solo funciona si se desactiva la opción F - Control de Flujo por Hardware: No

Y el método de envio de zmodem:


+------------------------------------------------------------------------------+
| Nombre Programa Nombre R/T Pantalla completa IO-|
|RA zmodem /usr/bin/sz -vv -b -e -N Y U N Y Y |
| B ymodem /usr/bin/sb -vv Y U N Y Y |
| C xmodem /usr/bin/sx -vv Y U N Y N |
| D zmodem /usr/bin/rz -vv -b -E N D N Y Y |
| E ymodem /usr/bin/rb -vv N D N Y Y |
| F xmodem /usr/bin/rx -vv Y D N Y N |
| G kermit /usr/bin/kermit -i -l %l -s Y U Y N N |
| H kermit /usr/bin/kermit -i -l %l -r N D Y N N |
| I ascii /usr/bin/ascii-xfr -dsv Y U N Y N |
| J - |
| K - |
| L - |
| M Auto activación de la cadena de caracteres de recepción Zmodem..... D |
| N Utilizar ventana de selección de archivos.. Sí |
| O Indicador para directorio de recepción.. No |
| |
| ¿Cambiar qué configuración?: (ESPACIO para borrar) |
+------------------------------------------------------------------------------+

Por lo que sé también se puede configurar el directorio de descargas/envio por defecto.

Una vez configurado, salva la configuración -> Salvar configuración como dfl. y sal

Y ahora ya se puede ejecutar minicom.

Una vez conectados a la wiz para enviar/recibir archivos tenemos que llamar al programa de recepción:



root@wiz:/dev# cd /directorioArchivoDestino/
root@wiz:/directorioArchivoDestino# lrz -vvvvbZ
.. waiting to receive.

Las v's indican el número de mensajes de control que muestra por pantalla pero además parece que (colateralmente) hacen que la transmisión sea más a menos veloz.
Para archivos medianos/pequeños con -vvv es suficiente pero si cancela la transferencia de un archivo a medias se puede intentar con -vvvv, irá más lento pero seguramente llegará correctamente.

Para enviar archivos des del pc con minicom: Ctrl + A , s

Y en dirección inversa:


root@wiz:/dev# cd /directorioArchivoOrigen/
root@wiz:/directorioArchivoOrigen# lsz -b --zmodem ArchivoOrigen

minicom se encargará de recibirlo y dejarlo en el $HOME de tu pc

Puck2099
26/03/2010, 11:16
EDITO: Retiro lo preguntado, era una tontería por no leer todo el tutorial (lo malo de leer deprisa por estar currando).

Muchas gracias por el tutorial y compilar el zmodem, llevo días buscando como pasar los archivos a la consola y esto me va a venir genial :)

hopez
26/03/2010, 11:39
Gracias, haciendo un uso bastante intensivo he experimentado que al hacer recepciones de archivos no muy grandes con
lrz -vvv basta para recibirlos correctamente, si el archivo es mayor se suele colgar y dar in incomplete transmission, en estos casos utilizo
lrz -vvvv que va un poco más lento pero es más seguro que se reciba correctamente...

Por otro lado me he acostumbrado a
minicom -c on que con colores es todo más cómodo xD

Puck2099
26/03/2010, 15:46
He probado con minicom, accedo a la consola, pero no soy capaz de mandar el ctrl+c para salir del menú de la Wiz... ¿hay que hacer algo especial para que funcione?

Estoy acostumbrado a usar el cu y con él no hay problema, lo que no creo es que permita mandar ficheros como con minicom.

hopez
26/03/2010, 15:54
¿Cuando te conecta por minicom no te abre el shell de root por defecto?

A mi se me conecta o al root directamente o a la petición de login, una vez logado con root mato el proceso gp2xmenu (killall gp2xmenu) y queda la consola preparada para hacerle lo que necesites

La interrupción de ctrl+c funciona pero solo en momentos de poca carga de cpu, si un proceso se me enloopa o está trabajando intensamente tanto por série como por ethernet (firm 1.1.x) no responde correctamente y en estos casos tengo que parar la consola directamente o esperar que finalice lo que está haciendo...

Por ejemplo cuando se carga gp2xmenu normalmente hasta que no queda en pantalla y esperando la pulsación de botones no acaba de reconocer el ctrl+c

Puck2099
26/03/2010, 19:30
Pues no, en mi consola/firmware no hay que hacer login, accedes directamente para hacer ctrl+c al menú y ya tienes acceso al terminal.

Por más ctrl+c que hago con el minicom no me hace ni caso, eso sí, si entro con el cu y cierro el menú ya tengo acceso desde minicom.

hopez
26/03/2010, 19:49
¡Aaaaah valeeee que estás usando la dev board!

Jeje es que con el edit no lo habia leido...

Todo el tuto es usando el módulo usbserial (http://www.gp32spain.com/foros/showthread.php?t=69218) de hcf y el cable usb incluido con la wiz retail.

No sé que decirte, no se si funcionara el programa-modulo que hizo hcf en gp32x para las dev boards / cable serie... todo es cuestion de probar.

El problema es la conexión que hizo hcf, para evitar los problemas de autologin que tienen las wiz retail creó un script que te deja en consola con el menú corriendo como proceso.

Si no lo consigues con usbserial alomejor tu firm te permite cargar el módulo de usbnetwork (el fw 1.2.x no lo permite) y a partir de aquí usar un ftp (http://www.gp32spain.com/foros/showpost.php?p=1000129&postcount=20)

EDIT: Alomejor también podrías crearte un .gpe con killall gp2xmenu, una vez tengas el cable conectado lo lanzas des del menú a ver si se muere y minicom te pilla shell

Puck2099
26/03/2010, 20:35
Bueno, sigo haciendo pruebas y en realidad minicom es como si no enviara caracteres.

Al enchufar la consola puedo ver el chorro de información que arroja pero no puedo hacer el ctrl+c para cerrar el menú. Pues bien, salgo de minicom, entro con cu y cierro el menú, teniendo acceso a la consola. Vuelvo a salir de cu y entro con minicom (ya con el menú fuera) y no responde, ni siquiera muestra el eco de los caracteres que escriba, así que me huele a que no está enviando caracteres, solo recibiéndolos.

< - >
Actualizo: Desactivando el control de flujo por hardware parece que ya tengo acceso a la terminal...

< - >
¿Qué velocidad de transmisión de datos hay con zmodem? Porque no sé si tarda demasiado o se queda esto colgado, pero llevo varios minutos con un archivo de menos de 100 KBs y no sale ningún progreso en la ventana...

hopez
26/03/2010, 20:37
:brindis: pefecto, ahora solo falta que no tengas que tocar parametros de sz de minicom, me suena que mirando el man decía algo de control de bits por software... Peo si te funciona mejor no tocar nada xD

< - >
Vaya, pues seguro que será algo de esto xD es lento pero no tanto, 2Mb en 5-10 segundos massomenos

Puck2099
26/03/2010, 20:45
:brindis: pefecto, ahora solo falta que no tengas que tocar parametros de sz de minicom, me suena que mirando el man decía algo de control de bits por software... Peo si te funciona mejor no tocar nada xD

< - >
Vaya, pues seguro que será algo de esto xD es lento pero no tanto, 2Mb en 5-10 segundos massomenos

Pues va a ser que no tira entonces... a ver si cambiando algo en la configuración...

< - >
Mira, aparecen un montón de timeouts:


root@wiz:/mnt/sd/USBSerial# ./lrz -vvvbZ
�Retry 0: Got TIMEOUTe.**B0100000023be50
�Retry 0: Got TIMEOUT**B0100000023be50
�Retry 0: Got TIMEOUT**B0100000023be50
�Retry 0: Got TIMEOUT**B0100000023be50

hopez
26/03/2010, 20:47
Prueba quitando el -e de la llamada a sz de minicom (asegurate que tienes lrzsz en el ordenador) y a quitar los parametros de lrz en wiz a ver que tal...

Los timeouts indican que lrz no recibe nada y queda a la espera

Puck2099
26/03/2010, 20:50
Prueba quitando el -e de la llamada a sz de minicom (asegurate que tienes lrzsz en el ordenador) y a quitar los parametros de lrz en wiz a ver que tal...

Los timeouts indican que lrz no recibe nada y queda a la espera

*****, era eso, no tenía instalado lrzsz en el ordenador, ha sido descargarlo y tirar en un instante :)

Creo que vendría bien actualizar el tutorial con esta información por si alguien más se encuentra con estos problemas.

Muchísimas gracias por la ayuda :brindis:

hopez
26/03/2010, 20:52
Ferpecto! ahora actualizo el post ;)

EDIT: Actualizado el tutorial

Puck2099
26/03/2010, 21:16
Por cierto, en el archivo adjunto no hay un install.gpe, tan solo están los ejecutables y un install.gpe~ que configura una interfaz de red.

< - >
Y de nuevo muchas gracias, no sabes bien lo contento que estoy por el tiempo que me va a ahorrar ahora que estoy "jugando" con los registros de la consola :)

hopez
26/03/2010, 21:22
Por cierto, en el archivo adjunto no hay un install.gpe, tan solo están los ejecutables y un install.gpe~ que configura una interfaz de red.

< - >
Y de nuevo muchas gracias, no sabes bien lo contento que estoy por el tiempo que me va a ahorrar ahora que estoy "jugando" con los registros de la consola :)

Solucionado también, gracias! :brindis:

< - >
Aisss tengo muy poco tiempo pero muchas ganas de hacer algo por la wiz, tengo a medio portar mil juegos, entre los que me gustaría acabar de hacer algo útil con los que tengo abandonados: Wesnoth, xmoto...

Además algun dia me gustaría intentar hacer alguno mío, además de intentar solucionar algunas cosas como la calibración de tactil, poder hacer un sleep con el swich de power, usar el micro... y llegar a poder entretenerme con esos registros XD

¡A ver si por lo menos vosotros que dominais llegais a hacer alguna cosa chula!

efegea
09/05/2010, 23:58
¡¡Aprovecho que llevo dos días con la pestaña abierta para agradecer el tutorial!! me esta siendo súper útil. :)

hopez
10/05/2010, 11:02
Gracias a ti por lo que esto debe significar XD

¿Algo que quieras anunciar? [wei]

Gammenon
10/05/2010, 11:35
Entonces es cosa del ultimo firmware que no pueda subir ficheros a la SD de la Wiz por el cable USB?

Standark
10/05/2010, 11:43
No, porque yo tengo el ultimo firm y sique puedo pasar archivos tanto a la SD como a la NAND por el usb...

Gammenon
10/05/2010, 11:44
No, porque yo tengo el ultimo firm y sique puedo pasar archivos tanto a la SD como a la NAND por el usb...

Pues a mi no me va muy fino, me dice que ha subido el archivo pero me parece que no lo sobreescribe, y eso de estar apagando y encendiendo la wiz para subir la ultima version del juego como que toca los huevos :(

hopez
10/05/2010, 12:26
Pues a mi no me va muy fino, me dice que ha subido el archivo pero me parece que no lo sobreescribe, y eso de estar apagando y encendiendo la wiz para subir la ultima version del juego como que toca los huevos :(

¿Pero con que los subes?
¿conectando directamente apretando B, usando usbserial o el usbnetwork?

Gammenon
10/05/2010, 12:33
¿Pero con que los subes?
¿conectando directamente apretando B, usando usbserial o el usbnetwork?

Con la B, vamos lo que trae la Wiz de serie sin mas añadidos ni na

hopez
10/05/2010, 13:55
Existe un programilla llamado usbfoo (http://www.gp32spain.com/foros/downloads.php?do=file&id=2514) que permite conectar la SD sin tener que andar reiniciando la wiz cada vez, por otro lado si programas en linux se puede usar el usbserial o conectar a través de wifi si te creas un adaptador.

Gammenon
10/05/2010, 13:56
Gracias hopez, entonces con el usbfoo este podre montar y desmontar la SD en caliente, no? :)

Puck2099
10/05/2010, 14:06
o conectar a través de wifi si te creas un adaptador.

¿Hay disponibles drivers para los wifis? En el kernel del último firmware disponible en la zona de descargas vienen para mi tarjeta, pero soy incapaz de compilarlo...

Standark
10/05/2010, 14:12
Con la B, vamos lo que trae la Wiz de serie sin mas añadidos ni na

A mi asi me va sin problemas, mas lento que conectando directamente la SD al pc, pero sin problemas.

hopez
10/05/2010, 15:50
¿Hay disponibles drivers para los wifis? En el kernel del último firmware disponible en la zona de descargas vienen para mi tarjeta, pero soy incapaz de compilarlo...

Pues no lo se ya que no tengo cable para hacer usbhost, pero scachi de gp32x (me suena que es el creador de usbfoo) lo tiene funcionando:
http://www.gp32x.com/board/index.php?/topic/52683-help-remote-debugging/

Yo de momento voy algo corto de tiempo, la semana que viene vuelvo a tener algo de vacaciones, espero poder volver a liarme...

efegea
11/05/2010, 20:15
Gracias a ti por lo que esto debe significar XD

¿Algo que quieras anunciar? [wei]

Pero no se pueden anunciar los proyectos que se van a presentar al concurso, ¿no? La verdad que no me ha quedado muy claro, no sé si es que no se puede hablar de ellos o simplemente no se pueden publicar los binarios. Sólo se lo he contado a Anarchy y porque es el organizador del concurso y me lo ha preguntado :D De todas formas casi que prefiero guardármelo y mantener la sorpresa. Aunque tengo bastantes esperanzas de que va a salir algo bueno de aquí :) Ya veremos, que no es fácil.

hopez
11/05/2010, 21:10
No digas nada, no, así creas :hype:
xd menos postear y más programar, suerte!

efegea
30/05/2010, 16:24
He leído así por encima que existe un comando llamado "slattach" que permite crear conexiones TCP/IP a través de un puerto serie.

Me pregunto si sería posible usarlo en la wiz. La cuestión es que "creo" que necesita soporte SLIP en el kernel y no sé si el de la wiz lo tendrá compilado (supongo que no) o si se podrá compilar el módulo para el kernel del firmware actual.

La verdad que no he investigado mucho, por eso pregunto, ¿sabéis algo? Aunque sea más lento que ethernet por usb, al menos es mucho más práctico que usar minicom, y ya que ethernet por usb no lo podemos usar en el último firmware..

hopez
30/05/2010, 18:48
Post (http://www.gp32x.com/board/index.php?/topic/50468-howto-wiz-usb-ethernet-with-stock-usb-cable/page__st__45) de hiben en gp32x casi simultaneo al tuyo:


I just started playing with my Wiz again after some months of other projects.

Still with the 1.2.1 firmware g_ether does not work for me.
What does work for me is installing a custom kernel with the 1.2.1 firmware and using custom modules for lf1000_udc and g_ether.
In other words: I now have a _working_ usb network connection (just got it to work a few minutes ago but I'm too excited to do a real test (netcat connection works) ;-) ) but it definitely seems to require building a kernel yourself (and then replacing uImage from fw 1.2.1 with your own uImage). (I built my kernel from the wiz branch in the pandora.git).
I'm not yet sure if this brakes something - I'm not going to buy any commercial games for the wiz so I don't care if this part is broken...

If anyone is interested in getting this to work I'll write up the process. So far I was not able to just replace the kernel without updating the whole filesystem from the sd card - this kind of sucks. I guess I'll create a custom bootloader soon that can do this for me...

Now the Wiz got a lot more interesting again for me :-) .

Es decir que recompilando el kernel que les pasaron consigue hacer funcionar los modulos.
En otro post (http://www.gp32x.com/board/index.php?/topic/53643-wiz-kernel-usbdevfs-support/) notaz pone las instrucciones para recompilar el kernel y un usuario consigue recompilar unos módulos para que funcionen, la diferencia es que parece que con este módulo (usbdevfs) no hace falta reinstalar todo el FS como le pasa a hiben...