Julien De Bona
Free Software, Cooking, and Everything


Debian sur Gdium

Publié le 2010-07-13.

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.


tags: linux, gdium

Quelques tags ...