Raspberry Pi

C'est le lieu des discussions diverses et variées, mais toujours en rapport avec le thème général du forum et dans l'esprit de celui-ci. Contient des rubriques électroniques.

Modérateurs : Papy.G, fneck, Carl

Avatar de l’utilisateur
Carl
Modérateur
Messages : 13253
Inscription : 08 avr. 2007 13:21
Localisation : http://www.doledujura.fr
Contact :

Re: Raspberry Pi

Message par Carl »

bizarre car chez moi ça fonctionne mais c'est pas la même version

Image
Avatar de l’utilisateur
frodon69
Messages : 2497
Inscription : 24 juin 2007 10:55
Localisation : Lyon

Re: Raspberry Pi

Message par frodon69 »

Daniel a écrit :@Frodon : alors dcmoto ne fonctionne pas chez toi, car ce n'est pas un logiciel 64 bits :mrgreen:
En fait j'utilise mon vieux pc pour l'émulation, XP est copain avec tout.
Mais les ports usb de mon vieux pc sont hs, donc impossible de déplacer des gros fichiers dessus temporairement (ou alors je dois graver un dvd), c'est pour ça que je n'ai pas pu utiliser le winrar que j'avais.

Bon maintenant je cherche à comprendre comment utiliser le .img , le monde linux est encore plein de mystères pour moi.
Frodon69
Avatar de l’utilisateur
Carl
Modérateur
Messages : 13253
Inscription : 08 avr. 2007 13:21
Localisation : http://www.doledujura.fr
Contact :

Re: Raspberry Pi

Message par Carl »

Pour le fichier img, il faut transférer cette image vers ta carte SD avec :

Win32 Disk Imager Beta
This tool is used for writing images to USB sticks or SD/CF cards

Image

http://sourceforge.net/projects/win32di ... source=dlp
Avatar de l’utilisateur
frodon69
Messages : 2497
Inscription : 24 juin 2007 10:55
Localisation : Lyon

Re: Raspberry Pi

Message par frodon69 »

@ _sam_ : J'ai pu télécharger depuis mon pi et consulter le mode d'emploi txt ; Fabien verra dans les stats de system-cfg un navigateur peu connu.

@carl : merci du tuyau, je teste de suite.
edit : "erreur 5 : accès refusé" ; je vais me coucher, j'abandonne.
Frodon69
__sam__
Messages : 7923
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: Raspberry Pi

Message par __sam__ »

@frodon69: on est donc au moins 2 à naviger sur system-cfg depuis un R-Pi (navigateur midori pour ma part). Depuis quelques jours ne n'utilise plus que lui. C'est agréable de booter un ordi silencieux et "lent". On croirait un thomson :).

As tu réussi à détarer l'archive et lancer l'émul ? je ne sais pas ce que ca donne au niveau des dépendances (il faut avoir gtk-3.0+, allegro4.2 au moins). Avec le fichier ".deb" je crois que les dépendances sont mieux gérées, et cerise sur le gâteau: TEO est installé dans le système, disponible depuis n'importe où et il apparait dans le menu des jeux du Desktop!

@Daniel: j'ai récupé dcto8d, après modif du makefile (utilisation de gcc, ajout du dossier SDL) création du repertoire "object", la compile se passe bien:

Code : Tout sélectionner

