Born to be wired
689597 visites
Uptime 8 days

Archive pour novembre 2009

 Pong Clock, le spin-off

 18 novembre 2009  Bricolage, Projet Arcade  5 commentaires
Pour un peu, on pourrait croire que je prône mon propre culte de la personnalité...

Angoissé par la peur de l’échec dans la reconversion du PC portable en horloge Pong, je cherchais depuis un moment des idées alternatives de recyclage, histoire de me replier sur un autre projet qui permettrait de sauver l’ordinosaure d’une lente agonie.

Jusqu’au jour où l’idée de génie fut apportée par Sylvain : un cadre photo numérique !

Aujourd’hui je peux dire que l’idée est pleinement exploitable sur ce type de machine. SVGAlib est fait pour ça. Mieux, le programme qui contenait les lib SVGA compilées pour DSL, nommé zgv, est, si vous vous rappelez du billet précédent, un visualiseur d’images ! Cerise sur le gâteau, il peut même afficher des diaporamas !

J’ai fait le test en 10 minutes : sur le portable, si je ne force pas un affichage en 320×240, mes images s’affichent, mais sont parfois décalées de quelques pixels sur la droite pour une raison inconnue. Éventuellement à tweaker légèrement en fonction du portable. Pour info, zgv a un pendant sous X11 nommé xzgv.

J’enregistre mes réglages sur DSL de la manière suivante (force la résolution, le nombre de couleurs, et les paramètres de zoom) :

alias zgv='/opt/zgv/zgv2 -p -j -z -m "320 240 8"'

Je peux ensuite lancer un diaporama avec la commande suivante :

