|
|
Micro2440--Theborg0815 19:46, 3. Jul. 2010 (UTC) Micro2440 von FriendlyARM Das Micro2440 ist im Prinzip wie das Mini2440 nur dass es keine 64/128MB Flash Variante gibt. Aufgebaut ist es als Stamp-Modul, welches meistens mit einem SDK-Board, der Peripherie und wahlweise einem 3,5" / 7" TFT oder einen LCD2VGA Adapter kombiniert wird.
[Bearbeiten] 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/6 [Bearbeiten] 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 [Bearbeiten] Software[Bearbeiten] U-Boot[Bearbeiten] U-Boot aus den Quellen bauenLeider kann der vivi-Bootlader nicht viel. Vivi unterstützt nur yaffs2 Kernel Images, daher ist es sinnvoll diesen durch den U-Boot-Bootloader auszutauschen. Ich benutze U-Boot aus dem OPENMOKO Projekt für das Micro2440 mit 256MB. Der compilierte U-Boot-Bootloader ist zu finden unter: Datei:UBoot-256MB.bin. Für den Anfang sollte abgewogen werden, ob der vivi-Bootloader reicht. Im Fehlerfall kann dieser per JTAG wieder eingespielt werden. Voraussetzungen dafür ist ein Cross-Compiler z.B. der von Codesourcery. Im ersten Schritt muss das Build-Verzeichnis angelegt werden und das git-Repository heruntergeladen werden.. Das geschieht mit den Befehlen:
Danach müssen die Source-Dateien für das micro2440 eingestellt und compiliert werden:
[Bearbeiten] U-Boot Flash’enDen Bootswitch S2 auf NOR stellen, sobald vivi erscheint "q" (in der vivi Konsole) drücken. Damit U-Boot ab der Adresse 0x32000000 programmiert wird, muss der folgende Befehl eingeben werden:
Nun wartet Vivi auf die Datei. In der Shell (PC) wird das Hochladen mit dem folgenden Befehl initiiert. Die Dateiübertragung erfolgt über USB.
Als nächstes soll das U-Boot gestartet werden. Dazu muss an die Speicherstelle gesprungen werden, an der das U-Boot programmiert wurde. Dies wird mit dem folgendem Befehl erreicht:
Waren alle vorherigen Schritte erfolgreich, sollte nun die U-Boot Konsole angezeigt werden.(MINI2440#). Anschließend wird nun der NAND-Flash vorbereitet Zuerst muss das NAND-Flash gelöscht werden, dies wird mit dem folgendem Befehl erreicht:
Danach wird die Bad-Block Tabelle erstellt, dies kann etwas Zeit in Anspruch nehmen:
Damit U-Boot in das Flash geschrieben wird, muss folgender Befehl ausgeführt werden.
Für das Partitionieren des Flashs dient der Befehl:
Environment Speicher einrichten:
Enviroment Parameter sichern:
Nachdem alle Schritte durchgeführt wurden, muss nur noch das Bord ausgeschaltet werden und S2 wieder auf NAND gestellt werden. Nach dem Einschalten sollte euch nun das U-Boot begrüßen. [Bearbeiten] Kernel/Filesystem[Bearbeiten] Kernel aus den Quellen compilierenJetzt steht man vor der Wahl welchen Kernel man nimmt. Egal ob EMDebian, Gentoo oder Android, man braucht ihn so oder so. Die fertigen Kernel von FriendlyARM können nur VFAT und JFFS2 daher eignen sich diese nur bedingt für ein System z.b. auf SD/USBStick oder Ext. Platte. Daher ist es sinnvoll sich selbst einen Kernel zu bauen, was nicht schwer ist. Als erstes besorgen wir uns die Kernel-Quellen und entpacken sie: [Bearbeiten] Gentoo/emDebian
[Bearbeiten] Android
Als nächstes laden wir die Default Config und erstellen die .config für das Micro2440: (Fertiges Beispiel: Datei:Config.txt)
Wenn man noch etwas ändern möchte (z.b. ext3-Treiber) startet man "menuconfig":
Den Kernel anschließend compilieren:
Später kann man noch die Module auf die SD-Karte kopieren:
Als letztes muss das Kernel Image für U-Boot vorbereitet werden. Aus dem zImage (gzip komprimiertes Kernel-Image) wird ein uImage für U-Boot so erstellt:
[Bearbeiten] Filesystem erstellenAls erstes brauchen wir ein RootFS dieses brauchen wir um später die Partition damit zu füllen. [Bearbeiten] emDebian
Alternativ kann man sich ein schon vorbereitetes root-fs von hier herunterladen. [Bearbeiten] Gentoohttp://distfiles.gentoo.org/releases/arm/autobuilds/current-stage3-armv4tl/ [Bearbeiten] Android
[Bearbeiten] Speichermedien vorbereiten[Bearbeiten] SD-Karte und USB MedienAls nächstes bereiten wir ein Speichermedium vor, wir brauchen 3 Partitionen, 2x EXT2 und einmal Swap das Beispiel gilt für eine 2GB SD-Karte. Das machen wir am besten mit fdisk in der Konsole, man kann auch gparted(Grafisch) nutzen aber komischerweise mountet dann bei mir das RootFS nicht ebenso wenn das RootFS ext3 ist, so wie ich raus gefunden habe geht das nur mit SDHC Karten also SD-Karten mit Speicher der >2GB ist.
Der Rest ist recht einfach, einfach folgendes eingeben: dp1 np1 <enter> +20MB <enter> np2 <enter> +1800MB <enter> np3 <enter> <enter> Danach mit p schauen ob alle 3 Partitionen erstellt wurden und mit w Speichern und fdisk beenden. Jetzt müssen wir noch die Partitionen Formatieren(für ext3 muss noch -j in der zweiten Zeile angegeben werden):
[Bearbeiten] BootFS/RootFS einrichtenDieses ist bei allen Distributionen gleich als erstes kopieren wir den Kernel auf das Speichermedium.
Jetzt muss noch das RootFS erstellt werden:
[Bearbeiten] uBoot ENVs einrichtenSo jetzt sind wir fast fertig nur das Wichtigste fehlt noch, wir müssen dem Bootlader noch sagen wo er den Kernel findet und dem Kernel wo er das RootFS findet. Dazu drücken wir eine Taste um denn Autoboot zu unterbrechen und stellen folgendes ein:
Bei Android muss noch ein "init=linuxrc" in die zweite Zeile eingefügt werden. So das war es wen ihr alles durchgearbeitet habt könnt ihr die SD-Karte in den Slot stecken und denn Reset drücken danach sollte das Bord booten. [Bearbeiten] uBoot ENVs Beschreibung
[Bearbeiten] Tips/Tricks/Files[Bearbeiten] emDebian/Gentoo[Bearbeiten] Firstboot (Root Password)Beim ersten Start ist kein RootPW gesetzt b.z.w. es ist nicht bekannt, daher beim starten einfach init=/bin/bash in die Bootzeile von UBoot einfügen, danach kann mit passwd das Passwort gesetzt werden danach einfach das wieder entfernen und man kann sich normal einloggen. [Bearbeiten] /etc/fstabBeispiel der /etc/fstab: Datei:Fstab.txt [Bearbeiten] /etc/X11/xorg.confBeispiel xorg.conf fürs 7" Display: Datei:Xorg.conf.txt [Bearbeiten] Touchscreen kalibrierenFolgende Zeile zur /etc/X11/xorg.conf bei [Section "InputDevice"] hinzufügen.
Und dann noch folgendes machen:
Mit folgenden Einträgen in die /etc/X11/xorg.conf bei [Section "InputDevice"] kann man jetzt erst mal die kreuze ausrichten (Siehe Bild.)
Als nächstes muss man noch die Min/Max werte ermitteln dazu Links unten und oben rechts die Min/Max werte in die xorg.conf übertragen.
Beim 7" Display muss man jetzt nur noch der SW sagen das der Touchscreen Falschrum verbaut ist dieses geht mit folgenden Eintrag in die xorg.conf.
Jetzt noch den Eintrag [Option "Calibrate" "1"] wieder aus der xorg.conf raus schmeißen dann sollte alles funktionieren. Für eine genauere Justierung kann man den xinput calibrator benutzen. [Bearbeiten] Konsole auf dem TFT und Seriell ausgeben
[Bearbeiten] Virtuelle MausWer lieber mit einer Maus arbeitet und ein iPOD/iPhone besitzt kann RemotePad benutzen einfach aus dem Appstore Laden (Kostenlos), den Quellcode für die Anwendung gibt es unter http://www.tenjin.org/RemotePad/ dieser lässt sich recht einfach auf dem Board oder in einem Buildroot compilieren. [Bearbeiten] BildschirmtastaturAls Bildschirmtastatur kann man xvkbd verwenden, bei Xfce z.b. einfach einen Link dazu in dem Autostart Ordner erstellen damit es beim Start von xfce geladen wird.
[Bearbeiten] Android[Bearbeiten] Sonstiges[Bearbeiten] SD-Karte/USB-LW Backupen/Restore[Bearbeiten] Backup
oder nur das rootfs
[Bearbeiten] Restore
oder
[Bearbeiten] Restore 2GB Backup -> 4/8/16...GB SD-Karte
Und danach mit gparted die swap Partition Löschen danach die RootFS Partition vergrößern und eine neue swap erstellen. Achtung !!! Dieses kann bei Gentoo Probleme geben da beim Vergrößern von ext2/3/4 die Inodes nicht angepasst werden können, wird es auf Grund der vielen Dateien von Gentoo Probleme geben [Bearbeiten] Hardware[Bearbeiten] Connector / GPIO Belegung[Bearbeiten] SDK-Board[Bearbeiten] RS232/TTL(CON1-3)
Achtung !!! CON1-3 sind wohl nur zum Messen gedacht will man diese direkt benutzen muss der jeweilige MAX2323CPE ausgelötet werden. [Bearbeiten] CON8/Taster
[Bearbeiten] CON6
[Bearbeiten] CON4/CMOS Camera
[Bearbeiten] CON9/10 Touchscreen
[Bearbeiten] CON5
[Bearbeiten] LCD0/LCD1
[Bearbeiten] Stamp-Modul[Bearbeiten] JTAG
[Bearbeiten] PA.1 / PB.1 / PC.1
[Bearbeiten] Peripherie Beschaltung[Bearbeiten] SDK-Bord[Bearbeiten] Stamp-Modul[Bearbeiten] Links/Downloads[Bearbeiten] Softwares3c2410 USB DL Tool für Linux Crosscompiler von CodeSourcery [Bearbeiten] HardwareI2C TCN75 Sensorauswertung mit Dastellung über das rrdtool. Einige Basteleien (Tempsensor, RGB Treiber, MEMS ... Programm Beispiele für WinCE und QT [Bearbeiten] DatenblätterAnleitung(Chinesisch) Dimension Stamp-Modul Micro2440 + SDK-Schaltplan 7" LCD Schaltplan 3,5" LCD Schaltplan [Bearbeiten] HändlerBezugsquelle Watterott
|