====== Installation von Emdebian Grip auf den Karo TX25 ======
Die folgende Anleitung erklärt die Installation von [[:Software:Linux:Emdebian:start]] Grip (Squeeze) auf den [[http://www.karo-electronics.de/tx25.html | TX25]] SOM der Firma Karo.
* [[http://git.kernel.org/?p=linux/kernel/git/stable/linux-2.6.31.y.git;a=summary | Linux 2.6.31 Web Git]]
* [[http://lxr.free-electrons.com/ident?v=2.6.31&a=arm | Linux Cross Reference (2.6.31/ARM)]]
===== Voraussetzung =====
* PC oder VM mit installiertem Debian oder Ubuntu
* [[http://www.karo-electronics.de/tx25.html | Karo TX25]] mit dem [[http://www.karo-electronics.de/starterkit_5.html | Starter-Kit V]] oder einem anderen passenden Carrier-Board.
* PC mit serieller Schnittstelle (oder USB-to-RS232 Converter) und installierter Terminal-Anwendung (z.B. [[:Software:Linux:minicom]], Cutecom, [[:Software:PuTTY:start]], etc.)
===== Root File System erstellen =====
Wir benutzen Multistrap für das Root-Filesystem gemäss Anleitung: [[software:linux:emdebian:rootfs_erstellen|Root-Filesystem]]
*
[General]
arch=armel
directory=/opt/multistrap/
cleanup=true
retainsources=
noauth=true
unpack=true
bootstrap=Grip Updates
aptsources=Grip Updates Debian
[Grip]
packages=ntpdate udev lrzsz isc-dhcp-client ifupdown vim procps iputils-ping psmisc module-init-tools openssl openssh-server cron rsyslog nano
source=http://www.emdebian.org/grip
keyring=emdebian-archive-keyring
suite=squeeze
[Updates]
packages=apt
source=http://www.emdebian.org/grip
keyring=emdebian-archive-keyring
suite=squeeze-proposed-updates
# fallback
[Debian]
packages=
source=http://ftp.uk.debian.org/debian
keyring=debian-archive-keyring
suite=squeeze
* schroot Konfiguration: [emdebian-grip-armel]
description=Emdebian Grip Squeeze (armel)
aliases=emdebian-armel
type=directory
directory=/opt/multistrap
root-groups=root
users=$USER
groups=sbuild
* Als Qemu-Binary muss //qemu-armel-static// kopiert werden.
* Mount-Punkte (fstab): # /etc/fstab for Karo TX25
# 2011-04-07 martin.zueger@ntb.ch
# device dir type options dump fsck
/dev/mtdblock1 / jffs2 rw,auto 0 0
#/dev/mtdblock2 /var/log jffs2 rw,auto 0 0
/dev/mmcblk0p1 /media/sdcard auto rw,noauto 0 0
/dev/sda1 /media/usbdisk auto rw,noauto 0 0
tmpfs /tmp tmpfs defaults,size=16m 0 0
tmpfs /var/tmp tmpfs defaults,size=4m 0 0
proc /proc proc defaults 0 0
sysfs /sys sysfs defaults 0 0
usbfs /proc/bus/usb usbfs defaults,noauto 0 0
tmpfs /dev tmpfs defaults,noauto 0 0
* Konfiguration für serielles Terminal:
- getty auf serielle Schnittstelle legen in ''/opt/multistrap/etc/inittab''
- Standard TTYs deaktivieren indem die folgenden Zeilen auskommentiert werden: #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
- Serielles Terminal aktivieren durch Hinzufügen der folgenden Zeile am Ende der Datei: s0:23:respawn:/sbin/getty -L ttymxc0 115200 linux
- Sicherstellen, dass der Benutzer root sich am seriellen Terminal anmelden kann. Dazu muss in der Datei ''/opt/multistrap/etc/securetty'' folgende Zeile zu finden sein: ttymxc0
* Device-Node Tabelle: name type mode uid gid major minor start inc count
/dev/console c 600 0 0 5 1 0 0 -
/dev/kmsg c 660 0 0 1 11 0 0 -
#/dev/log s 666 0 0 - - - - -
/dev/loop b 640 0 0 7 0 0 1 8
/dev/mem c 640 0 15 1 1 0 0 -
/dev/null c 666 0 0 1 3 0 0 -
/dev/pts d 755 0 0 - - - - -
/dev/random c 666 0 0 1 8 0 0 -
/dev/tty c 666 0 0 5 0 0 0 -
/dev/tty c 666 0 0 4 0 0 1 6
/dev/urandom c 666 0 0 1 9 0 0 -
/dev/zero c 666 0 0 1 5 0 0 -
/dev/mtdblock1 b 666 0 6 31 1 0 0 -
/dev/mtdblock2 b 666 0 6 31 2 0 0 -
* Dateisystemabbild erzeugen: # mkfs.jffs2 -n -e 0x20000 -p 0x20000 -l -D dev_table -d /opt/multistrap -o emdebian-squeeze-grip-karotx25.jffs2
===== Dateien für Installation vorbereiten =====
Für die Installation auf dem TX25 müssen die benötigten Dateien auf einem TFTP-Server bereit gestellt werden. Am NTB kann hierfür der FTP-Server des INF-Instituts verwendet werden: [[\\inf004.ntb.ch\ftp\pub\ | inf004.ntb.ch]]((Bitte Ordner mit dem eigenen Benutzernamen erstellen. Dateien und Ordner, die ausserhalb dieses Ordners erstellt werden, werden ohne Vorwarnung wieder gelöscht!)) Die im Folgenden genauer beschriebenen drei Dateien müssen auf den FTP-Server kopiert werden.
==== Linux Kernel ====
Als Kernel wird der von Karo gelieferte Linux Kernel in Version 2.6.31 verwendet. Das Image ist auf der dem SOM beiliegenden CD zu finden, oder kann hier heruntergeladen werden:
* {{.:zimage-linux-2.6.31-tx25|Kernel-Image Linux 2.6.31 für Karo TX25}}
===== Linux Kernel und Root File System installieren =====
Auf dem Karo TX25 ist der Bootloader //RedBoot// installiert. Dieser kann die benötigten Dateien per FTP auf das SOM laden. Dazu sind folgende Schritte notwendig:
RedBoot> load -r -b 0x80100000 -h 146.136.36.50 pub/xyz/zimage-linux-2.6.31-tx25
RedBoot> fis create linux
load -r -b 0x80100000 -h 146.136.36.50 pub/xyz/emdebian-squeeze-grip-karotx25.jffs2
fis create rootfs
===== Installation testen =====
RedBoot> fis load linux
exec -w 1 -c "init=/sbin/init console=ttymxc0 root=/dev/mtdblock1 rootfstype=jffs2"
===== Weitere Informationen =====
==== RedBoot Flash Konfiguration auf dem TX25 ====
Für die obige Anleitung wurde folgende Flash Konfiguration verwendet:
Name FLASH addr Mem addr Length Datalen Entry point
--------------------------------------------------------------------------------
RedBoot 0x00000000 0x00000000 0x00040000 0x00000000 0x00000000
rootfs 0x00040000 0x80100000 0x00C00000 0x00900000 0x80100000
userfs 0x00C40000 0x80100000 0x07120000 0x00000000 0xFFFFFFFF
linux 0x07D60000 0x80100000 0x00200000 0x001AAA0C 0x80100000
FIS directory 0x07F60000 0x07F60000 0x0001F000 0x00000000 0x00000000
RedBoot config 0x07F7F000 0x07F7F000 0x00001000 0x00000000 0x00000000
==== Original Flash Konfiguration wiederherstellen ====
Durch Eingabe der folgenden Befehle in der RedBoot Konsole kann die original Flash Konfiguration von Karo wiederhergestellt werden:
fis init -f
fis create -s 0 -l 0x06000000 -b 0x80100000 rootfs
fis create -s 0 -l 0x01CC0000 -b 0x80100000 varfs
fis create -s 0 -l 0x00260000 -b 0x80108000 -r 0x80108000 -e 0x80108000 linux