Debian 9 auf einem Alix 2D

Ich wollte ein altes Alix 2D Gerät revitalisieren und Debian 9 installieren. Da das Gerät über keine Grafikkarte verfügt bin ich den Weg über “deboostrap” gegangen. Hilfestellung hierfür war vor allem diese Seite.

Zuerst muss die cf Karte so formatiert werden das es ein Linux Dateisystem enthält das booten kann

 fdisk -l /dev/sdc
 Disk /dev/sdc: 3,7 GiB, 4000317440 bytes, 7813120 sectors
 Units: sectors of 1 * 512 = 512 bytes
 Sector size (logical/physical): 512 bytes / 512 bytes
 I/O size (minimum/optimal): 512 bytes / 512 bytes
 Disklabel type: dos
 Disk identifier: 0x90909090

 Device     Boot Start     End Sectors  Size Id Type
 /dev/sdc1  *     2048 7813119 7811072  3,7G 83 Linux


 mkfs.ext3 -v /dev/sdc1

Dann mounten wir die Karte im Dateisystem und starten den debootstrap Prozess. Dieser Prozess installiert ein Debian auf der Karte. Das kann je nach Karte dauern.

  mkdir -p /mnt/cfcard
  mount /dev/sdc1 /mnt/cfcard
  debootstrap --arch i386 squeeze /mnt/cfcard http://ftp2.de.debian.org/debian/
  I: Retrieving InRelease
  I: Retrieving Release
  E: Failed getting release file http://ftp2.de.debian.org/debian/dists/squeeze/Release
  root@pedro:~# ^C
  root@pedro:~# debootstrap --arch i386 stretch /mnt/cfcard http://ftp2.de.debian.org/debian/
  I: Retrieving InRelease
  I: Retrieving Release
  I: Retrieving Release.gpg
  I: Checking Release signature
  I: Valid Release signature (key id 067E3C456BAE240ACEE88F6FEF0F382A1A7B6500)
  I: Retrieving Packages
  I: Validating Packages
  I: Resolving dependencies of required packages...
  I: Resolving dependencies of base packages...
  I: Found additional required dependencies: libaudit-common libaudit1 libbz2-1.0 libcap-ng0 libdb5.3 libdebconfclient0 libgcrypt20 libgpg-error0 liblz4-1 libncursesw5 libsemanage-common libsemanage1 libsystemd0 libudev1 libustr-1.0-1
  I: Found additional base dependencies: dmsetup gnupg-agent libapparmor1 libassuan0 libbsd0 libcap2 libcryptsetup4 libdevmapper1.02.1 libdns-export162 libelf1 libfastjson4 libffi6 libgmp10 libgnutls30 libhogweed4 libidn11 libidn2-0 libip4tc0 libip6tc0 libiptc0 libisc-export160 libksba8 liblocale-gettext-perl liblognorm5 libmnl0 libncurses5 libnetfilter-conntrack3 libnettle6 libnfnetlink0 libnpth0 libp11-kit0 libpsl5 libseccomp2 libsqlite3-0 libtasn1-6 libtext-charwidth-perl libtext-iconv-perl libtext-wrapi18n-perl libunistring0 libxtables12 pinentry-curses xxd
  I: Checking component main on http://ftp2.de.debian.org/debian...
  I: Retrieving libacl1 2.2.52-3+b1
  I: Validating libacl1 2.2.52-3+b1
  ....
  .....
  ....
  I: Configuring ifupdown...
  I: Configuring apt-utils...
  I: Configuring debconf-i18n...
  I: Configuring whiptail...
  I: Configuring gnupg...
  I: Configuring libgnutls30:i386...
  I: Configuring wget...
  I: Configuring tasksel...
  I: Configuring tasksel-data...
  I: Configuring libc-bin...
  I: Configuring systemd...
  I: Base system installed successfully.

Jetzt “wechselt” man vom Hauptbetriebssystem in eine Session “auf der Karte”

  mount proc /mnt/cfcard/proc -t proc
  mount sysfs /mnt/cfcard/sys -t sysfs
  mount -o bind /dev /mnt/cfcard/dev
  chroot /mnt/cfcard /bin/bash

Man sieht zwar zuerst nicht viel aber wenn man sich die /etc/fstab anschaut kann man sehen das es nicht die vom “host system” ist

  more /etc/fstab
  # UNCONFIGURED FSTAB FOR BASE SYSTEM

Aber man kann jetzt auf dem “Kartensystem” ganz normal Software installieren

 apt install console-setup language-env locales
 dpkg-reconfigure locales
 dpkg-reconfigure tzdata

Der neue Host braucht einen Namen

 echo sinnvollername > /etc/hostname

und die /etc/fstab braucht die richtigen Einstellungen

 echo "proc        /proc   proc    defaults                        0       0" >> /etc/fstab
 echo "sysfs       /sys    sysfs   defaults                        0       0" >> /etc/fstab
 echo "/dev/sda1   /       ext2    noatime,errors=remount-ro       0       1" >> /etc/fstab

Achtung hier sda statt sdc nehmen da die Karte wenn man von ihr startet ja die erste Festplatte ist.

Die Kernelkonfiguration vorbereiten:

vi /etc/kernel-img.conf

 # Kernel image management overrides
 # See kernel-img.conf(5) for details
 do_symlinks = yes
 relative_links = yes
 do_bootloader = no
 do_bootfloppy = no
 do_initrd = yes
 link_in_boot = no

Dann Grub und Kernel installieren

 apt install linux-image-586 grub-pc

Achtung hier wieder sdc nehmen. Damit Grub auf dem Alix Board die serielle Schnittstelle nimmt.

vi /etc/default/grub

   GRUB_CMDLINE_LINUX_DEFAULT="verbose console=ttyS0,38400n8 reboot=bios"
   GRUB_SERIAL_COMMAND="serial --unit=0 --speed=38400"
   GRUB_TERMINAL=serial

 grub-install /dev/sdc
 update-grub

Netzwerkkarten einrichten:

vi /etc/network/interfaces
auto lo
iface lo inet loopback

auto enp0s9
iface enp0s9 inet dhcp

auto enp0s10
iface enp0s10 inet dhcp

Dann die Karte auswerfen und in das Alix Board einbauen. Wenn man die Baudrate auf dem angeschlossenen Terminal richtig eingebaut hat lacht einen dann das Debian zum einloggen an.