Zaurus et vidéoprojecteur

Modérateurs: randy11, Ulhume, titeuf

Zaurus et vidéoprojecteur

Messagepar Jiba le Sam 22 Déc 2007, 23:22

Bonjour tous !

L'une des raisons qui m'ont poussé à choisir le Zaurus plutôt qu'un autre appareil est la possibilité de le connecter à un vidéoprojecteur. En effet je suis enseignant chercheur "non-titulaire de l'éducation nationnale" (comme on dit) et j'ai régulièrement des présentations à faire soit à des réunions, soit pour mes cours. Ce qui m'oblige à transporter un ordinateur portable et un vidéoprojecteur (il n'y en a pas un par salle de cours !), ce qui est difficile lorsque l'on a des problèmes de dos !

Sur Internet, on trouve 2 méthodes pour connecter Zaurus et vidéoprojecteur :
* via un adaptateur sur port compactflash CF-XGA
* via un adaptateur sur USB

Bien sûr il n'est pas question de faire de la vidéo, mais seulement des présentations (les ports CF et USB du Zaurus sont trop lents pour cela).

Cependant l'adaptateur sur USB n'est disponible qu'au Japon. De plus, il nécessite un hub alimenté ce qui rend cette solution vite encombrante : il faut alors porter : le Zaurus, l'adaptateur (qui a l'air d'avoir quasiment la taille du Zaurus), le hub USB, l'alim du hub et un bloc multiprise (le saviez vous ? certaines salles de cours n'ont qu'une seule prise de courant !).

Enfin, le CF-XGA est épuisé et totalement introuvable sur les sites de vente d'occasion :-(.

Bref, tout ça n'est pas brillant... :-((( Donc j'ai mené ma petite enquête et j'ai fini par tomber sur un forum russe (il semble que le Zaurus aie eu beaucoup de succès là-bas ; des zaurusses ?) :

http://www.zaurus.ru/board/viewtopic.ph ... d625dd4707
(à traduire avec google !)

J'y apprends que :
* il existe d'autres marques d'adaptateurs CF <-> VGA qui ne supportent pas officiellement le Zaurus
* tous ces adaptateurs fonctionnent à peu près de la même manière
* tous ont été utilisé avec succès sur le Zaurus !

Seconde enquête, je recherche les adapatateurs CF <-> VGA. Voici la liste de ceux que j'ai trouvé (sans doute quasi-exhaustive) :
* CF-XGA (*)
* Prolink PK 201 (*)
* Prolink PK 203 (*)
* Pretec Compactpresenter (*)
* Margi presenter to go (*)
* Colorgraphics voyager VGA
* LifeView FlyPresenter CF

Les (*) sont explicitement mentionné dans le forum russe. Ils parlent aussi d'un driver pour le Pretec dans Cacko ; effectivement on trouve dans le dépôt de paquet (feed) le paquet memory-cs-pretec, drôle de nom mais la description est claire :

Code: Tout sélectionner
Updated kernel module for Pretec CF Presenter VGA card. Enables 640x480 and 800x600 resolutions @75 Hz


(dans le forum, ils parlent plutôt de 10-20 FPS maxi, pas 75 !).

