Naggischer Freerunner
Geschrieben von MMind am Dienstag, 3. Dezember 2013 in Geräte, Openmoko Freerunner
Der Openmoko Neo Freerunner war ja mein erster Schritt in die embedded-Welt. Leider fristete er die letzten Jahre eher ein Schattendasein — verdrängt durch Oyo und Rockchip-Geräte.
Da viele meiner Samsung-spezifischen Umbauarbeiten alle S3C24xx Prozessoren betreffen hatte ich schon mal den Wunsch diese auch auf dem Freerunner zu testen und dank einer Spende von Christoph Pulster bin ich seit neuestem Eigentümer eines Debug-Boards für den Freerunner. Also hieß es nur noch, dem Freerunner die Hüllen vom Leib zu reißen und den fummeligen Folienleiter anzuschliessen.
Das Board stellt einige Features bereit — JTAG, ausgeleitete Pins von I2C- und SPI-Bussen und mehr — aber ich denke mehr als die serielle Ausgabe der Konsole werde ich gar nicht benutzen.
Heute Abend hatte ich dann auch endlich mal Zeit einen Kernel für den Freerunner zu bauen. Der Start gestaltete sich etwas schwierig, da zum einen der Kernel nicht wirklich weit kommt und zum anderen ich nicht wusste welcher UART nun der Debug-UART war. Natürlich war es der letzte probierte UART, der dann doch noch ein paar Kernel-Logs ausgab:
Booting Linux on physical CPU 0x0 Linux version 3.13.0-rc2-next-20131203+ (hstuebner@marty) (gcc version 4.4.5 (Debian 4.4.5-8) ) #229 Tue Dec 3 22:50:48 CET 2013 CPU: ARM920T [41129200] revision 0 (ARMv4T), cr=c0007177 CPU: VIVT data cache, VIVT instruction cache Machine: GTA02 bootconsole [earlycon0] enabled Memory policy: Data cache writeback CPU S3C2442B (id 0x32440aab) S3C24XX Clocks, Copyright 2004 Simtec Electronics S3C244X: core 400.000 MHz, memory 100.000 MHz, peripheral 50.000 MHz LOCK: Slow mode (1.500 MHz), fast, MPLL on, UPLL on Built 1 zonelists in Zone order, mobility grouping on. Total pages: 32512 Kernel command line: console=ttySAC0,115200 earlyprintk PID hash table entries: 512 (order: -1, 2048 bytes) Dentry cache hash table entries: 16384 (order: 4, 65536 bytes) Inode-cache hash table entries: 8192 (order: 3, 32768 bytes) Memory: 126288K/131072K available (2355K kernel code, 163K rwdata, 708K rodata, 121K init, 226K bss, 4784K reserved) Virtual kernel memory layout: vector : 0xffff0000 - 0xffff1000 ( 4 kB) fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB) vmalloc : 0xc8800000 - 0xff000000 ( 872 MB) lowmem : 0xc0000000 - 0xc8000000 ( 128 MB) modules : 0xbf000000 - 0xc0000000 ( 16 MB) .text : 0xc0008000 - 0xc0305f34 (3064 kB) .init : 0xc0306000 - 0xc03247e4 ( 122 kB) .data : 0xc0326000 - 0xc034ef88 ( 164 kB) .bss : 0xc034ef88 - 0xc0387a50 ( 227 kB) NR_IRQS:103 S3C2442: IRQ Support irq: clearing pending status 000b02f0 irq: clearing pending status 000902d0 irq: clearing pending status 000000c7 irq: clearing pending status 00000082 sched_clock: 16 bits at 1000kHz, resolution 1000ns, wraps every 65535000ns Console: colour dummy device 80x30 Calibrating delay loop... 199.47 BogoMIPS (lpj=498688) pid_max: default: 32768 minimum: 301 Mount-cache hash table entries: 512 CPU: Testing write buffer coherency: ok Setting up static identity map for 0x30252760 - 0x302527b8 devtmpfs: initialized regulator-dummy: no parameters DMA: preallocated 256 KiB pool for atomic coherent allocations S3C Power Management, Copyright 2004 Simtec Electronics S3C2442: Initialising architecture S3C244X: Clock Support, DVS off bio: create slabat 0 Switched to clocksource samsung_clocksource_timer s3c-adc s3c24xx-adc: operating without regulator "vdd" . platform s3c24xx-adc: Driver s3c-adc requests probe deferral msgmni has been set to 246 Block layer SCSI generic (bsg) driver version 0.4 loaded (major 252) io scheduler noop registered io scheduler deadline registered (default) s3c2440-uart.0: Controller clock not found samsung-uart: probe of s3c2440-uart.0 failed with error -2 s3c2440-uart.1: Controller clock not found samsung-uart: probe of s3c2440-uart.1 failed with error -2 s3c2440-uart.2: Controller clock not found samsung-uart: probe of s3c2440-uart.2 failed with error -2 bootconsole [earlycon0] disabled
Ich frage mich ob schon mal jemand einen 3.x-Kernel auf einem Freerunner gestartet hat — der letzte echte Kernel der alle Freerunner-Features unterstützte war ja 2.6.39 oder so.
Rückblick - Mein erster Streifzug ausserhalb des Gartens
Geschrieben von MMind am Freitag, 17. Dezember 2010 in Geräte, Openmoko Freerunner
Gelegentlich möchte ich auch Dinge aus der Vergangenheit - also vor dem Start des Blogs - aufarbeiten um darzustellen wie ich zu bestimmten Ein- bzw. Ansichten gelangt bin. An vielen Stellen wird es auch nützlich sein, auf solche allgemeineren Einträge zurückverweisen zu können um Betrachtungen eines bestimmten Themas nicht mit allgemeinen Informationen zu überfluten. Heute also etwas über mein erstes freies Gerät.
Das erste mal aus dem "Walled Garden" herausgetraut habe ich mich Mitte 2008 mit dem Openmoko Freerunner - einem Mobiltelefon.
Hardwareseitig ist der Freerunner dem Oyo recht ähnlich: Samsung S3C-SoC mit 400MHz und 128MB Arbeitsspeicher. Nur dass der S3C-2443 des Freerunners nur die ARMv4-Instruktionen unterstützt wärend der S3C-2416 vom Oyo das ARMv5 Instructionset bietet.
Ich hab dann auch direkt das von Openmoko gepflegte, OpenEmbeded-basierte GNU/Linux-System links liegen gelassen und bin auf dem Telefon direkt zu Debian gewechselt.
Das erste Jahr über war an die Nutzung als Telefon gar nicht zu denken. So nach und nach nahm dann aber der freesmartphone.org Software-Stack Form an, sodass ich den Freerunner dann bis Mitte 2010 als einziges mobiles Telefon genutzt habe.
Die Kombination X11 + E17 mit Illume Frontend + allem was Debian zu bieten hat ist schon überwältigend. Sei es zum Geocachen, Sterne beobachten oder eben ganz profan zum telefonieren - man möchte einfach nicht mehr zurück.
Dann bin ich doch dem Google Nexus One erlegen - aber darüber schreibe ich ein anderes Mal . Nur soviel: auch auf dem Nexus One ist Debian mein Ziel, denn der Schritt von Debian zu Android fühlt sich schon sehr einschränkend an.
Seite 1 von 1, insgesamt 2 Einträge