ALIX 2D13 - Installation Voyage Linux
Dieser Artikel beschreibt die Installation der Distribution "Voyage Linux" auf dem embedded Board ALIX 2D13 (Link) und ist stichwortartig gehalten, d.h. es werden Linux-Grundkenntnisse vorrausgesetzt ;)
Bei Voyage Linux handelt es sich um eine Debian basierte, minimalistische und vor allem auf embedded Boards wie das ALIX (oder WRAP, Soekris, ...) ausgerichtete Umsetzung. Besonderheit ist hier das bereits integrierte read-only filesystem, was auf verwendeten CF-Karten sinnvoll ist. Zusätzlich kommt in diesem Projekt noch eine interne 2,5" HDD zum Einsatz um diverse Dateien auszulagern (Backups, Media, usw.).
BIOS & HDD
Beim ALIX 2D13 kommt ein tinyBIOS zum Einsatz (aktuelle Version v0.99h (11/05/08), welches sehr minimalistisch gehalten ist und nicht viele Konfigurationsmöglichkeiten bietet. Um in das BIOS Menü zu gelangen, muss beim starten des Boards über die serielle Konsole (38400-8-1-N-F_OFF / außer dies wurde geändert) - d.h. während des Speicher-Checks - die "S" Taste gedrückt werden; man gelangt nun in folgendes tinyBIOS Setup:
PC Engines ALIX.2 v0.99h 640 KB Base Memory 261120 KB Extended Memory BIOS setup: (9) 9600 baud (2) 19200 baud *3* 38400 baud (5) 57600 baud (1) 115200 baud (C) CHS mode *L* LBA mode *W* HDD wait *V* HDD slave (U) UDMA enable (M) MFGPT workaround (P) late PCI init *R* Serial console enable (E) PXE boot enable (X) Xmodem upload (Q) Quit
Sofern eine zusätzliche HDD zum Einsatz kommen soll, muss das BIOS entsprechend vorbereitet werden. Hierzu sind folgende Werte im tinyBIOS relevant:
- L: LBA mode => sofern die HDD LBA unterstützt
- W: HDD wait => startup Verzögerung um der HDD etwas Anlaufzeit zu gönnen (falls die HDD master ist)
- V: HDD slave => sofern eine CF-Karte und HDD verwendet wird, muss die HDD als slave betrieben werden (Anmerkung: die Jumper für slave-mode an der HDD nicht vergessen ;)
Achtung: Im tinyBIOS Readme wird darauf hingewiesen, dass aktuell keine HDD > 40 GB verwendet werden können! Für das aktuelle Projekt kommt eine SAMSUNG MP0402H 40GB zum Einsatz, welche erfolgreich erkannt wird.
Installation Voyage Linux
Die Installation von Voyage Linux setzt ein bereits lauffähiges Linux System vorraus und wurde für folgende Anleitung auf einer Debian netinstall VM durchgeführt:
mkdir /mnt/cf
cd /tmp/
wget http://mirror.voyage.hk/download/voyage/voyage-0.8.5.tar.bz2
tar --numeric-owner -jxvf voyage-0.8.5.tar.bz2
Nun sollte die CF-Karte vorbereitet werden; in der VM wurde diese über den USB-Kartenleser als sdb erkannt. Hierzu werden alle alten Partitionen der CF-Karte entfernt, eine neuen Partition angelegt, diese mit EXT2 als filesystem belegt und der automatische filesystem check deaktiviert.
Achtung: Alle Daten auf der CF-Karten gehen mit dieser Anleitung verloren!
fdisk /dev/sdb
# # Alle alten Partitionen löschen
# => d
#
# # Eine neue Partition für die gesamte CF-Karte erstellen
# => n -> p -> 1 -> first cylinder 1 -> last cylinder max (2015)
#
# # Boot flag setzen
# => a -> 1
#
# # Überprüfung der gemachten Angaben
# => p
# Disk /dev/sdb: 1039 MB, 1039933440 bytes
# 16 heads, 63 sectors/track, 2015 cylinders
# Units = cylinders of 1008 * 512 = 516096 bytes
# Sector size (logical/physical): 512 bytes / 512 bytes
# I/O size (minimum/optimal): 512 bytes / 512 bytes
# Disk identifier: 0x90909090
#
# Device Boot Start End Blocks Id System
# /dev/sdb1 * 1 2015 1015528+ 83 Linux
#
# # Änderung speichern und beenden
# => w
#
mkfs.ext2 /dev/sdb1
tune2fs -c 0 /dev/sdb1
Im nächsten Schritt kann nun der Voyage Linux Installer aufgerufen werden:
cd voyage-0.8.5/
./usr/local/sbin/voyage.update
Dieser ist eigentlich selbsterklärend und erfragt die benötigten Infos bzw. gibt default Möglichkeiten vor:
What would you like to do? (default=1 [Create new Voyage Linux disk]): Where is the Voyage Linux distribution directory? (default=/tmp/voyage-0.8.5): What would you like to do? (default=2 [Select Target Profile]): Please select Voyage profile: (default=6 [ALIX]): What would you like to do? (default=3 [Select Target Disk]): Which device accesses the target disk? /dev/sdb Which partition should I use on /dev/sdb for the Voyage system [1]? 1 Where can I mount the target disk [/mnt/cf]? /mnt/cf What would you like to do? (default=4 [Select Target Bootstrap Loader]): Which loader do you want (grub or lilo) [grub]? grub Which partition is used for bootstrap [1]? 1 What would you like to do? (default=5 [Configure Target Console]): Select terminal type: (default=1 [Serial Terminal]): Please choose speed: (default=5 [38400]): What would you like to do? (default=6 [Partition and Create Filesystem]): What shall I do with your Flash Media? (default=1 [Partition Flash Media and Create Filesystem]): What would you like to do? (default=7 [Copy Distribution to Target]):
System-Anpassungen
Nach dem ersten erfolgreichen reboot (kann etwas längern dauern, da hier die System-Keys [ssh] neu generiert werden) werden am System folgende Anpassungen durchgeführt; hierzu muss zuerst die CF-Karte read-write gemountet werden - dies lässt sich innerhalb von Voyage Linux mit dem Befehl "remountrw" durchführen. Als nächstes folgen die Anpassungen:
- Default root Passwort (voyage) ändern
passwd
- Hostname ändern
hostname NEW_HOSTNAME
echo "NEW_HOSTNAME" > /etc/hostname
echo "127.0.0.1 NEW_HOSTNAME" >> /etc/hosts
- zusätzliche HDD einbinden
# HDD wurde als /dev/hdb erkannt; Partitionen löschen und eine neue anlegen (s.o.)
fdisk /dev/hdb
# HDD mit filesystem EXT4 vorbereiten
mkfs.ext4 /dev/hdb1
# HDD mount-point anlgene und reboot-sicher in die fstab schreiben
mkdir /mnt/hdd
echo "/dev/hdb1 /mnt/hdd ext4 defaults,noatime,rw 0 0" >> /etc/fstab
- APT Repo anpassen (/etc/apt/sources.list)
# APT Repo anpassen
# Debian Japan Mirror entfernen (Zusatz JP löschen)
# deb http://ftp.jp.debian.org/debian/ squeeze main contrib non-free
deb http://ftp.debian.org/debian/ squeeze main contrib non-free
deb http://security.debian.org/debian-security squeeze/updates main contrib non-free
# Debian Backports hinzufügen
deb http://backports.debian.org/debian-backports squeeze-backports main
- System Packages auf den neusten Stand bringen / installieren / löschen
# APT Repo-Infos updaten
apt-get update
# wichtige Packages installieren
# sonst Fehler: debconf: (debconf: (No usable dialog-like program is installed,
# so the dialog based frontend cannot be used. at
# /usr/share/perl5/Debconf/FrontEnd/Dialog.pm line 75, <> line 2.)
apt-get install dialog
# aptitude nachinstallieren für "bessere" APT Verwaltung
apt-get install aptitude
# LILO entfernen (da grub als boot manager verwendet wird)
aptitude remove lilo
# Packages auf den neusten Stand bringen
aptitude safe-upgrade
- NTP installieren
# NTP Package installieren
apt-get install ntp
# /etc/ntp.conf anpassen
# drift-file in tmpfs umlegen
driftfile /var/tmp/ntp/ntp.drift
# NTPd neu starten
/etc/init.d/ntp restart
# NTP Abfrage einmalig starten und Zeit aktualisieren
# -q: einmal Abfrage starten
# -g: Zeit auch syncen wenn mehr als 1000 Sekunden Abweichung
ntpd -q -g
- System Timezone ändern
dpkg-reconfigure tzdata
- (optional) Netzwerk Interfaces anpassen (/etc/network/interfaces) / DEFAULT: eth0 dhcp
- (optional) zusätzliche System Packages installieren (~135MB)
- (optional) Netzwerk Interfaces anpassen (/etc/network/interfaces) / DEFAULT: eth0 dhcp
apt-get install hwinfo hdparm lm-sensors htop vim nmap iptraf tcptraceroute mtr dnsutils bzip2 zip unzip rar unrar less telnet whois iftop
- (optional) doc's & man's entfernen (~150MB)
remove.docs
Zum Abschluss noch das CF-Filesystem wieder read-only mounten und/ oder ggf. einen reboot durchführen; der passende Befehl wäre hier "remountro".
Image der CF-Karte erstellen / zurückspielen
Sofern alle gewünschten Anpassungen durchgeführt und reboot-sicher sind, kann von der CF-Karte ein Image erstellt werden. Dies ist hilfreich, um später schnell ein Backup wiederherstellen zu können.
Anmerkung: Sofern nach dem ersten reboot die automatische Neugenerierung der System-Keys in das CF-Image eingebaut werden soll, muss vorher die Datei "/voyage.1st" angelegt werden und nach dem Erstellen des Images wieder gelöscht werden (sonst wird am aktuellen Live-System ebenfalls die Neugenrierung angestossen!).
- Image erstellen:
# einlesen von /dev/sda und Image nach /tmp/file.img schreiben
dd if=/dev/hda of=/tmp/file.img
- Image einspielen:
# auslesen von /tmp/file.img und schreiben nach /dev/sda
dd if=/tmp/file.img of=/dev/sda
- Windows: hier kann physdiskwrite zum lesen/ schreiben verwendet werden (Link).
To Do's
- sensors (vgl. http://wiki.laub-home.de/index.php/Asrock_ION_330_Pro_als_Heimserver#LM-Sensors)
- LEDs
- watchdog
- Stromspar Ausrichtung (HDD spindown, WOL usw. / vgl. http://wiki.laub-home.de/index.php/Asrock_ION_330_Pro_als_Heimserver#Strom_Sparen)
- bahs aliase / PS1 / profile
- truecrypt
Quellen & Downloads
Anleitungen:
http://www.twam.info/hardware/alix/temperature-sensor-on-alix3d3
Downloads:
http://m0n0.ch/wall/physdiskwrite.php