Nouvelles recherches : est-ce que ces accessoires là sont encore disponibles ? Impossible de les trouver en France ou sur Ebay, Amazon et consort :-(
J'insiste ! Et là, en fouillant bien, je finis par en trouver dans de petites boutiques éloignées :-D ! Alors voilà :

* Une boutique au Danemark qui vend des Prolink PK203 :
http://www.pdaland.dk/vare/437

* Deux boutiques en Grèce qui vendent des Pretec :
http://www.perfectshop.gr/pub/el/catalo ... .aspx?9573
http://www.play247.gr/index.php?main_pa ... ts_id=1381

* Une boutique de je ne sais pas où, qui vend des Prolink 203 :
http://www.yellowstore.co.il/yp/product.asp?pc=41637

* Sur le site de HP aux états unis, des Colorgraphics Voyager (j'ai perdu le lien)

* Sur un site de matériel spécifique pour personnes handicapées, en France, un appareil qui ressemble furieusement à un Colorgraphics Voyager :
http://www.unitedvision.fr.aditelsoft.c ... t=4&th=103

J'ai contacté la boutique au Danemark, pas de réponse... la première boutique grec refuse de livrer en France... mais la seconde accepte pour la "modique" somme de 150€ :-) !

Donc je viens de commander un Pretec. En espérant que ces infos soient utiles à d'autres, et je vous tiens au courant quand je l'aurais reçu !
Avatar de l’utilisateur
Jiba
 
Messages: 85
Inscrit le: Jeu 6 Déc 2007, 21:15
Localisation: Paris

Messagepar protechk le Dim 23 Déc 2007, 18:29

Sympa comme truc mais un peu chere pour moi !!!
Tu nous diras ce que ca donne quand tu l'auras !!
protechk
 
Messages: 29
Inscrit le: Jeu 8 Nov 2007, 10:29

Messagepar Camille le Dim 23 Déc 2007, 23:14

Juste pour notre culture générale : ".il" c'est israël. Merci wikipédia :o).
Zaurus SL-C860, Cacko 1.23, SD 2Go
Camille
 
Messages: 10
Inscrit le: Sam 1 Déc 2007, 11:20

Messagepar titeuf le Lun 24 Déc 2007, 11:15

Oh oui, Oh oui, dis nous !
Ca fait deux ans qu'on en cherche une pour l'association !!!!
Ca nous permettrait de faire les confs en utilisant le pda et non un pc portable comme à chaque fois...
PDA : 5500, C760, A300, C1000, C3200, 6000, PMA 400, N770, N810
Console : GP2X Value Pack (F100 MK2), OpenPandora (bientôt !)
Ultra-portable : Asus eee pc 701, Samsung N130
Téléphone :Neo FreeRunner, N900
Avatar de l’utilisateur
titeuf
Site Admin
 
Messages: 505
Inscrit le: Jeu 17 Nov 2005, 20:30

Messagepar Jiba le Ven 11 Jan 2008, 21:10

Je viens de recevoir l'engin. C'est bien un "compactflash => VGA". Pour le tester, il va falloir que j'attende de retourner au boulot lundi, vu que chez moi je n'ai pas de vidéoprojecteur ni de moniteur ni même de télé !
Avatar de l’utilisateur
Jiba
 
Messages: 85
Inscrit le: Jeu 6 Déc 2007, 21:15
Localisation: Paris

Messagepar Jiba le Dim 13 Jan 2008, 15:25

L'affaire se complique : le driver Cacko que je mentionnais est en fait compilé pour un noyau 2.4.18, alors que la version actuelle de Cacko utilise un 2.4.20, donc incompatible. Bien sûr, les sources ne sont pas disponibles...

Il ne me reste plus qu'à tenter une ingéniérie inverse sur ce module noyau compilé, à moins que vous n'ayez de meilleures suggestions ?
Avatar de l’utilisateur
Jiba
 
Messages: 85
Inscrit le: Jeu 6 Déc 2007, 21:15
Localisation: Paris

Messagepar Jiba le Dim 13 Jan 2008, 19:27

Il y a du progrès !

Tout d'abord une comparaison avec xdelta entre le fichier du module pour le CFXGA et celui pour le Pretec (tout deux en version Cacko noyau 2.4.18 ) indique qu'en fait seulement 2 octets diffèrent ! Donc il suffit de pas grand chose.

(je vous donne les lignes de commande, des fois que ça puisse servir à quelqu'un d'autre ; pour info xdelta est un genre de diff mais pour fichiers binaires)

Code: Tout sélectionner
xdelta delta -0 ./memory_cs.o.cfvga_iodata memory_cs.o.cacko_pretec_2.4.18 ./log
xdelta info ./log


Ensuite, objdump m'a permis de désassembler ces deux modules noyaux, et j'ai comparé les résultats avec diff. On constate alors que ce sont les "blocs" "crt_800x600x60x16" et "crt_640x480x72x16" qui ont été modifiés.

Code: Tout sélectionner
/opt/cross/arm/3.4.5-xscale-fpa/bin/armv5tel-cacko-linux-objdump -D ./memory_cs.o.cfvga_iodata


Il suffit ensuite de se reporter aux sources et cela donne le patch suivant sur memory_cs.h :

Code: Tout sélectionner
@@ -160,7 +160,7 @@
                0x04,0x0007,
                0x08,0x1ffe,
                //Clock
-               0x18,0x0000,
+               0x18,0x0011,
                0x1e,0x0002,
                //CRT,TV
                0x50,0x004f,
@@ -249,7 +249,7 @@
                0x04,0x0007,
                0x08,0x1ffd,
                //Clock
-               0x18,0x0000,
+               0x18,0x0003,
                0x1e,0x0002,
                //CRT,TV
                0x50,0x0063,


Ensuite j'ai recompilé le driver modifié en activant le débogage, et je l'ai installé. Quand j'insère la carte Pretec, le driver est bien chargé et s'initialise. J'obtiens alors un /dev/cfxga0. À noter, le "ChipID" indiqué dans les logs de débogage est le même que celui du CFXGA, donc a priori il s'agit bien d'une carte similaire :P :wink:.

Voilà, la suite du test demain quand j'aurais un moniteur et un vidéoprojecteur sous la main !
Avatar de l’utilisateur
Jiba
 
Messages: 85
Inscrit le: Jeu 6 Déc 2007, 21:15
Localisation: Paris

Messagepar Jiba le Lun 14 Jan 2008, 12:54

Je viens de tester l'engin. Ça fonctionne... à part que c'est très instable :-( ! Ça marche pendant quelques minutes (avec environ 2-3 FPS pour une utilisation CPU de 20%) ; mais les processus ont une furieuse tendance à mourir... et ça ne concerne pas forcément le processus du cfxgamirror, mais n'importe lequel (la console, le shell bash dans la console, l'interface Qt, les autres applis...).

Le seul message d'erreur que j'ai pu avoir (pendant 2 secondes, avant que la console dans laquelle j'avais lancé dmesg ne plante) parlait de "page fault".

Avez-vous des idées sur la cause du problème ? Si c'était un problème dans la communication avec la carte, les autres processus ne devraient pas être concernés, non ? Du coup je me demande si ce n'est pas une erreur "aléatoire" (mauvaise écriture mémoire, dépassement de buffer) dans le module noyau ; je crois que ce genre d'erreur à cet endroit ne pardonne pas... (mais en même temps je ne connais rien au C et encore moins à la programmation noyau, donc si quelqu'un a des infos là-dessus je suis preneur !).

Sinon, pour info, le mode "n°1" de cfxgamirror (640x480, bpp 16, 85 Mhz) donne de meilleurs résultats que le mode 0 par défaut (pareil mais avec 72 Mhz) ; dans le mode 0, une partie de l'écran (5-10%) manque à droite. Avec le mode 1, l'image est complète (il manque peut-être un ou deux pixels en haut mais on ne va pas chipoter !).
Avatar de l’utilisateur
Jiba
 
Messages: 85
Inscrit le: Jeu 6 Déc 2007, 21:15
Localisation: Paris

Ça marche !!!!!!

Messagepar Jiba le Mar 15 Jan 2008, 18:08

Après plusieurs heures de hacks, je me suis rendu compte que le problème ne venait pas du code du driver qui écrivait dans la carte Pretec... mais du code qui lisait l'image à l'écran du Zaurus (le framebuffer) dans le progamme "mirroir" (cfxgamirror) !

La lecture du framebuffer était faite avec un "mmap". Du coup j'ai réécrit cette partie de code de manière beaucoup plus basique (une simple lecture du fichier /dev/fb0) et là... ça marche :shock: :wink: !

J'ai testé la sortie VGA sur un écran LCD et sur un vidéoprojecteur ; les deux marchent parfaitement, en 640x480 ou en 800x600 (avec des bandes noires autour de l'écran du zaurus, qui reste en 640x480). J'ai utilisé QPDF pour faire une présentation, et le serveur X / Qt marche aussi.

Niveau performance, ma réécriture du driver est moins performante, et le programme "mirroir" permet d'avoir au max 3 FPS (et en consommant alors 100% du CPU). Je vais sans doute en bricoler une version "à la demande", qui envoie l'image lorsqu'on appuit sur une touche, plutôt que toute les secondes.

J'ai fait le test sur un C1000, mais ça devrait être pareil pour les C3x00.

Niveau ROM, ça fonctionne avec Cacko et ça devrait pouvoir tourner avec tous les dérivés de ROM sharp / Qtopia et noyau Linux 2.4. Pour les autres ROM, des fois que cela tenterait un "aventureux", voilà ce que j'en pense : pour les ROM à base de serveur X, il faudra réécrire le programme miroir pour qu'il lise l'écran X au lieu du framebuffer ; ça devrait rester dans le domaine du faisable pour quelqu'un qui a des compétences de programmation et du temps à y consacrer. Par contre, pour les ROM à base de noyau 2.6, il faudra réécrire le module noyau et j'ai l'impression que toute la base PCMCIA a changé entre le 2.4 et le 2.6, donc ça risque d'être difficile :-(

Donc en conclusion : le Pretec CompactPresenter est en fait la même chose qu'un CFXGA, et il fonctionne sur les Zaurus récents avec Cacko :-D.
Avatar de l’utilisateur
Jiba
 
Messages: 85
Inscrit le: Jeu 6 Déc 2007, 21:15
Localisation: Paris

Messagepar Dab le Mar 15 Jan 2008, 23:53

Ouah champion, je n'ai pas tout compris mais bravo :)
Dab
 
Messages: 193
Inscrit le: Lun 17 Avr 2006, 12:25

Messagepar titeuf le Mer 16 Jan 2008, 10:39

Cool :)
On va donc voir si on peut en avoir une...
PDA : 5500, C760, A300, C1000, C3200, 6000, PMA 400, N770, N810
Console : GP2X Value Pack (F100 MK2), OpenPandora (bientôt !)
Ultra-portable : Asus eee pc 701, Samsung N130
Téléphone :Neo FreeRunner, N900
Avatar de l’utilisateur
titeuf
Site Admin
 