pi@raspberrypi ~/dcto8 $ make 
gcc -fomit-frame-pointer -I/usr/include/SDL -c source/dcto8dmain.c -o object/dcto8dmain.o -O2
Assembler messages:
Fatal error: can't create object/dcto8dmain.o: No such file or directory
make: *** [object/dcto8dmain.o] Error 1
pi@raspberrypi ~/dcto8 $ mkdir object
pi@raspberrypi ~/dcto8 $ make 
gcc -fomit-frame-pointer -I/usr/include/SDL -c source/dcto8dmain.c -o object/dcto8dmain.o -O2
gcc -fomit-frame-pointer -I/usr/include/SDL -c source/dc6809emul.c -o object/dc6809emul.o -O2
gcc -fomit-frame-pointer -I/usr/include/SDL -c source/dcto8dinterface.c -o object/dcto8dinterface.o -O2
gcc -fomit-frame-pointer -I/usr/include/SDL -c source/dcto8ddevices.c -o object/dcto8ddevices.o -O2
gcc -fomit-frame-pointer -I/usr/include/SDL -c source/dcto8demulation.c -o object/dcto8demulation.o -O2
gcc -fomit-frame-pointer -I/usr/include/SDL -c source/dctosource/dcto8demulation.c8dkeyb.c -o object/dcto8dkeyb.o -O2
gcc -fomit-frame-pointer -I/usr/include/SDL -c source/dcto8doptions.c -o object/dcto8doptions.o -O2
gcc -fomit-frame-pointer -I/usr/include/SDL -c source/dcto8dvideo.c -o object/dcto8dvideo.o -O2
gcc -fomit-frame-pointer -I/usr/include/SDL -c source/dc6809dass.c -o object/dc6809dass.o 
gcc -fomit-frame-pointer -I/usr/include/SDL -c source/dcto8ddesass.c -o object/dcto8ddesass.o -O2
gcc -fomit-frame-pointer -I/usr/include/SDL -o dcto8d -lSDL object/dcto8dmain.o object/dc6809emul.o 
(...)object/dcto8dinterface.o object/dcto8ddevices.o object/dcto8demulation.o object/dcto8dkeyb.o object/dcto8doptions.o object/dcto8dvideo.o object/dc6809dass.o object/dcto8ddesass.o
pi@raspberrypi ~/dcto8 $ 
pi@raspberrypi ~/dcto8 $ ls -l dcto8d
-rwxr-xr-x 1 pi pi 192227 Aug  7 21:57 dcto8d
pi@raspberrypi ~/dcto8 $ 
J'ai récupéré to8d.rom sur le site de DCMOTO et je l'ai placé dans le même dossier que l'executable, mais quand je le lance l'écran reste noir avec une boite affichant un message "erreur 11 pas de cassette dans le lecteur", et on a des message inquiétants sur la console, et si je joue avec les options de zoom des préférence, l'émul plante:

Code : Tout sélectionner

pi@raspberrypi ~/dcto8 $ ls
dcto8d              dcto8d.ini          makefile   SDL.dll
dcto8d.2009.05.zip  dcto8d-printer.txt  makefile~  source
dcto8d.exe          doc                 object     to8d.rom
pi@raspberrypi ~/dcto8 $ ./dcto8d 
ALSA lib pcm.c:7339:(snd_pcm_recover) underrun occurred
ALSA lib pcm.c:7339:(snd_pcm_recover) underrun occurred
ALSA lib pcm.c:7339:(snd_pcm_recover) underrun occurred
...
ALSA lib pcm.c:7339:(snd_pcm_recover) underrun occurred
ALSA lib pcm.c:7339:(snd_pcm_recover) underrun occurred
ALSA lib pcm.c:7339:(snd_pcm_recover) underrun occurred
ALSA lib pcm.c:7339:(snd_pcm_recover) underrun occurred
ALSA lib pcm.c:7339:(snd_pcm_recover) underrun occurred
XIO:  fatal IO error 11 (Resource temporarily unavailable) on X server ":0"
      after 676 requests (676 known processed) with 0 events remaining.
pi@raspberrypi ~/dcto8 $ 
Pour l'écran noir c'est peut être la ROM qui est placée au mauvais endroit? bien que je vois que to8dmoniteur.h contient de l'hexa pouvant être le code du moniteur.. du coup je ne sais pas trop ce qu'il faut faire par la suite pour que ca marche.

[edit] en jouant encore un peu avec les menu, l'écran reste toujours noir, mais j'ai varié dans le type de plantage

Code : Tout sélectionner

