Micro2440
Micro2440
Das Micro2440 ist im Prinzip wie das Mini2440 nur das es keine 64/128MB Flash Version gibt(gab es mal ?), aufgebaut ist es als Stamp-Modul das bekommt man meistens mit einem SDK-Bord mit der Peripherie und wahlweise 3,5"/7" TFT oder einen LCD2VGA Adapter.
Technische Daten (Stamp Modul)
Dimension: 63 x 52 mm CPU: 400 MHz Samsung S3C2440A ARM920T (Max freq. 533 MHz) RAM: 64 MB SDRAM, 32 bit 100 MHz Bus Flash: 64 MB / 128 MB / 256 MB / 1GB NAND Flash and 2 MB NOR Flash with BIOS User Outputs: 4x LEDs Expansion headers (2.0mm) Debug: 10 pin JTAG (2.0mm) OS Support: Android, Linux 2.6, Windows CE 5 and 6
Technische Daten (SDK-Board)
Dimension: 180 x 130 mm EEPROM: 1024 Byte 24C08 (I2C) Ext. Memory: SD-Card socket Serial Ports: 3x DB9 connector (RS232) USB: 4x USB-A Host, 1x USB-B Device Audio Output: 3.5 mm stereo jack Audio Input: 3.5mm jack (mono) Ethernet: RJ-45 10/100M (DM9000) RTC: Real Time Clock with battery Beeper: PWM buzzer Camera: 20 pin Camera interface LCD: Connector for FriendlyARM Displays (3,5" and 7") and VGA Board Touch Panel: 4 pin User Inputs: 6x push buttons and 1x A/D pot Expansion header (2.0mm) Power: 5V connector, power switch and LED
U-Boot
U-Boot aus den Quellen Bauen
Leider kann der vivi Bootlader nicht wirklich viel, eigentlich unterstützt vivi nur yaffs2 Kernel Images, daher ist es sinnvoll diesen durch U-Boot auszutauschen, ich benutze U-Boot aus dem OPENMOKO Projekt für das Micro2440 mit 256MB, man sollte nur überlegen ob man am Anfang nicht erst mal mit vivi klar kommt, im Fehlerfall kann man aber immer noch per jtag denn Bootlader wieder einspielen.
Voraussetzungen dafür ist ein Crosscompiler z.b. der von Codesourcery.
Build Verzeichnis Anlegen und git Res. laden: <c> mkdir uboot ; cd uboot git clone git://repo.or.cz/u-boot-openmoko/mini2440.git </c> Sourcen fürs micro2440 einstellen und Compilieren: <c> cd mini2440 export CROSS_COMPILE=arm-none-linux-gnueabi- make mini2440_config make all </c> Ein Fertiges U-Boot gibt es auch für die 256MB Version. Datei:UBoot-256MB.bin
U-Boot Flash’en
Bootswitch S2 auf NOR stellen, und wen vivi erscheint "q" (vivi Console) drücken wie wollen u-Boot ab Adresse 0x32000000 haben dieses machen wir mit folgenden Befehl. <c> load ram 0x32000000 <uboot bin file grösse in bytes> u-boot </c> vivi wartet nur auf die Datei unter Linux wird das mit folgenden Befehl hochbeladen über USB. <c> sudo s3c2410_boot_usb u-boot.bin </c> Als nästes wollen wir das uBoot starten dazu springen wir in den Speicherbereich wo wir das uBoot hin geladen haben. <c> go 0x32000000 </c> Wenn das geklappt hat sollte die uBoot Shell angezeigt werden (MINI2440). Als nächstes bereiten wir den NAND vor.
NAND Löschen: <c> nand scrub </c> BAD Block Tabelle erstellen(Dauert etwas): <c> nand createbbt </c> uBoot in den NAND schreiben: <c> nand write.e 0x32000000 0x0 <uBoot bin grösse in hex> </c> NAND Partitionieren: <c> dynpart </c> Environment Speicher einrichten: <c> dynenv set u-boot_env </c> Enviroment Parameter sichern: <c> saveenv </c> So das wars jetzt noch das Bord ausschalten und S2 wieder auf NAND stellen und schon sollte euch das uBoot begrüßen.
Kernel
Kernel aus den Quellen Bauen
Jetzt steht man vor der Wahl welchen Kernel man nimmt egal ob EMDebian, Gentoo oder Android brauchen tut man ihn so oder so, die fertigen Kernel von friendlyarm.net können nur VFAT,JFFS2 daher eignen sich diese nur bedingt für ein System z.b. auf SD/USBStick oder Ext. Platte, Also ist es sinnvoll diesen sich selber zu bauen dieses ist nicht wirklich schwer.
Als erstes Besorgen wir uns den Kernel und entpacken ihn: <c>
mkdir micro2440 cd micro2440 git clone git://repo.or.cz/linux-2.6/mini2440.git linux-2.6.32-rc8
</c> Als nächstes laden wir die Default Config und erstellen die .Config für das Micro2440 <c>
cd linux-2.6.32-rc8 CROSS_COMPILE=arm-none-linux-gnueabi- ARCH=arm make mini2440_defconfig
</c> Wenn man noch etwas ändern möchte z.b. ext3 Kernelmodule ...: <c>
CROSS_COMPILE=arm-none-linux-gnueabi- ARCH=arm make menuconfig
</c> Den Kernel anschließend kompilieren: <c>
CROSS_COMPILE=arm-none-linux-gnueabi- ARCH=arm make
</c> Später kann man noch die Module aud die SD-Karte kopieren. <c>
CROSS_COMPILE=arm-softfloat-linux-gnueabi- ARCH=arm INSTALL_MOD_PATH=/mnt make modules_install
</c> Als letztes muss man noch das Kernel Image für uboot vorbereiten d.h. aus dem zImage(für vivi) machen wir ein uImage für uBoot. <c>
cd .../arch/arm/boot mkimage -A arm -O linux -T kernel -C none -a 0x30008000 -e 0x30008000 -d zImage uImage
</c>