[Wiki] Site LiLiT Wiki

SlaxAdHoc

  Éditer le texte
Connexion
[tree] [diff] [-comm]

PagePrincipale > LiLiT > IdeesProjets > SlaxAdHoc

SlaxAdHoc.

Une expérience de fabrication d'un live-CD particulier basé sur Slax.

Le but est de permettre à deux Chinoises du quartier d'aller surfer en chinois à l'ASBL Santé-Nord-Sud. Le cyber-centre est en accès libre pour les habitants du quartier les après-midi (sauf le mercredi). Il propose une dizaine de PC Dell-Optiplex-GX110 (P.III, 128 MB) sous Windows.

Après y avoir essayé (sans succès) l'Ubuntu standard (Dapper Drake), Réginald m'a conseillé d'utiliser Slax... Et, de fait, la Slax Popcorn démarre en deux-trois minutes. Il y a juste quelques trucs à adapter : on peut surfer en russe, arabe, hindi,... , mais pas en chinois et il faut suivre une procédure un peu fastidieuse, pour ceux que cela n'intéresse pas, au démarrage.

En gros, il faut :

  • taper <return> au 'Boot:' prompt,
  • se logger sur 'root', mot de passe 'toor'
  • taper 'stqrtx<return>' (parce qu'il me croit sur un clavier QWERTY)

puis, on se retrouve avec un écran 640x480 avec un clavier QWERTY sans polices chinoises... %On peut améliorer un peu la situation si on :

  • utilise 'xconf' avant le 'startx' (on se retrouve en 1600x1200 ...sur un 15(17?) pouces)
  • met le clavier (sous 'X') en AZERTY avec 'setxkbmap -layout be', taper 'setxkb,qp )lqyout be' ; - ) (en fait 'setx<tab> be' fait l'affaire)
  • charge le module CJK-Display-Support dans les modules linguistiques
  • active le module avec la commande 'uselivemod' du fichier que l'on a chargé dans ~/Desktop On relance 'Firefox', et, magie, on a la BBC en chinois : - )

Bref, rien de bien compliqué... Mais, allez expliquer ça à une brave chinoise de 70 ans qui ne parle pas un mot de français et vient de découvrir l'Internet...

Heureusement, il est facile de 're-masteriser' une Slax.

Remasterisation.

1- extraire l'arborescence de l'ISO.

 wget http://merlin.fit.vutbr.cz/mirrors/slax/SLAX-5.x/special-editions/slax-popcorn-5.1.6.iso
 mkdir mnt_slax
 sudo mount slax-popcorn-5.1.6.iso mnt_slax -o loop=/dev/loop/0
 mkdir slax
 sudo cp -a mnt_slax/* slax
 sudo umount mnt_slax

Pour refaire un ISO, il suffira de faire

 cd slax
 sudo ./make_iso.sh
et de graver le ../slax.iso (par défaut) avec k3b ou votre programme de gravure favori.

Mais, avant, il faut apporter les modifications à l'arborescence 'slax/'...

2- Changer les paramètres de 'Boot:'.

On peut éviter le login en lançant directement 'X' en utilisant le cheatcode ad-hoc. Pour cela, on édite le fichier 'isolinux.cfg' (qui est, en fait, le 'lilo.conf' du live-CD). Par exemple, la ligne

 append vga=769 max_loop=255 initrd=boot/initrd.gz ...

deviendra

 append autoexec=xconf;startx vga=769 max_loop=255 initrd=boot/initrd.gz ...

Comme cela m'ennuie que 'xconf' met le système en 1600x1200 (qui fonctionne, mais les caractères sont quand même fort petits...), j'enlève le 'xconf;' des 'cheatcodes' et je mettrai un /etc/X11/xorg.conf adapté dans '/rootcopy'. Cela me permettra aussi d'y configurer le 'clavier belge'.

J'hésite à supprimer le 'prompt' du boot et le 'timeout'. Si le CD n'est destiné qu'à surfer en chinois sur un Dell-Optiplex-GX110, je peux le faire, mais on ne pourra plus faire que ça. Tandis que si je laisse le 'prompt' et que je raccourcis le délai, on pourra encore se servir du CD sur d'autres machines en suivant la 'procédure manuelle' tout en gardant la procédure automatique pour cet ordinateur particulier... Il est peu probable que la personne à qui est destiné ce CD se serve jamais de la procédure manuelle, mais bon...

3- Chargement automatique de modules.

Si le module existe, c'est très simple, il suffit de copier le fichier dans le répertoire 'modules/' et le tour est joué.

 wget ftp://ftp.slax.org/SLAX-5-modules/multilang/CJK_Display_Support_optimized_1_0-3.mo
 sudo cp CJK_Display_Support_optimized_1_0-3.mo slax/modules/

4- Bidouillages.

Il est aussi possible de remplacer (ou de créer) des fichiers dans l'arborescence au démarrage en les mettant dans le répertoire 'rootcopy/'...

Par exemple, un clavier belge pour 'loadkeys'

 usr/share/keymaps/i386/azerty/be-latin1.kmap.gz
 usr/share/keymaps/i386/include/azerty-layout.inc.gz
 usr/share/keymaps/i386/include/linux-with-alt-and-altgr.inc.gz
 usr/share/keymaps/i386/include/euro.inc.gz

et mettre

 loadkeys /usr/share/keymaps/i386/azerty/be-latin1.kmap.gz

dans root/.bashrc (ou, mieux, ...à la bonne place)

C'est là, par exemple, que je vais mettre la configuration 'X' que je veux avoir sur l'Optiplex. Je récupère la configuration que m'a créé 'xconf', mais je veux un clavier belge et une résolution 1024x768 (et 800x600). Donc, crée/copie puis édite le fichier 'rootcopy/etc/X11/xorg.conf' et y mets :

 Option          "XkbLayout"     "be"       (dans la section 'InputDevice')
 Modes   "1024x768" "800x600"           (dans 'Screen':dans toutes les sous-sections 'Display')

Je surfe un peu, crée quelques 'marque-pages' dans la 'barre d'outils marque-pages'. Je vais dans les Edition->Préférences de Firefox, j'efface la cache. Je fais une copie de root/.mozilla/* que je mettrai aussi dans 'rootcopy/root/.mozilla'.

5- Saisie de caractères chinois....

Là, en principe, si je ne me suis pas trop gouré, je peux graver un live-CD qui démarre sous 'X' avec un clavier belge, l'affichage des polices chinoise, un Firefox avec des 'marque-pages' vers la BBC en chinois, VOA-News, WikiPedia en chinois, Google, gmail...

Reste l'introduction de caractères chinois... Pour cela, il y a SCIM, mais il n'y a pas encore de module Slax...

Heureusement, il y a un utilitaire 'deb2mo' qui permet de transformer des fichier .deb en modules Slax. La compatibilité entre Slackware x.y et Debian u.v n'est pas assurée, mais cela vaut la peine d'essayer...

En allant chercher les versions 'scim_1.4.4-1ubuntu12_i386.deb' dans

 http://archive.ubuntu.com/ubuntu/pool/main/s/ scim*

ça a l'air de fonctionner, sauf que je ne parviens pas à l'activer par <ctrl><espace>...

Changement de tactique. Je cherche 'scim+slax' et trouve 'slax-popcorn-5.1.6-jp.iso' à côté de 'Popcorn' dans une page (incompréhensible) en japonais...

Un petit coup d'oeuil dans l'.iso et je récupère les modules dans le répertoire /modules. ...Même problème... SCIM ne s'active pas, malgré le 'export GTK_IM_MODULE=scim'...

En fait, 'im_scim' n'est pas renseigné dans

 /etc/gtk-2.0/gtk.immodules

En principe, c'est un fichier sensé être généré automatiquement (lors de l'installation?) par 'gtk-query-immodules-2.0'. Mais, rien ne semble empêcher de l'éditer et de mettre une version corrigée dans /rootcopy/etc/gtk-2.0. Et, bingo!, ça fonctionne. : - ) ...sauf que le Japonais n'a pas prévu d'utiliser scim-pinyin.

Je prends le .deb dans le dépôt Ubuntu, 'deb2mo', croise les doigts et ...ça fonctionne. Dans la foulée, je prends aussi 'scim-chewing' (autres méthodes chinoises) et scim-tables (autres méthodes asiatiques et autres).

Dans slax-popcorn-5.1.6-jp.iso, il y a même un module 'tomoe' (image) qui permet la saisie de caractères chinois avec la souris. : - ) L'ordre et le sens des traits semblent avoir de l'importance (animations). Pour les catactères les plus simples, ça va. Pour les plus compliqués...

Il y a encore quelques trucs qui m'échappent, mais 'parfois', j'arrive à écrire 'Beijing' avec la souris (sur tomoe) en plus du 'pinjin'...

6 Un clavier virtuel 'universel'?.

Un autre truc qui serait intéressant dans un cyber-centre international, ce serait d'avoir un clavier virtuel universel. Je n'en ai pas trouvé. Ce qui se rapproche le plus est xvkbd ou gtkeyboard, mais ils ne supportent pas (/semblent pas supporter) tous les claviers supportés par 'X'. C'est bizarre, parce qu'en fait, ça 'doit' être simple. Toute la machinerie pour transformer un 'keycode' en 'keysym' puis en 'UTF-8' après avoir fait :

 setxkbmap -layout be         (ru, ara,... tjrs 'be' d'abord pour le récupérer dans l'historique!)

existe... (un truc du genre XKeycodeToKeysym() devrait aider)

7 Et le pendjabi?.

Quelques jours plus tard, je rencontre d'anciens voisins d'origine indienne (du côté du Cachemire?) et qui lisent/écrivent le pendjabi...

Ce n'est pas de base dans la Slax, mais, de nouveau, c'est très facile à faire, il suffit d'aller chercher les polices indiennes dans les dépôts Ubuntu, de transformer les .deb en .mo avec 'deb2mo' et le tour est joué. On peut désormais surfer en penjabi, hindi, télougou, ourdou,... Avec 'scim-additional-tables', on peut même écrire en phonétique (et avec d'autres méthodes) sur nos claviers (le problème, c'est que je ne trouve pas la documentation et que donc, si ce n'est pas 'évident' pour un Indien, je ne sais pas encore si ce sera utilisable). Avant de graver, je mets aussi quelques 'signets' vers Google en penjabi, 5abi, wikipedia,...

8 Le Thaï... (siamois).

Comme Emmanuel a un copain dont la femme est thaïe, c'est l'occasion de se lancer...

Les polices ont l'air de se trouver par défaut sur l'Ubuntu et la Slax, mais le rendu des pages de la WikiPedia ou de la BBC n'a pas l'air correct... (pour savoir quels fichiers de polices 'X' utilise, Serge propose 'xlsfonts' et 'xset -q'; avec 'xfd', on peut visualiser le contenu d'une police). Ce qui suit est probablement du bricolage. D'un côté, il faut que les polices nécessaires soient sur le système; d'un autre côté, s'il y en a une mauvaise, il ne faut pas que le système la choisisse...

En fait, me rendu est mauvais parce que Firefox pense devoir utiliser une police à chasse fixe alors que les caractères thaïs sont construits à partir de plusieurs dont certains ont une taille nulle (ou quelque chose comme ça) (comme si notre 'é' était construit avec <e><backspace+'>). En allant dans

 'Firefox -> Edition -> Préférences -> Contenu -> Police par défaut (Avancé)

on désactive

  (o) permettre aux pages de choisir leurs propres polices au lieu de celles choisies ci-dessus

et le résultat devient bon. Enfin, presque... Pour les champs de saisie texte, comme par exemple, dans Google, ce n'est toujours pas terrible. La solution est de créer un fichier userContent.css dans le répertoire ~/.mozilla/firefox/*.default/chrome/ et y mettre quelque chose du genre :

 input {
   /* Set font size and family of text fields */
   font-family: verdana, courier new, courier, sans-serif; !important;
   font-size: 20px !important;
   }
 textarea {
   /* Set font size and family of text fields */
   font-family: verdana, courier new, courier, sans-serif; !important;
   font-size: 20px !important;
   }