Messages: 505
Inscrit le: Jeu 17 Nov 2005, 20:30

Messagepar Jiba le Mer 16 Jan 2008, 21:25

Titeuf : pour en commander un, le plus simple est d'envoyé directement un email (en anglais) à la boutique en Grèce : sales AT play247.gr et tu demandes un "Pretec CompactPresenter".

Il faut compter 150 E (paiement par PayPal) et environ 3 semaines pour la livraison.

Pour info, j'ai demandé combien il en restait après ma commande : il en restait encore 4 (fin décembre 2007).
Avatar de l’utilisateur
Jiba
 
Messages: 85
Inscrit le: Jeu 6 Déc 2007, 21:15
Localisation: Paris

Messagepar titeuf le Jeu 17 Jan 2008, 10:54

Ok, merci pour l'info.
PDA : 5500, C760, A300, C1000, C3200, 6000, PMA 400, N770, N810
Console : GP2X Value Pack (F100 MK2), OpenPandora (bientôt !)
Ultra-portable : Asus eee pc 701, Samsung N130
Téléphone :Neo FreeRunner, N900
Avatar de l’utilisateur
titeuf
Site Admin
 
Messages: 505
Inscrit le: Jeu 17 Nov 2005, 20:30

Messagepar Jiba le Jeu 17 Jan 2008, 23:17

