Debian 6 sur Alix 2D13

Voici un petit post pour décrire l’installation de debian 6 squeeze sur une carte mère Alix 2d13. Cette carte mère est minuscule et ne consomme que très peu d’énergie ! Elle est idéale pour une passerelle/pare-feu, elle possède 3 interfaces réseaux, une interface série et deux ports usb, mais pas de carte vidéo. La console est accessible via le port série.
La carte Alix2d13 supporte des cartes compact flash et les disques dur 2,5p IDE voire SATA (avec convertisseur). Cet article présente l’installation de debian 6 sur une carte CF.

Cet article est très inspiré de « http://www.bitprocessor.be/2011/11/13/alix-2d13-debian-squeeze/ » mais j’y ai ajouté quelques corrections suite à des problèmes pendant la procédure.

Pré-requis

Vous devez avoir une debian 6 (ou ubuntu) en fonctionnement. Une carte CF (de 4BG par exemple) sera nommée /dev/sdb.
Il faut également un port série sur votre PC, câble série null-modem et un lecteur de carte CF (usb par exemple).

Préparer la CF

Une seule partition nécessaire. Pas de ext3 ceci pourrait être problématique sur un disque flash.

fdisk /dev/sdb
mkfs.ext2 /dev/sdb1
fdisk /dev/sdb
mount /dev/sdb1 /mnt/cf

Télécharger une debian de base

debootstrap --arch i386 squeeze /mnt/cf http://ftp.debian.org/debian
Sur Ubuntu, il semble que la commande soit : cdebootsrap.

Monter les fichiers spécifiques suivants et chrooter

mount -t proc none /mnt/cf/proc
mount -t sysfs none /mnt/cf/sys
mount -o bind /dev /mnt/cf/dev/
LC_ALL=C chroot /mnt/cf /bin/bash
mount devpts /dev/pts -t devpts

Le système de fichier

Pour diminuer la « charge » sur la carte flash, nous spécifions les options suivantes dans le /etc/fstab. Une fois installée sur la Alix, la CF sera sur /dev/sda, voici le /etc/fstab.

proc /proc proc noatime,defaults 0 0
/dev/sda1 / ext2 noatime,defaults 0 1
tmpfs /tmp tmpfs noatime,defaults 0 0
tmpfs /var/tmp tmpfs noatime,defaults 0 0
tmpfs /var/run tmpfs noatime,defaults 0 0
tmpfs /var/log tmpfs noatime,defaults 0 0
tmpfs /var/lock tmpfs noatime,defaults 0 0

Configuration réseau minimale

Editez le fichier /etc/network/interfaces.

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
   address 192.168.1.200
   netmask 255.255.255.0

Console serie

Désactiver les tty et mettre un getty sur la console série. Editer le fichier /etc/inittab.

#1:2345:respawn:/sbin/getty 38400 tty1
#2:23:respawn:/sbin/getty 38400 tty2
#3:23:respawn:/sbin/getty 38400 tty3
#4:23:respawn:/sbin/getty 38400 tty4
#5:23:respawn:/sbin/getty 38400 tty5
#6:23:respawn:/sbin/getty 38400 tty6

T0:23:respawn:/sbin/getty -L ttyS0 38400 vt100

Préparer Grub

Installer le paquet grub sur la CF.

apt-get install grub

Vérifier le contenu de /boot/grub, si le dossier est vide copier le ceci :

cp /usr/lib/grub/i386-pc/* /boot/grub

Créer /boot/grub/menu.lst (la carte flash sera sda sur l’Alix)

default 0
timeout 5

serial --unit=0 --speed=38400 --word=8 --parity=no --stop=1
terminal --timeout=5 serial console

title Debian
root (hd0,0)
kernel /vmlinuz root=/dev/sda1 ro console=ttyS0,38400n8
initrd /boot/initrd.img

 Installer le kernel

Un kernel 486 semble être le plus adapté pour le CPU de l’Alix.

apt-get install linux-image-486

Phase finale

Spécifier le mot de passe root

passwd root
Installer le serveur SSH
apt-get install openssh-server
 Désactiver les règles udev réseau
rm /etc/udev/rules.d/70-persistent-net.rules
chmod 444 /lib/udev/write_net_rules
Configurer les locales en en_US.UTF-8
apt-get install locales
dpkg-reconfigure locales
Créer le script /etc/profile.d/setlocale.sh
#!/bin/bash
export LC_ALL=en_US.UTF-8

Modifier le /etc/default/grub

Pour afficher grub sur la console série.  Sinon vous ne verrez pas le boot (après le BIOS écran noir…).

GRUB_CMDLINE_LINUX_DEFAULT="console=ttyS0,38400n8"
GRUB_TERMINAL=serial
GRUB_SERIAL_COMMAND="serial --speed=38400 --unit=0 --word=8 --parity=no --stop=1"

Dernières étapes

umount /dev/pts
 Sortir de l’environnement chrooté et démonter le reste.
exit
umount /mnt/cf/proc
umount /mnt/cf/sys
umount /mnt/cf/dev/

 Installer grub sur le MBR et démonter la CF

grub-install --no-floppy --root-directory=/mnt/cf /dev/sdb
umount /mnt/cf

Préparer un client terminal (apt-get install minicom)

Paramétrer minicom (minicom -s), « configuration du port série ». Choisir /dev/ttyS0 et 38400 8N1 pour la config. Enfin choisir « sortir ». Insérer la CF dans l’Alix et brancher le codon d’alimentation. Vous devriez voir apparaître le BIOS, puis Grub suivi du boot.

Si vous avez un écran noir ou si vous pensez que votre terminal ne reçoit pas de réponse du port série, essayez de retirer la CF, et booter sans CF et voir si le BIOS apparaît sur la console série.

Erreur au démarrage (vécu)

Au premier démarrage grub peut montrer une erreur de boot. Il ne trouve pas initramfs. Normal, grub est mal paramétré (il cherche à booter sur « hd1″ !). Il faut éditer le menu (touche « e ») puis modifier hd1 en hd0. Ctrl+x pour booter.

Il s’exécutera certainement un fsck un premier boot. A la suite d’un reboot (et re-edit du menu grub), nous pouvons nous loguer en root et nous pouvons corriger ce problème de grub au démarrage.
Si on vérifie le contenu de /boot/grub/device.map, on s’apperçoit que les disques indiqués sur ceux de la machine sur laquelle on a créé la Compact Flash. Un grub-mkdevicemap permet de mettre à jour ce fichier.
Un update-grub va recréer le fichier grub.cfg dans lequel ne devrait plus apparaître la mention « hd1″.

Un reboot pour vérifier.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>