zgv /path/to/my/pictures/*

Et voila, la preuve en image, un cadre photo numérique artisanal réalisé sans effort. :)

Pour un peu, on pourrait croire que je prône mon propre culte de la personnalité...

Pour un peu, on pourrait croire que je prône mon propre culte de la personnalité…

PS : pas de panique, pour le moment ma roadmap en ce qui concerne le laptop est toujours l’horloge Pong. ;)

 Le pixel infernal

 17 novembre 2009  Bricolage, Projet Arcade  3 commentaires
Mince, figlet me dit que je devrais aller me coucher !

Dans l’article précédent, je détaillais mes premières étapes de la transformation d’un vieil ordinateur portable en horloge Pong, à savoir l’installation d’un Damn Small Linux sur le système.

L’étape suivante n’est pas de tout repos, puisqu’il faut maintenant afficher à l’écran les graphismes de mon choix. En l’occurrence, un terrain, deux raquettes carrées, une balle carrée, et un score qui évolue en fonction de l’heure. Mais ne plaçons pas la charrue avant les bœufs, autant commencer doucement, et tenter d’afficher dans un premier temps un modeste pixel.

Car à ce stade, DSL démarre en mode console.

Elle est belle, ma console, elle est belle !

Elle est belle, ma console, elle est belle !

Après un peu de nettoyage dans les scripts de démarrage de DSL, j’obtiens beaucoup moins d’erreurs lors du boot. À terme, mon but est d’avoir un affichage le moins verbeux possible pendant le boot, histoire de donner à la future horloge un petit côté appliance. Comprenez par là que les messages affichés pendant la phase de démarrage sont totalement inutiles aux yeux des non-informaticiens, il sera donc intéressant d’en diminuer le nombre, tout en gardant la possibilité de les afficher moyennant la manipulation appropriée (un paramètre passé au noyau, par exemple). Mais ceci est purement cosmétique et ne constitue pas la priorité n°1.

Nous sommes donc en mode console. Le mode console, c’est une division de l’écran en 80 colonnes et 25 lignes, chaque case située à leur intersection pouvant afficher exactement un caractère, ni plus ni moins. C’est donc fait pour afficher du texte, de manière (quasi) exclusive.

Alors, grâce à des bidouilles comme figlet, déjà utilisé sur mon minitel, il est possible de dessiner avec les caractères de la console, mais on est très loin de maîtriser ce qui sera affiché au pixel près.

Mince, figlet me dit que je devrais aller me coucher !

Mince, figlet me dit que je devrais aller me coucher !

Alors, comment diable afficher un simple pixel sur l’écran ? Linux utilise généralement un serveur X11 pour tout ce qui touche au mode graphique. C’est sur X11 que vient se greffer le gestionnaire de fenêtres qui affiche à l’utilisateur un bureau ergonomique et coloré. Bien que le gestionnaire de fenêtres sur DSL soit extrêmement léger, le pauvre portable avec ses 8 Mo de RAM n’a pas les ressources suffisantes pour en profiter. J’ai quand même fait le test pour rigoler, je peux afficher un bureau (640×480, 16 couleurs) en moins de 3 minutes, le tout étant suivi par une interminable période de swap, pendant laquelle il est inutile d’espérer lancer la moindre commande. En définitive, on abandonne complètement l’idée.

Le bureau, c'est possible, à condition d'avoir le temps...

Le bureau, c’est possible, à condition d’avoir l’éternité devant soi…

Dans mon cas, le salut ne sera pas apporté par X11. Il me faut quelque chose de plus léger pour afficher mon pixel. Quelque chose qui me permette de programmer des applications graphiques sans passer par X11. Quelque chose comme SVGAlib.

Caution - Geek content

Attention, à partir d’ici, ça devient un poil plus technique. Le passage qui va suivre est susceptible de déclencher des nausées, voire des vomissements, chez les non-informaticiens. Je décline toute responsabilité.

SVGAlib est une bibliothèque graphique de bas niveau pour Linux. Tout à fait dans l’esprit de ce dont j’ai besoin. En plus, le site fourmille d’exemples. Je recopie le code permettant d’afficher un simple pixel à l’écran et le compile dans la foulée.

#include <stdlib.h>
#include <vga.h>

int main(void)
{
	vga_init();
	vga_setmode(G320x200x256); // Passe l'écran en résolution 320x200, 256 couleurs
	vga_setcolor(4); // On sélectionne la couleur rouge
	vga_drawpixel(10, 10); // On dessine le fameux pixel

	sleep(5); // On attend 5 secondes...
	vga_setmode(TEXT); // On repasse en mode console

	return EXIT_SUCCESS; // Et on sort fièrement dans la bonne humeur
}

À ce stade, transférer le programme compilé pour le tester sur le portable est une activité relativement chronophage. Rappelez-vous : pas de lecteur CD, pas de carte réseau.

Je décide donc d’installer une copie de DSL dans une machine virtuelle (qui elle est équipée d’une carte réseau virtuelle) et sur laquelle je peux transférer mes versions compilées à grands coups de netcat.

Bien que la compilation (en environnement Debian) se passe sans trop de problèmes bloquants, la première exécution du programme dans la machine virtuelle ne se termine pas par un franc succès. Les libs SVGA sont absentes par défaut dans DSL. Qui pourrait en faire un reproche, s’agissant d’une distrib allégée ?

À tout hasard, je choisis de copier les libs de ma Debian dans DSL. Cette solution barbare fait lamentablement planter le programme avec pour toute sortie la célèbre Segmentation Fault. Je ne saurais pas expliquer exactement pourquoi, il existe de nombreuses raisons pour que cette opération ne fonctionne pas. Les libs ne sont pas optimisées pour 486, elles ne sont pas compilées pour fonctionner sur un noyau 2.4, elles sont compilées avec des options propres à Debian, etc… Un coup dans l’eau.

À cet instant, je suis confronté au moment d’angoisse que tout développeur a connu, quand il sait que toutes les solutions simples n’ont pas fonctionné, et qu’il va falloir sortir l’artillerie lourde sans savoir dans quelle direction tirer. J’en profite pour remercier tipeon, qui a toujours de bonnes idées lorsque je lance des appels à l’aide à la cantonade sur les forums ;)

Je commence à envisager de cross-compiler ces libs moi-même, quand, au détour d’une recherche sur le net, entre deux sites pornographiques, je découvre sur cette page un visualiseur d’images utilisant SVGAlib et porté sur DSL : ZGV. Les libs étant comprises dans l’archive, je les déploie sur ma machine virtuelle, relance mon programme, et constate avec le plus grand bonheur un écran vierge, à l’exception d’un petit pixel rouge en haut à gauche de l’écran. Bingo ! :)

C’est un petit pixel pour le geek, mais un bitmap géant pour la communauté.

À partir de ce moment, le concept est démontré, il est donc possible d’utiliser SVGAlib pour afficher de manière instantanée à peu près n’importe quel graphisme sur commande à partir de la console. La preuve avec ce second exemple qui sera plus parlant qu’un bête pixel rouge :

Un joli dégradé de bleu, merci SVGAlib !

Un joli dégradé de bleu, merci SVGAlib !

Voila qui termine la partie qui à mon sens pouvait poser le plus de difficultés. Le reste, bien que pas forcément évident au premier abord, pourra se résumer à un peu de programmation et un peu de bon sens. Mais je ne manquerai pas de le détailler.

À bientôt pour la suite des aventures du laptop qui ne voulait pas mourir ;)

 Le recyclage, c’est l’avenir

 17 novembre 2009  Bricolage, Projet Arcade  2 commentaires
Windows 3.1, un OS que les moins de vingt ans ne peuvent pas connaître...

Ce week-end, j’ai eu l’occasion de concrétiser quelque chose qui me tenait à cœur depuis longtemps : passer une nuit torride avec Gemma Atkinson donner une seconde vie à un ordinateur portable cacochyme. Chacun ses fantasmes, l’un n’empêche pas l’autre.

Cela fait effectivement un long moment que je guette l’opportunité de transformer une antiquité informatique en horloge Pong, objet de décoration post-vintage affichant le sommet de la geekitude. Oui, le mot existe, en tous cas selon Google.

J’ai donc retroussé mes manches et inspecté le matériel à ma disposition : deux portables Compaq Contura. Des ordinosaures portables en puissance, équipés d’un processeur 486 cadencé à 33 MHz, de 8 Mo de RAM, et respectivement 250 et 350 Mo de disque dur. En d’autres termes, n’importe quel téléphone mobile d’aujourd’hui affichera plus de puissance de calcul. Je remercie au passage Kiwi et HKI pour m’avoir permis de disséquer les deux bécanes.

Après un premier état des lieux, un des laptops boote sur un magnifique bureau Windows 3.1, le second ne daigne pas démarrer. Les batteries ainsi que les piles au lithium sont mortes dans les deux cas.

Windows 3.1, un OS que les moins de vingt ans ne peuvent pas connaître...

Windows 3.1, un OS que les moins de vingt ans ne peuvent pas connaître...

Suite à ce constat, je décide de mettre le portable inerte de côté, en conservant toutefois son disque dur qui servira de base pour les opérations. Foutu pour foutu, autant flinguer ce disque là avec mes expérimentations en premier.

Depuis le temps que je réfléchis à ce projet, j’ai dans l’idée qu’il me faut un OS minuscule mais efficace. Traduisez : un Linux. Je me tourne assez rapidement vers Damn Small Linux (DSL), une distrib dont la taille du Live CD ne dépasse pas 50 Mo, optimisée pour occuper une place réduite en mémoire et tourner ainsi sur les plus petites configs.

Ma décision est prise rapidement, exit DOS/Windows 3.1 et place à un système d’exploitation digne de ce nom.

Un premier problème se présente toutefois rapidement : comment installer un système d’exploitation de 50 Mo sur une machine qui n’a ni lecteur CD, ni carte réseau ? Examinons les possibilités :

  • Le diviser en 35 disquettes de 1.44 Mo, booter sur la première disquette, passer 2 heures à lire chaque disquette une par une et tout recommencer lorsque l’opération foire à la 34ème. Non, ça sent le vécu, très peu pour moi.
  • Transférer le contenu du CD par câble série. À 9600 bps, je peux avoir mes données en 12 heures en comptant uniquement le payload. Mieux vaut oublier. En plus il faudrait d’abord booter sur un Linux qui piloterait le port série, une sorte de concept de la poule et le l’œuf réactualisé. Mieux vaut trouver une méthode qui évite les migraines.
  • Démonter le disque dur, le brancher dans une carcasse de PC desktop équipé d’un lecteur CD et au besoin d’une carte réseau, et lancer l’installation à partir de ce poste. Voila une solution jouable.
Le disque dur et son adaptateur, prêt à être connecté

Le disque dur et son adaptateur, prêt à être connecté

En fouillant dans mes pièces détachées, je retrouve une nappe IDE 3.5″ vers 2.5″ qui m’a été généreusement donné par karamilo, que je remercie. Sans cet adaptateur, impossible d’aller plus loin.

Je branche donc le disque dans une des carcasses de PC qui squattent mon séjour. La poisse fait son œuvre : je flingue une alim silencieuse récente pendant l’opération. :(

Montage temporaire pour l'installation de DSL

Montage temporaire pour l'installation de DSL

Heureusement, ce ne sont pas les alims qui manquent dans mon capharnaüm. Après remplacement, le PC desktop peut booter sur le CD d’installation de DSL. L’installation est effectuée en quelques minutes.

Vient enfin le moment de vérité : le portable va-t-il démarrer correctement DSL une fois le disque dur reconnecté ? Avec Windows, en général, rien n’est moins sûr. Avec Linux, en général, c’est du gâteau, pour peu qu’on ait un noyau générique et des périphériques pas trop hors normes. Cette fois-ci ne fait exception à la règle. :)

Damn Small Linux en plein processus de démarrage

Damn Small Linux en plein processus de démarrage

La première étape est donc terminée : le vieillissant portable et son non moins vieillissant Windows 3.1 font peau neuve avec un Damn Small Linux qui me servira de base pour afficher l’horloge Pong si chère à mes rêves.

Mais cela, nous le verrons un autre jour. Stay tuned…

PS : je m’excuse pour la piètre qualité des photos et promets d’investir dans un appareil numérique digne de ce nom très bientôt.

 C’est fou ce qu’on peut trouver dans les poubelles !

 11 novembre 2009  Bricolage  3 commentaires
Les gens jettent n'importe quoi n'importe où, et moi je récupère tout et n'importe quoi.
Les gens jettent n'importe quoi n'importe où, et moi je récupère tout et n'importe quoi.

Les gens jettent n'importe quoi n'importe où, et moi je récupère tout et n'importe quoi.

Moi qui me disais justement que je me construirais bien un serveur de sauvegardes en complément, je tombe justement sur 4 carcasses de PC au coin de la rue devant chez moi. Ni une ni deux, je les remonte dans mon humble demeure pour les autopsier à l’abri des regards indiscrets, tel un Léonard de Vinci des temps modernes.

Verdict : ce sont des vielles bécanes de la catégorie des ordinosaures (en l’occurrence de l’époque Pentium III/SDRAM), pas encore branchées, assez complètes dans l’ensemble. Ça serait bien le diable si je ne trouvais pas un moyen de les recycler en tout ou partie. J’ai déjà quelques idées en vrac, selon les possibilités :

  • Un serveur dédié de sauvegardes
  • Un serveur dédié domotique
  • Un petit media center
  • Un PC dédié à mes futurs montages expérimentaux à base de PIC.
  • Un pilote plus élaboré pour les robots Youpi.
  • Une structure de base pour une autre mamecab où même simplement une mini-cab (pourquoi pas avec le Hotrod)
  • Un PC d’appoint avec suite bureautique Open Office (ainsi que son pare-feu intégré :) ) et/ou quelques jeux pas gourmands (Half-Life/Counter Strike, Unreal Tournament, World of Goo, Braid, Wormux…)
  • Un début de cluster pour concurrencer Google ou casser des clés RSA. (Je rigole :) … Quoique…)
  • Ou tout simplement un surplus de pièces de rechange à rajouter au stock existant.

Et puisque ce sont des machines d’un autre âge, je compte bien profiter de leur consommation électrique réduite. Si un environnement graphique est requis, je pense qu’un petit Xubuntu / Fluxbuntu sera en mesure de leur redonner une seconde jeunesse. Sinon, une Debian en mode texte fera, comme d’habitude, parfaitement l’affaire.

 My other t-shirt is clean

 10 novembre 2009  Général  Aucun commentaire
letn-hillvalley
... ... ... ...

« ... ... ... ... »

J’avais évoqué dans cet article l’existence de t-shirts à tendance geek et/ou vidéo-ludique en vente chez La Fraise, que j’avais d’ailleurs fini par acheter. L’un d’entre eux a même failli m’empêcher d’entrer dans un pub de campagne gardé par un vigile originaire d’Europe de l’est, je vous laisserai deviner lequel.

Je reviens aujourd’hui pour signaler la présence d’un autre site basé outre-Manche, spécialisé dans un domaine similaire, à savoir le t-shirt de qualité à tendance geek. Last Exit To Nowhere, c’est son nom,  n’a aucun rapport avec les jeux vidéo, mais vend des t-shirts arborant les marques fictives décelables dans les films hollywoodiens, principalement de la période 80’s/90’s.

Les références sont parfois très subtiles, à tel point que le non-initié ne remarquera rien, alors que le fan inconditionnel vous suppliera de vous donner l’adresse du lieu bénit des dieux où vous avez eu la chance d’échanger vos deniers durement gagnés contre la sainte relique que vous portez. À vous ensuite de négocier la somme d’argent que votre interlocuteur sera prêt à débourser contre cette précieuse information.

En ce qui me concerne, j’ai trouvé que les produits sont de très bonne qualité, les tailles correctement proportionnées, et les motifs retenus originaux. C’est pour cette raison que je n’ai pas pu résister à m’offrir le logo de Nakatomi (Piège de cristal) et de l’OCP (Robocop). Après mûre réflexion, je suis également en train de craquer pour celui de Hill Valley High School (Retour vers le futur) et il y a fort à parier qu’il finisse dans mon panier d’ici quelques jours.

letn-nakatomiletn-ocpletn-hillvalley

Un dernier détail amusant, bon nombre de logos disponibles sont liées à des entreprises fictives plutôt badass, ce qui n’est pas pour me déplaire. Quelques exemples parmi tant d’autres :

  • ED-209 / OCP (Robocop)
  • Weyland-Yutani (Alien [1-4], Alien Vs *)
  • Rekall (Total Recall)
  • Cyberdyne Systems (Terminator [1-4])

 It’s a kind of magic (world)

 8 novembre 2009  Projet Arcade  Aucun commentaire
Votre serviteur pris en flag en train d'essayer de perdre du poids sur Pump Pro

Avec le retard qui me caractérise, je voudrais relater brièvement le meeting Lyonnais des membres du fameux portail francophone de l’arcade Gamoover, meeting qui avait lieu dans la soirée du 8 octobre dernier. Un mois jour pour jour après l’évènement, il est grand temps pour moi d’écrire quelques mots à ce sujet.

Cette soirée fut l’occasion de réunir quelques membres du forum, tous amateurs d’arcade, de retrogaming et de gaming tout court, autour de quelques bornes.

Votre serviteur pris en flag en train d'essayer de perdre du poids sur Pump Pro

Votre serviteur pris en flag en train d'essayer de perdre du poids sur Pump Pro

Les protagonistes se sont donc retrouvés devant le Magic World à Lyon 5ème. L’occasion pour la plupart d’entre eux de coller un visage sur un pseudo, d’échanger du matériel, de discuter de passions communes, de frimer avec les guns arcade, et de se mettre quelques bourre-pifs par joysticks interposés :)

Ce fut également l’occasion de sortir du placard nos t-shirts de geeks pour les arborer fièrement sur nos épaules.

Malgré la faible surface de la salle, celle-ci reste bien équipée :

  • Outrun 2 SP (linkée à 4 joueurs)
  • Pump It Up Pro (a.k.a « La machine à transpirer »)
  • The House Of The Dead 4 (a.k.a « Shake shake shake ton uzi »)
  • Virtua Fighter 5 (a.k.a « Un bourre-pif dans ta tronche »)
  • Guitar Hero Arcade (a.k.a « Je fais des solos comme Slash »)
  • Time Crisis 4 (a.k.a « Je me planque derrière un pilier puis je fais un headshot »)
  • Mario Kart Arcade GP 2 (a.k.a « Tu la sens ma carapace bleue ? »)

Ajoutons à cela le flipper Shrek avec son mini-flip intégré et une table de air hockey, et on obtient tout ce qu’il faut pour passer une bonne soirée. A titre personnel, je regrette juste un peu que la salle ne compte pas de références du genre Street Fighter ou Metal Slug, mais on ne peut pas tout avoir.

En résumé, une bonne soirée de défoulement avec la rencontre de plein de gens sympathiques et passionnés. Le topic rétrospectif se trouve ici.

Amis Lyonnais, n’hésitez pas à vous faire connaitre sur Gamoover pour participer aux prochaines rencontres.