Voilà, j'ai empaqueté les drivers ici :

http://feed.zaurusfr.org/cackophonie/feed/

C'est en deux parties : un module noyau (memory-cs-pretec) et un programme "mirroir" à lancer pour passer en mode mirroir (mirror_hack). Ces deux paquets remplacent les paquets memory-cs-pretec et mirror de Cacko (ne PAS utiliser ceux de Cacko !).

Enfin, les sources du "mirror_hack" sont ici :

http://feed.zaurusfr.org/cackophonie/sr ... 0.1.tar.gz

(c'est un comble : on trouve souvent plus facilement les binaires que les sources dans le monde Zaurus !)
Avatar de l’utilisateur
Jiba
 
Messages: 85
Inscrit le: Jeu 6 Déc 2007, 21:15
Localisation: Paris

Messagepar titeuf le Ven 18 Jan 2008, 10:35

C'est vrai que c'est souvent plus facile de trouver les binaires !
Faut dire qu'en général, pour savoir où sont les sources, faut installer OE sur son pc :(

Merci pour les paquets.
J'ai lancé la commande ce matin.
PDA : 5500, C760, A300, C1000, C3200, 6000, PMA 400, N770, N810
Console : GP2X Value Pack (F100 MK2), OpenPandora (bientôt !)
Ultra-portable : Asus eee pc 701, Samsung N130
Téléphone :Neo FreeRunner, N900
Avatar de l’utilisateur
titeuf
Site Admin
 
Messages: 505
Inscrit le: Jeu 17 Nov 2005, 20:30


Retourner vers Hardware

Qui est en ligne ?

Utilisateurs parcourant actuellement ce forum : Aucun utilisateur inscrit et 1 invité

cron