ALSA lib pcm.c:7339:(snd_pcm_recover) underrun occurred
ALSA lib pcm.c:7339:(snd_pcm_recover) underrun occurred
ALSA lib pcm.c:7339:(snd_pcm_recover) underrun occurred
[xcb] Unknown request in queue while dequeuing
[xcb] Most likely this is a multi-threaded client and XInitThreads has not been called
[xcb] Aborting, sorry about that.
dcto8d: ../../src/xcb_io.c:179: dequeue_pending_request: Assertion `!xcb_xlib_unknown_req_in_deq' failed.
Aborted
(msg envoyé depuis le R-Pi)
Samuel.
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
Daniel
Messages : 17316
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: Raspberry Pi

Message par Daniel »

Pour dcto8d :
- Toutes les roms nécessaires sont dans les fichiers .h, il n'y a rien a ajouter
- L'émulateur se synchronise sur la carte son en envoyant continuellement des buffers à jouer. Sur PC Windows ou Linux ça fonctionne bien, avec le Pi j'ai peur d'incompatibilités avec le matériel, ou les drivers, ou la bibliothèque ALSA. Avec SDL au milieu pour compliquer les choses, ça ne semble pas facile à débugger.
Daniel
L'obstacle augmente mon ardeur.
__sam__
Messages : 7923
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: Raspberry Pi

Message par __sam__ »

A ton avis, l'écran noir a une cause plausible?
Samuel.
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
Daniel
Messages : 17316
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: Raspberry Pi

Message par Daniel »

Si le programme ne peut pas communiquer avec la carte son pour une raison quelconque, le processeur 6809 est mis en pause et ne démarre pas. Dans ce cas il n'y a aucun affichage, l'écran reste noir. C'est la cause la plus probable.
Daniel
L'obstacle augmente mon ardeur.
Avatar de l’utilisateur
Carl
Modérateur
Messages : 13253
Inscription : 08 avr. 2007 13:21
Localisation : http://www.doledujura.fr
Contact :

Re: Raspberry Pi

Message par Carl »

Tu peux faire un essai en mode pulse audio
Install PulseAudio by running sudo apt-get install pulseaudio
Configure mpd to use PulseAudio as output plugin by editing /etc/mpd.conf. You need to remove or comment out the lines that refer to the Alsa output plugin and add these lines instead:
audio_output {
type "pulse"
name "MPD PulseAudio Output"
}
Edit /etc/pulse/default.pa and remove or comment out load-module module-suspend-on-idle. This is the important part that prevents PulseAudio from sending the audio hardware to sleep. I’ve read that simply using PulseAudio lessened the problem for some people. But on my Pi only disabling idle suspend really helped.
Restart PulseAudio and mpd to let the configuration changes take effect. You do this by running the following two commands:
sudo /etc/init.d/pulseaudio restart
sudo /etc/init.d/mpd restart
Avatar de l’utilisateur
frodon69
Messages : 2497
Inscription : 24 juin 2007 10:55
Localisation : Lyon

Re: Raspberry Pi

Message par frodon69 »

__sam__ a écrit :As tu réussi à détarer l'archive et lancer l'émul ? je ne sais pas ce que ca donne au niveau des dépendances (il faut avoir gtk-3.0+, allegro4.2 au moins). Avec le fichier ".deb" je crois que les dépendances sont mieux gérées, et cerise sur le gâteau: TEO est installé dans le système, disponible depuis n'importe où et il apparait dans le menu des jeux du Desktop!
Dans le monde Linux, j'ai le niveau 1er année... de maternelle :lol: mais je vais essayer ;) :)
Frodon69
__sam__
Messages : 7923
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: Raspberry Pi

Message par __sam__ »

@Merci Carl. Une fois l'écran noir réglé, je vais voir si pulsaudio règle le pb (pour le moment j'hésite car j'ai lu des trucs comme quoi ca ralentissait sérieusement le linux).

@Daniel: j'ai fait tourner un débuggeur dessus et la routine Run() d'émulation 6809 est bien appelée. Nextline() est aussi appelé, et pourtant tout reste noir. Le point d'arret sur Palette() n'est jamais rencontré. Et en inspectant la ram video SDL on voit qu'elle est remplie de "garbage".

Mon impression est que même si Run() est appelé, le 6809 ne tourne pas!

Si je mets un point d'arret sur Run6809. Sur le code ROM suivant

Code : Tout sélectionner

FDE8 CE6000     LDU    #$6000             
FDEB 6FC0       CLR    ,U+                
FDED 11837000   CMPU   #$7000             
FDF1 26F8       BNE    $FDEB              
J'observe le PC faire: $FDE8, $FDEB, $FDED, $FDF1, $FEEB au lieu de $FDEB!!!

Il semble que les sauts relatifs courts sont fait sur 8bits et pas 16bits.

Code : Tout sélectionner

#define BRANCH {dc6809_pc+=GETC(dc6809_pc);}
Ok, le code présume que GETC (retournant un char) est signé, or pour GCC 4.6.3 sur ARM, les char sont unsigned!!

Donc ==> modif du makefile pour ajouter -fsigned-char... (et -pipe: cela accélère la compile car l'écriture des fichiers temporaire sur le flash disk a l'air très lent. on a 41s sans vs 28s avec -pipe lors d'une compile rapide sans optimisations), recompile.... lancement et .. BINGO! l'écran TO8D apparait!

Ce bug n'était pas évident à tracer!

voici le makefile qui corrige tout:

Code : Tout sélectionner

# Project: dcto8d
CC=gcc -fomit-frame-pointer -I/usr/include/SDL -O2 -fsigned-char -pipe

objects = object/dcto8dmain.o object/dc6809emul.o \
	object/dcto8dinterface.o object/dcto8ddevices.o object/dcto8demulation.o \
	object/dcto8dkeyb.o object/dcto8doptions.o object/dcto8dvideo.o \
	object/dc6809dass.o object/dcto8ddesass.o

dcto8d : $(objects)
	$(CC) -o dcto8d -lSDL $(objects)

object/dcto8dmain.o : source/dcto8dmain.c
	$(CC) -c source/dcto8dmain.c -o object/dcto8dmain.o 

object/dc6809emul.o : source/dc6809emul.c
	$(CC) -c source/dc6809emul.c -o object/dc6809emul.o 

object/dcto8dinterface.o : source/dcto8dinterface.c
	$(CC) -c source/dcto8dinterface.c -o object/dcto8dinterface.o 

object/dcto8ddevices.o : source/dcto8ddevices.c
	$(CC) -c source/dcto8ddevices.c -o object/dcto8ddevices.o 

object/dcto8demulation.o : source/dcto8demulation.c
	$(CC) -c source/dcto8demulation.c -o object/dcto8demulation.o 

object/dcto8dkeyb.o : source/dcto8dkeyb.c source/dcto8dkeyb.h
	$(CC) -c source/dcto8dkeyb.c -o object/dcto8dkeyb.o 

object/dcto8doptions.o : source/dcto8doptions.c
	$(CC) -c source/dcto8doptions.c -o object/dcto8doptions.o 

object/dcto8dvideo.o : source/dcto8dvideo.c
	$(CC) -c source/dcto8dvideo.c -o object/dcto8dvideo.o 

object/dc6809dass.o: source/dc6809dass.c source/dc6809dass.h
	$(CC) -c source/dc6809dass.c -o object/dc6809dass.o $(CFLAGS)

object/dcto8ddesass.o: source/dcto8ddesass.c
	$(CC) -c source/dcto8ddesass.c -o object/dcto8ddesass.o 

clean :
	rm dcto8d $(objects)
Au niveau fonctionnement sur le PI, l'affichage du pointeur souris sur le menu de boot du TO8D est assez saccadé. Cela semble venir de lenteurs d'afichage par la lib SDL car au niveau usage CPU j'ai: 50% du temps cpu passé dans dcto8d et 50% du temps CPU passé dans Xorg. Bref tout le temps passe dans l'affichage, soit du coté emul ,soit du coté X11. Si je passe l'affichage des trames à 10%, ca ne change pas spécialement la charge CPU, mais le beep en basic arrive avec 1sec de retard. Avec 100% le beep est immédiat.

Pour ceux qui voudraient essayer de leur coté, un binaire executable est présent dans l'archive dcto8d.tgz
Daniel: tu peux ajouter sur la page que le Raspberry-PI est supporté modulo des modifications mineures.

Image

[edit] j'ai eu la curiosité de lancer DCTO8D hors environnement X11. Mon écran est devenu tout noir preuve qu'il s'est passé quelque chose. Il n'est pas exclus que la lib SDL se débrouille pour marcher quand même hors environnement X11, directement dans le framebuffer, ce qui permettrait de possiblement gagner pas mal de puissance CPU.
Samuel.
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
Daniel
Messages : 17316
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: Raspberry Pi

Message par Daniel »

Je suis admiratif, car je n'aurais peut-être pas trouvé le problème moi-même. Bravo :!:

La lenteur d'affichage n'est pas surprenante : dcto8d fonctionne bien sur PC Windows ou Linux car SDL sait exploiter l'accélération matérielle de la carte graphique, mais sur le Pi tout doit passer par le soft. Il faudrait vérifier dans SDL s'il y a des paramétrages pour faire mieux, sinon c'est insoluble.

Merci pour le binaire et le makefile, je vais les ajouter au site dcto8
Daniel
L'obstacle augmente mon ardeur.
__sam__
Messages : 7923
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: Raspberry Pi

Message par __sam__ »

j'ai vu que tu as laissé l'extension tgz pour le binaire. Un simple "gz" pouvait être suffisant si le fichier n'est pas une archive TAR, mais l'exe directement recompressé.

Pour la curiosité je vais essayer de le recompiler en "profile" et voir quelle partie de SDL fait goulot d'étranglement.
Samuel.
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
__sam__
Messages : 7923
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: Raspberry Pi

Message par __sam__ »

Dans le profile je n'ai pas vu grand chose d'intéressant. Les chiffres sont d'ailleurs très bizarres (styles 0.3sec utilisés au total après 5mins d'execution). Je soupconne gprof de ne pas être au point sur le R-Pi.

Cependant en utilisant

Code : Tout sélectionner

#define VIDEO_MODE SDL_HWSURFACE | SDL_DOUBLEBUF | SDL_FULLSCREEN
dans dcto8dvideo.c, TEO devient plein écran, et l'affichage est alors beaucoup plus fluide. C'est vraiment le jour et la nuit. De ce que j'ai compris: si on est pas en FULLSCREEN, alors SDL sur le R-PI n'honore pas bien HWSURFACE et fait des copie software de la ram standard vers la ram videodans SDL_FLIP(). En full screen il est plus malin : il travaille en ram video et utilise l'accélération matérielle pour déplacer les blocs.

Ben alors c'est ca la solution? Helas non, car en full screen l'écran n'est pas couvert à 100%. En gros c'est la même taille que sous x11, mais avec une bordure noire gigantesque autour. Mais surtout: on pert l'usage du clavier qui n'est plus pris en compte. Il faut avouer le basic sans le clavier est nettement moins pratique! :mrgreen:

Pour réduire le nombre d'underrun audio j'ai trouvé que passer le buffer son de 1024 à 8192 aidait pas mal (mais ce n'est pas parfait non plus). J'ai même eu l'impression que cela accélérait l'émulation, mais c'est très subjectif.
Samuel.
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
Avatar de l’utilisateur
Carl
Modérateur
Messages : 13253
Inscription : 08 avr. 2007 13:21
Localisation : http://www.doledujura.fr
Contact :

Re: Raspberry Pi

Message par Carl »

la prochaine version de Raspbian devrait utiliser Wayland..peut être que ça va améliorer les choses

http://wayland.freedesktop.org/xserver.html
http://fr.wikipedia.org/wiki/Wayland
http://www.raspberrypi.org/archives/4053
Répondre