Une autre méthode consiste(rait) à trouver la police fautive et à la supprimer. Dans ce cas-ci, il semble que de retirer 'ttf-thai-tlwg' (et/ou t1-thai-tlwg?) règle le problème sans les manipulation ci-dessus... (Mais, il faut enlever 'gnome-desktop'...). Pour trouver la police fautive, j'ai utilisé un 'Gtk::FontButton.new()' en 'ruby', mais 'gedit' aurait dû le faire aussi... Mais pourquoi diable le 'Thai Linux Working Group' a(urai)t-il mis une police foireuse dans Ubuntu?

A noter que SCIM propose 'presque' un clavier thaï à partir du clavier belge. ...Il faut taper sur le 'q' pour avoir le caractère en position 'a'... Si on fait 'setxkbmap -layout th' dans un shell, on a le vrai clavier thaï sans même utiliser SCIM. Si on utilise un 'layout us' avec SCIM-thaï, c'est le bon clavier; il faudrait donc faire une table SCIM-thaï sur un clavier belge...

gmail fonctionne très bien même sans la modification du fichier userContent.css.

Un autre truc bizarre dans l'écriture thaïe, c'est qu'ils ne sont pas obligé de séparer les mots. Il existe des programmes spéciaux pour savoir où on peut couper le texte (cttex,... ). Voir aussi l'alphabet thaï sur la wikipedia.

9. Tester un liveCD.iso sans rien graver.

Philippe T. (de Bawet), propose quelque chose du genre

 $ qemu -boot c -cdrom Desktop/IndianSlax.iso

Ça fonctionne (assez) bien.

Conclusions.

Et, donc, en quelques coups de cuillières à pot, je transforme les 'vieux' PCs de ce cyber-centre (très ouvert) en écrans sur le monde : on peut y surfer en arabe, en hindi, coréen, chinois, géorgien, thaï,... (en Windows, il me semble que le russe et l'arabe s'affichait déjà)

(Quand j'aurai un clavier virtuel universel, ce sera même encore mieux)

Le contenu de cette page est librement éditable et n'engage donc que son/ses auteur(s). LiLiT asbl n'en assume en aucun cas la responsabilité et se réserve le droit de retirer tout contenu jugé inaproprié.

Éditer Le Texte de cette page (dernière édition 19/08/2006 06h12 par Christophe Cattelain) [diff])
Version: 20

Arborescence de la page :: Version imprimable :: Liste des pages :: Dernières modifications :: Cacher les commentaires


Remonter