NetBSD-current for openmoko GTA02
tworaz666 at gmail.com
Wed Dec 7 00:11:15 CET 2011
For some time now I've been spending some of my free time on getting
NetBSD running on my Freerunner. The port is far from complete, but as
far as I can tell it's the most advanced one up to date. Compared to
previous attempts this one doesn't require a debug board to see that the
OS is actually boots :).
What you can expect from it:
* Basic framebuffer driver, it's complete enough to get color text on
the screen, but the kernel has to be started from u-boot for it to work,
* Working serial port (requires a debug board),
* Working I2C driver,
* Basic PCF50633 driver (rtc + power button + basic detection of events
like usb cable plug/unplug, power management related stuff is not
* LED's + vibrator driver (controlled by sysctl),
* Working SPI driver (already supported by NetBSD), unfortunately there
are no drivers for peripherals attached to this bus :(
* Basic USB OHCI driver, host mode only, you can't log in into your
freerunner via ssh like under linux :(.
* AUX, Power button handling. Right now AUX does nothing besides
printing message to the screen. Power button can be used to shut down
* Touchscreen driver. Not very useful right now, but it works.
The easiest way to try it out is to:
1. Download the image from 
2. Boot your freerunner into u-boot (AUX+PWR)
3. Copy the image into device RAM by using dfu-util:
$ dfu-util -R -D netbsd-gta02-5.9.56.gz.ub -a 0
4. Connect to u-boot usb-serial console:
$ cu -l /dev/ttyACM0
5. Start the kernel:
GTA02v5 # bootm 0x32000000
If all goes well after a few seconds you should see some boot messages
scrolling on the screen. Next there the phone should start to vibrate,
flash some leds etc. After that it tries to list detected bluetooth
devices (doesn't work right now), displays current date and spawns a
shell. At this point there is not much that can be done. There is no way
to log into the device and execute commands without a debug board :(.
Fortunately it's possible to shut it down without removing the battery.
Just press and hold the power button for about 4sec.
Right now my main focus is to have the code cleaned up, split into
series of patches and submitted (at least partially) to NetBSD. I'll
probably continue working on this port, but can't promise that it will
ever reach the level of usability that linux has. It was mostly written
for fun and to learn a little bit more about NetBSD internals.
More information about the community