Debian sur Gdium
Installation et configuration de Debian sur un Gdium, fin juillet 2010 (donc avec GDIUM 2ème version). Les instructions de base sont ici. Elles marchent, mais il y a certaines améliorations possibles. Les instructions sont pour la version 7.0 (Wheezy).
Préparation
Les opérations se font à partir du système G-Linux d'origine.
Installer debootstrap sur Mandriva G-Linux::
urpmi debootstrap
Insérer la clé USB sur un des ports latéraux. Elle doit normalement apparaître comme /dev/sdc (sda est la G-key et sdb le lecteur de cartes SD).
Partitionnement
Créer au moins, avec fdisk:
- une partition sdc2 de type 83 (Linux)
- une partition sdc3 de type 82 (Swap) d'au moins 512 MB (pour permettre l'hibernation)
- optionnellement, une partition sdc1 FAT32 (type 0b) pour utiliser la clé normalement
Pour créer les filesystems::
mkdosfs /dev/sdc1 mke2fs -j -L mips /dev/sdc2 mkswap -L swap /dev/sdc3
Installation de base
Monter sdc2 sur /mnt, puis lancer l'installation du système de base::
mount -t ext3 /dev/sdc2 /mnt debootstrap squeeze /mnt http://ftp.belnet.be/debian
Installation kernel et du nécessaire pour démarrer
cp /boot/* /mnt/boot cp -r /lib/modules/2.6.29.6-gdium3-2.2mnb /mnt/lib/modules find /mnt/lib/modules -name '*.gz' -exec gunzip {} \;
Ensuite, créer un wrapper pour init comme suit dans /mnt/sbin/finit-mdv et le rendre exécutable::
echo > /mnt/sbin/finit-mdv <<EOF #!/bin/sh exec /sbin/init EOF chmod a+x /mnt/sbin/finit-mdv
Le système est maintenant capable de démarrer sans modification du paramétrage de PMON. Le Gdium reste donc utilisable avec une G-Key. Cependant, il reste un peu de travail pour pouvoir faire quelque chose d'utile.
Note pour la suite: avec un kernel sauce Debian (packagé), installer le paquet initramfs-tools et créer un ramdisk avec la commande update-initramfs -c -k 2.6.29.6-gdium3-2.2mnb , et copier le kernel ainsi que le ramdisk correspondant, dans /boot/vmlinux.32 et /boot/initrd.gz (ça doit être une copie: PMON ne supporte pas les symlinks).
Configuration initiale du système
Toujours depuis G-Linux, avec notre Debian montée sur /mnt, se chrooter dans celle-ci::
mount --bind /proc /mnt/proc mount --bind /sys /mnt/sys mount --bind /dev /mnt/dev mount --bind /dev/pts /mnt/dev/pts chroot /mnt
Configurer aptitude (et prendre en compte les signatures des packages):
aptitude update
Configurer les locales (sélectionner une locale UTF-8, dans mon cas: fr_BE.UTF-8):
aptitude install locales dpkg-reconfigure locales
Se configurer un mot de passe et un utilisateur initial::
passwd adduser julien
Configuration diverses de bas niveau
Ajouter le contenu suivant dans /etc/modules::
gdium_laptop i2c_gpio sm501_gpio lm75 hwmon_vid hwmon eeprom i2c_dev
Configurer /etc/fstab comme suit::
proc /proc proc defaults 0 0 LABEL=mips / ext3 defaults 0 1 LABEL=swap none swap sw 0 0
Installer le paquet lm-sensors et le configurer en créant un fichier /etc/sensors.d/lm75. Garder le paramètre 60/55 de Mandriva en y écrivant les lignes suivantes::
chip "lm75-*" set temp1_max 60 set temp1_max_hyst 55
Le paquet cpufrequtils gèrera les fréquences du processeur. Les défauts sont bien, sinon on peut créer /etc/default/cpufrequtils.:
aptitude install cpufrequtils
Réseau
Inscrire un nom dans le fichier /etc/hostname .
Ajouter les lignes suivantes dans /etc/network/interfaces::
auto lo iface lo inet loopback allow-hotplug eth0 iface eth0 inet dhcp
Pour le wifi, ajouter la section non-free dans /etc/apt/sources.list, puis installer le nécessaire::
aptitude install firmware-ralink wireless-tools
La carte est gérée par le module rt61pci.
Horloge
Le réglage de l'horloge hardware en UTC ou heure locale se fait via la variable UTC dans /etc/default/rcS et le fuseau horaire dans /etc/timezone. Pour changer le fuseau horaire::
dpkg-reconfigure tzdata
Finition
Installer le paquet console-tools et configurer une keymap adéquate (j'ai dû aller dans la liste complète des keymaps pour retrouver les keymaps PC. Pour reconfigurer après coup::
dpkg-reconfigure console-data
Finalement, je ne peux pas vivre sans less, vim et ssh::
aptitude install less vim ssh
Le système est maintenant prêt à fonctionner, et on va pouvoir le fignoler pendant qu'il tourne. On peut donc arrêter le système, insérer la clé à la place de la G-Key et redémarrer. Il reste juste un petit problème avec le ramdisk et l'écran de boot graphique: faire Ctrl-Alt-F1 quand le boot a fini pour obtenir une console texte. Edit: regénérer un ramdisk façon Debian résoud ce problème.
Interface graphique et bureau LXDE
Restons simples. Le Gdium peut supporter un bureau GNOME complet (je l'ai fait) mais avec la lenteur de la G-key, il lui faut un peu de temps pour tout charger.:
aptitude install xserver-xorg-video-siliconmotion aptitude install lxde aptitude install wicd aptitude purge gdm
Wicd est une applet GTK pour Network Manager; il n'a pas de dépendance sur GNOME, donc est plus léger. Au passage, la configuration de wicd-daemon permet d'ajouter des utilisateurs au groupe netdev.
GDM s'est invité lors de l'installation, car recommandé par LXDE. La prochaine installation via aptitude va encre supprimer tout ce qu'il a embarqué avec lui, et il restera à purger tous les paquets désinstallés.
Le kernel semble présenter les stats de la batterie de manière peu conventionnelle. J'ai donc le choix entre patcher le kernel et patcher les applets de monitoring. Je vais plutôt opter pour la seconde solution. Les instructions sont pour ma vielle installation de Lenny, donc peut-être plus à jour. J'ai aussi l'habitude de compiler mes paquets Gdium dans un chroot monté en NFS pour bénéficier d'un disque classique.
On va donc recompiler le package lxpanel, en modifiant le code de cette applet. La technique se trouve à Création de backports sous Debian. Il faut juste remplacer le fichier src/plugins/batt/batt.c par celui-ci: Moniteur de batterie alternatif pour Squeeze sur Gdium.. Les modifications sont un peu brutales, mais normalement, il y aurait moyen de faire le patch en quelques lignes, consistant en des renommages de champs, fichiers et noms et en forçages de valeurs.
Démarrage automatique de la session graphique
Insérer la ligne suivante dans /etc/inittab::
X:23:respawn:su - julien -l -c "/bin/bash --login -c startx > /dev/null 2>&1"
Il faut aussi reconfigurer le paquet x11-common pour autoriser le démarrage du serveur X depuis n'importe où.
Configuration du clavier
La configuration habituelle se fait normalement. Les problèmes de vitesse du clavier ont disparu avec Squeeze. Si on veut quand même la configurer, on peut l'activer à chaud par xset r rate 200 50, ou bien dans xorg.conf, en ajoutant dans la section du clavier une ligne Option "AutoRepeat" "200 50". Cela va configurer une répétition des touches après 200 ms et avec une fréquence de 50 par seconde. Applications supplémentaires
Firefox (Iceweasel) est installé avec LXDE, mais sans les traductions françaises. Il y a déjà un visualiseur d'images et un terminal. On peut encore installer, Abiword et Gnumeric; evince (que je force en version GTK simple) est une dépendance de Gnumeric; j'ai donc aussi un lecteur PDF. Et puis j'ai aussi besoin d'un client mail.:
aptitude install iceweasel-l10n-fr abiword gnumeric evince-gtk icedove-l10n-fr
Pour les vidéos, installer par exemple mplayer. Dans le fichier /home/julien/mplayer/config, mettre les lignes suivantes::
vo=xv ao=alsa stop-xscreensaver
Configurations moins urgentes, en vrac
Une G-Key mobile
Pour rester dans le concept Gdium, j'aimerais que ma G-key sur mesure se comporte correctement sur un autre Gdium. Pas encore testé, mais le seul obstacle que je vois est le renommage des interfaces réseaux. Debian (et plus particulièrement udev) identifie très précisément les interfaces résaux et j'aimerais un peu relâcher cette rigueur. La configuration se trouve dans /etc/udev/rules.d/70-persistent-net.rules , où chaque interface réseau détectée est référencée.
Dans sa forme originale, il contient les lignes suivantes::
# PCI device 0x10ec:0x8139 (8139too) SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:d0:35:10:08:1c", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0" # PCI device 0x1814:0x0301 (rt61pci) SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0e:8e:1f:0a:f6", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="wlan*", NAME="wlan0"
Et après modification::
# PCI device 0x10ec:0x8139 (8139too) SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0" # PCI device 0x1814:0x0301 (rt61pci) SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="wlan*", NAME="wlan0"
J'espère ainsi garder mes interfaces eth0 et wlan0 sur un autre Gdium et garder ainsi un fichier /etc/network/interfaces toujours valide.
Son
aptitude install alsa-utils
Aussi, ajouter l'utilisateur julien au groupe audio. Tant que j'y suis, je désinstalle les paquets lxmusic et xmms2-core (lxmusic est trop instable)
Contrôle du rétroéclairage de l'écran:
aptitude install gnome-power-manager
Ensuite, dans les préférences de la session (Menu LXDE -> Préférences -> Desktop Session Settings), cocher la ligne "Gestion d'énergie" dans les applications lancées automatiquement. On peut lancer la commande gnome-power-manager directement pour ne pas devoir redémarrer la session. Les touches Fn-F8 et Fn-F9 sont désormais fonctionnelles.
Au bas niveau, la gestion du rétroéclairage se fait dans le répertoire /sys/class/backlight/pwm-backlight : le fichier max_brightness contient la valeur maximale du rétroéclairage, et le fichier brightness contient la valeur actuelle (qu'on peut écrire). Donc on peut jouer de ça pour gérer l'écran sans gnome-power-manager.