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
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
apt-get install openssh-server
rm /etc/udev/rules.d/70-persistent-net.rules chmod 444 /lib/udev/write_net_rules
apt-get install locales dpkg-reconfigure locales
#!/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
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.