Linux on the Vodofone Power Handheld (bSquare Maui)
This project is far from working, but I like to invite the community to take part in getting a Linux to work on the
Vodafone power handheld.
The status of this project is not running.
Be sure to backup your Maui before starting to test!
Update information :
03.11.2006: I disassambled the Maui and soldered a serial port in to the Maui. Here the results (with pictures).
01.12.2006: Sorry for being "offline". I was busy moving to an other town (new job). Next step will be the serial port.
11.24.2005: Changed to the gcc 3.4.1 toolchain for the 2.6.14 kernel.
11.24.2005: Lucky me, I found the documentation on the serial port :-) Link.
11.22.2005: I rewrote the cross compiling section with all the info on compiling the kernel I have.
11.09.2005: Finally I fixed the "user mode" problem on HaRET. New HaRET uploaded. Seems to boot the kernel :-)
11.01.2005: I started to collect all the technical information I can get.
11.01.2005: Yesterday I cross compiled the first "Maui-kernel". Here the howto. Still not booting.
10.30.2005: Connected to the Maui with Knoppix and synce.Here you find a little howto.
10.30.2005: We need our own machine type, so here it is: 878 (registered at http://www.arm.linux.org.uk/developer/machines/)
10.29.2005: Today I compiled the haret to give a bit more information and put it here for download. Still not booting.
In order to make Linux running on any device we need
- a bootloader
- a kernel
- an init.rd
I tested several bootloader on the maui, but the most promising seems to be the "HaRET" bootloader.
You will find the haret-0.3.6.exe at google. The problem with this release is, that it looks for the cpu information
at register 2 on coprocessor 15. As the Maui cpu has no fitting information in this register, haret won't start :-(
First I tried a build for the jordana 720 http://acid.ch.pw.edu.pl/~sq5bpf/mylinux/j720/files/haret/ that
has a workaround for this problem. This HaRET runs well on the Maui, but it expects a different cpu.
So I decided to compile a haret myself with the information from these sites:
This new haret recognizes the cpu and takes commands from the telnet client (yes!).
Information on the haret commands can be found here.
Download haret-maui.exe to your PC and rename it to haret.exe. Then wite a file called
default.txt. Write this code to the file default.txt:
set kernel "\Storage Card\linux\zImage"
As you see, haret will expect the kernel (zImage) and the initrd on the storage card located in a folder called "linux".
set initrd "\Storage Card\linux\initrd"
set mtype 878
set cmdline "root=/dev/ram0 rw ramdisk_size=8192 keepinitrd init=/linuxrc console=ttyS0,115200n8 console=tty0 cachepolicy=writeback"
mtype is a definition of the machine type, which has been registered as 878. The boot param for the kernel are set with
cmdline. This is not yet checked on possible problems, here any help is welcome.
After creating the default.txt you can copy the files haret.exe and default.txt with activesync to a folder on the maui
I located them at \Program Files\linux, but any location will do as long as the files are located in the same folder.
Haret uses GAPI to allocate the video RAM. If you don't have GAPI installed on your maui, download it
at http://www.wincesoft.de. After the installation and configuartion of GAPI haret can allocate the framebuffer
Haret offers a boot console to view the kernel messages. To access this boot console you need a telnet client.
The problem here is that the kernel and initrd are placed on the storage card, so we can't use a wifi card to make a
network connection. The solution is to install a telnet client on the maui and connect local to the haret on port 9999.
I installed the telnet client from http://www.symbolictools.de/public/pocketconsole/index.htm. To get the telnet
client to work you need pocketconsole and the telnet client http://www.symbolictools.de/public/pocketconsole/applications/telnet/index.htm.
First install pocketconsole. You will be asked to replace console.dll, confirm this question with "yes".
After installation you need to reboot. Next install the telnet client.
Now the basic setup is done.
Kernel and init.rd:
Haret expects a kernel and init.rd on the storage card placed in a folder called "linux". This is the main problem at
the moment, because a special kernel for the maui does not exist. Just to test haret I took the kernel and init.rd
for a loox 600 from http://loox-linux.sourceforge.net/demo.html (shell demo, renamed them to zImage and initrd).
The reason I took this kernel is, that that loox also runs with a XScale PXA250 processor. Well, it was a nice try,
but it does not boot. Here the most help is needed. We will need our own kernel.
Testing a kernel:
In order to test a kernel, we must copy the kernel and its init.rd to the storage card (folder linux). Now we can start
Before we run the default.txt, we start our telnet client:
Switch back to haret and click on "Listen for network connection".
Switch to the telnet client, type "op localhost 9999" (without quotations) and press enter. You are now connected to
haret. Switch back to haret and click run. A nice Tux will appear:
When you switch back to the telnet client you will read
Welcome, this is HaRET running on WindowsCE v4.10
So the bootloader is loading the kernel now. I have a test-kernel that makes the phone LED turn red, so something is
Minimal virtual address: 00010000, maximal virtual address: 7fffffff
CPU is Intel XScale ARM arch 5TE revision 2 product 16 stepping 4 running in system mode
Enter 'HELP' for a short command summary.
HaRET(1)# Physical kernel address: a0008000
Preloader physical/virtual address: a67da000
Physical initrd address: a0408000
Let's have fun on Maui ...
happening. Because I have not figured out how a serial connection should work I can't see more at the moment.
As I wrote, this is far from running. But I think a start is made and any help is appreciated, so I am looking forward to
comments. Please contact me at email@example.com.
Lets have fun on Maui ...
By the way: those nice screenshots were made with Pocket Screen Capture V1.0 :-)
Last update: 03.11.2006