Debian auf dem Oyo - erster Versuch
Geschrieben von MMind am Dienstag, 28. Dezember 2010 in Oyo
Mein Ziel ist ja immer noch ein echtes Debian mit X-Server auf dem Oyo zu betreiben. Gestern habe ich einen ersten relativ erfolgreichen Startversuch unternommen.
Vorbereitungen
Es sind einige Dinge einzurichten und auch einige Besonderheiten des Qisda-u-boots zu beachten.
Speichermedium
Benötigt wird eine MicroSD-Karte mit mindestens 2 Partitionen. Die erste sollte FAT-formatiert sein, da die mmcboot-Funktion unseres u-boot-Bootloaders scheinbar nur Kernel von einer FAT-Partition lädt. Die zweite, größere sollte dann ein etwas fortschrittlicheres Dateisystem enthalten. Ich wähle hier meist ext3. Es heißt zwar immer dass Dateisysteme mit Journaling-Funktion nicht für Flash-Speicher geeignet seien, da sie zu viele Schreibvorgänge erzeugen. Eine Untersuchung von Theodore Ts'o zeigt jedoch, dass der Overhead durch das Journal nicht so groß ist.
Basissystem
Weiterhin benötigt man auf alle Fälle ein Debian-Basisystem in der Geschmacksrichtung armel. Hier konnte ich mir behelfen indem ich einfach das funktionierende System von meinem Openmoko Freerunner kopiert habe. Dieses platziert man auf der zweiten Partition der SD-Karte.
Sollte das ganze später mal richtig funktionieren würde es sich anbieten das Installations-Skript aus dem pkg-fso-Debian-Projekt anzupassen. Das Skript ist momentan nur für Openmoko-Geräte gedacht, wird aus der originalen Firmware heraus aufgerufen und installiert ein Debian-Basissystem auf die SD-Karte, inklusive SSH-Daemon und dergleichen.
Kernel
An dieser Stelle habe ich erstmal den 2.6.21.5 von Thalia mit kleineren Modifikationen verwendet. Das Cross-Kompilieren eines Kernels habe ich ja bereits an anderer Stelle beschrieben.
Geändert sind dabei nur die Boot-Optionen und der zusätzlich aktivierte gadget-Ethernet-Treiber.
--- .config.old 2010-11-09 08:38:56.000000000 +0100 +++ .config 2010-12-27 15:56:43.000000000 +0100 @@ -278,7 +278,7 @@ # CONFIG_ZBOOT_ROM_TEXT=0x0 CONFIG_ZBOOT_ROM_BSS=0x0 -CONFIG_CMDLINE="root=/dev/mmcblk0p1 rootfstype=ext3 ro init=/linuxrc console=ttySAC0,115200" +CONFIG_CMDLINE="root=/dev/mmcblk1p2 rootfstype=ext3 ro init=/sbin/init console=ttySAC0,115200" # CONFIG_XIP_KERNEL is not set # CONFIG_KEXEC is not set @@ -1286,7 +1286,8 @@ # CONFIG_USB_GADGET_DUMMY_HCD is not set CONFIG_USB_GADGET_DUALSPEED=y # CONFIG_USB_ZERO is not set -# CONFIG_USB_ETH is not set +CONFIG_USB_ETH=m +CONFIG_USB_ETH_RNDIS=y CONFIG_USB_GADGETFS=m CONFIG_USB_FILE_STORAGE=m # CONFIG_USB_FILE_STORAGE_TEST is not set
Wichtig ist hier noch die Modul-abhänigigkeiten zu erzeugen. Ich habe mir hier mit einem chroot aus der Oyo-Firmware in mein Debian-System beholfen um das
depmod -aauszuführen.
Zur Größe des Kernels ist zu sagen, dass er 1,5MB nicht überschreiten sollte. Nach dem was ich in cpu/s3c24xx/mmc.c in den u-boot-Quellen gefunden habe liest er nur diese Größe (1586688 Byte) von der SD-Karte. D.h. größere Kernel-Images werden Fehler produzieren da dort der restliche Teil fehlt. Die maximale Größe der Ramdisk-Datei liegt bei 2,4 MB (2607616 Byte).
Das Kernel-Image platzieren wir in qdutil/uzImage auf der ersten Partition der SD-Karte. Auch die qdutil/urootfs.img muss vorhanden sein. Sollte sie fehlen, weigert sich der u-boot den Kernel zu starten.
Der Start
Mit all diesen Vorbereitungen und den gedrückten Vor- und Zurück-Knöpfen beim Einschalten, startete das System erfolgreich und ich konnte mich per SSH über die USB-Ethernetverbindung anmelden. Da der Kernel aber so furchtbar alt ist, arbeitet dieser nicht mehr mit aktuellen udev-Versionen zusammen, sodass die Anzahl der Geräte in /dev sehr überschaubar waren.
Es geht also tendenziell erstmal nichts, aber es startet wenigsten schon mal. Als nächstes werde ich das ganze mal mit einem aktuellen Kernel versuchen.
Da der u-boot in allen Readern der Qisda-Familie gleich zu sein scheint trifft die oben beschriebene Prozedur nicht nur auf den Oyo sondern auch auf alle anderen Reader auf Qisda-Basis wie dem Asus DR-900 oder Sagem Binder alias Fnacbook zu
30.12.2010 21:18 um 21:12 Cool
31.12.2010 03:51 um 03:12 hey. wollt nur mal anmerken, dass ich deinen blog mit interesse verfolge - hab noch keine zeit gefunden meinen oyo zu hacken, bin aber verdammt froh, dass es, wenn es so weit is, wissen gibt was andre teilen worauf ich zurueckgreifen kann. lg p.