SheevaPlug.de

Die deutschsprachige Plug Community.

  • Schrift vergrößern
  • Standard-Schriftgröße
  • Schriftgröße verkleinern
Startseite Anleitungen Ubuntu Kernel auf x86 cross compilieren & flashen

Kernel auf x86 cross compilieren & flashen

E-Mail Drucken

Die Anleitung beschreibt wie man die Kernel Sourcen von Marvels git Repository (Orion) auf einem x86er System compiliert und auf die SheevaPlug flasht.

 

Auf der x86 Maschine die Umgebung zum Cross Compilieren einrichten wie im Dokument SheevaPlug Development Kit README-Revx.x.pdf beschrieben. 

1. Gnu Compiler auf einem Debian Rechner einrichten (Rechner muss im Netz hängen, damit später auf die Plug kopiert werden kann)

2. mkimage nach /usr/bin kopieren und x-Bit setzen

Folgendes wird benötigt zum ziehen der Sources aus dem git Repository und um menuconfig ausführen zu können.

apt-get install git-core
apt-get install libncurses5-dev

 

Sourcen ziehen 

Ich arbeite im Verzeichnis /home/kernels/orion_01052009/. Dort folgendes ausführen.

git clone git://git.marvell.com/orion.git

 

Kompilieren des Kernels 

1. In /home/kernels/orion_01052009/lib/orion wechseln

make ARCH=arm kirkwood_defconfig

Wer Settings ändern will:

make ARCH=arm menuconfig

Kernel kompilieren

make -j4 ARCH=arm CROSS_COMPILE=/home/gcc/bin/arm-none-linux-gnueabi- uImage 

Image Name: Linux-2.6.30-rc3-01517-g3ea6385
Created: Fri May 1 20:33:08 2009
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 2115572 Bytes = 2065.99 kB = 2.02 MB
Load Address: 0x00008000
Entry Point: 0x00008000
Image arch/arm/boot/uImage is ready

Ergebnis (uImage) liegt in /home/kernels/orion_01052009/orion/arch/arm/boot

Dorthin wechseln und den MD5 Hash ermitteln und notieren.

md5sum uImage
 

Module kompilieren

(auch nötig wenn keine Module ausgewählt wurden)

make -j4 ARCH=arm CROSS_COMPILE=/home/gcc/bin/arm-none-linux-gnueabi- modules

Module in Ordner legen

make -j4 ARCH=arm CROSS_COMPILE=/home/gcc/bin/arm-none-linux-gnueabi- INSTALL_MOD_PATH=.. modules_install

Module liegen in /home/kernels/orion_01052009/lib/

 

Kopieren auf die SheevaPlug

Den Inhalt von /home/kernels/orion_01052009/lib/ in /lib der SheevaPlug kopieren (überschreiben falls schon vorhanden).

Die uImage aus /home/kernels/orion_01052009/orion/arch/arm/boot ebenfalls auf die SheevaPlug kopieren (Ort egal).

 

Flashen

In das Verzeichnis wechseln in das ihr uImage kopiert habt und MD5 Hash emitteln. Sollte der nicht mit dem vorhin ermittelten übereinstimmen --> NICHT FLASHEN.

md5sum uImage

Gucken wohin uImage geflasht werden muss (hier mtd0)

cat /proc/mtd

dev: size erasesize name
mtd0: 00400000 00020000 "uImage"
mtd1: 1fb00000 00020000 "rootfs"

Flash leeren

/home/Kernel/02052009# flash_eraseall -j /dev/mtd0

Erasing 128 Kibyte @ 3e0000 -- 96 % complete. Cleanmarker written at 3e0000.

uImage schreiben

nandwrite -pm /dev/mtd0 uImage
Reboot

 

uBoot anpassen

setenv mainlineLinux yes
setenv arcNumber 2097
saveenv
reset

 

Nun sollte mit dem neuen Kernel gebootet werden.

 

Links

http://plugcomputer.org/plugwiki/index.php/Compiling_Linux_Kernel_for_the_Plug_Computer#Booting_the_kernel

http://sheeva.with-linux.com/sheeva/index.php?dir=

http://www.thomashertweck.de/kernel26.html

http://www.computingplugs.com/index.php/Building_a_custom_kernel

 

 

Zuletzt aktualisiert am Samstag, den 02. Mai 2009 um 23:30 Uhr  
AddThis Social Bookmark Button