Porting Linux to the HP Jornada 820

François-René Rideau
http://fare.tunes.org/

1 Bounty Hunting

I'm looking for a kernel hacker who'd like to complete the port of the linux kernel to the HP Jornada 820. The 820 is arguably the second best PDA that ever existed. The volunteer kernel hacker will receive a unit of the machine, and I'm raising funds to also offer him a bounty when the kernel port is complete.

If you are interested in participating in this bounty hunt, or if someone you know could be interested in it, on either side of the bounty, please contact me.

And now for the details...


2 Why The Hunt

I have a HP Jornada 820, and I think it'd be a great Linux device. At this moment, the only PDA remotely in the same league is the Zaurus SL-C700: only the two of them have a full size VGA display or a full size keyboard. The Jornada 820 is not as fast, ramful and colorful as the C700, but for most uses, you won't notice these difference, whereas the 820 has a much bigger and comfier keyboard, and quite a few perks, too.

However, I realize I don't have the time, skill and dedication to complete a useful port of Linux to the Jornada 820, whereas the WinCE port of Emacs is good but still doesn't feel home enough. So I'm raising funds to offer a machine and a bounty to a hacker who would volunteer to complete the Linux device driver support for this machine.

Thus, if you too own a Jornada 820, or intend to purchase one, you can send funds to the e-gold.com account 104835, and I'll use these funds for the purpose of completing the Linux port. If you're a kernel hacker, and would like to own a swell PDA for which you can proudly tell « I completed the Linux kernel port to it », then contact me!


3 The HP Jornada 820: A Great Machine!

The HP Jornada 820 is a great little PDA.

If only Linux or BSD would actually run on it, it'd be a truly great machine, a dream machine even1.


4 Status of the Linux Kernel

Currently, the Linux kernel boots, but only the serial device is supported. It is Hiroshi Ishii who managed to get Linux running that far, with the serial console and a kernel-builtin ramdisk, by combining my patch with a patch for the Jornada 720.

This obviously doesn't allow for any useful operation of the machine.

Also, a boot loader, blob, allows to hack around and help develop the kernel2. Framebuffer support is almost ready, but requires some configuration with known values. Nobody has made any attempt at supporting other devices yet.

Documentation is available for all the chips involved, and there already exists drivers for most of those chips (all of them?); however, the exact hardware wiring is unknown so some guesswork is necessary to properly setup those drivers. We're trying to locate some of the engineers at HP who designed the thing, but it's not certain that we'll be able to provide any useful information.

All in all, the kernel hacker may well end up spending more time configuring things for existing drivers to work, and more generally gluing things together, than actually coding new drivers. It's a job that requires analysis skills, dedication and time, rather than an algorithmic genius.

All the documentation gathered for 820 linux kernel hacking is on my FTP site samaris.tunes.org. The user is jornada and the password is 820. Be sure to read the file 00README and the files linux/README*: they contain information on where to find documentation and software, how to install your cross-compilation toolchain, how to get a « working » Linux kernel, whom to contact, etc.

For coordination among hackers and alpha-testers, the rendez-vous is the Jornada mailing-list at handhelds.org. Kernel hackers may profitably subscribe to the Linux-Arm-Kernel mailing-list, too.

The ultimate task would be to play well enough with WinCE so as to not have to clear all memory (which requires removing the backup batteries) after Linux dies, so that the ROM may boot up correctly. It would perhaps even a way to run WinCE programs from within Linux would be neat. However, the only WinCE support that is required (beside being able to bootup with hpcboot) so as to earn the bounty is that Linux be able to work across power off/on cycle. But currently, the more urgent task is to get basic console support.


5 Who is the task made for?

Clearly, the 820 is not a brand new sexy machine; it is end-of-life. When HP bought Compaq, the Jornada line was discontinued in favor of the iPAQ. So there is not a lot of fame in porting Linux to what is and will remain a confidential platform. Nevertheless, if you are a junior kernel developer, it is still a good thing to add to your resume; this experience can help you get a job where you will actually work on bleeding edge hardware. Moreover, the 820 is still one of the best PDAs ever made; its keyboard is unequalled in any PDA, and the CPU, memory and screen are still quite good, if no more top-of-the-line. Nothing to be ashamed of.

At the time being, bounty is more symbolic than substantial (with current funds, around $100 in addition to the free 820 unit; I won't commit to any precise amount until I actually cash in the money from the other declared contributors). Even if I manage to raise more funds, the bounty will still be a far cry from what would be required to hire a real full-time kernel hacker to do the job. So we're looking for someone who will be mainly motivated by the thirst to learn, by the lust for cool toys that he can claim partly his own creation, by the pride of having completed a port of the linux kernel.

All in all, if you are a wanabee kernel hacker who would like to work at the device driver level, this project can be a great way to introduce you to kernel hacking, in a way that touches all the low-level layers of the system. Since the platform is confidential, you can work at your pace during your free time, without having to keep up with lots of busy geniuses, yet with a few friendly alpha-testers.

If the task doesn't fit what you want to do, but you know someone who could be interested, I'd be very pleased if you would put me in contact with him.


6 Who is to fund the project?

Current and future owners of HP Jornada 820 who would like to turn it into their dream machine, are interested in funding this project.

I have found skilled people willing to do the job for $5000. There is no guarantee behind that, and a preliminary study, to get a better estimate, would cost about $500, plus the machine. All in all, we the project would be fully funded if I gather a total of $6000 in contributions, though there is still a part of risk currently even with this amount. Still, we can reasonably expect that after hiring a hacker semi-full time for a month or two, enough of the kernel will be working so as to make the machine useful, and to attract hacker mindshare that will lead to the completion of the port.

Current owners have already sunk the cost of the machine. To us, getting a C700 would cost $600, for something that may be better in many respects, but not in all respects. We could easily contribute $150 to the fund (maybe more). There have been some 20 people to publicly express the desire to run Linux or BSD on their 820. If I can convince all of them, or an equal number of existing owner, that the investment will work, I will be able to gather something like $3000.

More of a problem is to find another $3000 to complete the funding. There is a steady stream of HP Jornada 820 being sold on eBay (more than one per day), with a typical price between $180 and $260, and often a $350 "Buy It Now" cap price. Considering that a C700 costs $600, and comes now with Linux bundled, I can imagine that no one would pay more than $400 for a 820 with Linux. That means that I can expect but $100 by person from people I'd attract into buying a 820. So I'd have to convince at least 30 people to acquire a 820. Tough.

This is a marketing problem. I have no special education, experience or taste about marketing, so suggestions are welcome.


7 The Bounty Protocol

People who want to contribute to the fund should send money to the e-gold.com account 104835. Accounting will take place in gold. The money will be used to purchase a machine for the project and send it to a hacker (then to another hacker if the first hacker doesn't complete the project), and to pay for the bounty. If the money isn't used, it will be returned.

A hacker will be selected among those who volunteer for the project. You don't have to be a well-known expert to volunteer, but you have to be committed to learning enough of what you don't know yet so as to complete the project. The project doesn't require genius, but it does take a lot of dedication.

Note how I above listed the devices in decreasing order of importance to us users who fund the project: a partially complete kernel (say, up to power management) is worth the hacker keeping the machine and getting part of the bounty. With a complete kernel (all devices save the winmodem), he'll get the full bounty. A BSD hacker would be welcome, but only if he commits to complete the kernel support up to the VGA port — I won't settle with partial completion on a kernel for which it's difficult to find another hacker.

If the hacker gives satisfaction, he can keep the machine. If he completes enough of the required drivers, he will be awarded part of the bounty. If he completes all the drivers, he will get all of the remaining fund money. If the project isn't completed, the remaining money will be returned to the funders (or each funder's credit sent to whomever the funder wants), to the prorata of their contribution (accounting in gold, minus all expenditures, e-gold fees, etc.).

Why trust me with either side of this transaction? Because I have a reputation to preserve (see my homepage, my TUNES project, my academic career, etc.). Plus, you have my full real-world coordinates on my page, so you can always sue me or otherwise seek revenge if I piss you off3.

Once again, if you want to participate on either side of this bounty-based development, or know someone who could participate, please contact me.


8 Project Status

We have only collected two $150 donations, plus one promise of donation.4 I have sent my unit to a Linux kernel hacker through the postal office, but he hasn't received it yet. He has mirrored all the docs and code from my FTP site.





1: Actually, a light portable Linux machine with 16MB of RAM or more, a fast ARM processor, a color VGA screen and sound, hundreds of megabytes of persistent storage, and lots of battery autonomy is exactly the machine I was dreaming of in 1992-1993).
2: blob notably saved the day by allowing me to discover and locate a device that was periodically writing a 1ms real-time 16-bit counter directly to memory, right within the area in which the compressed kernel image was loaded by default.
3: However, if you send thugs to teach me how to live, please ensure beforehand that these are indeed my coordinates; otherwise, the victim could very well turn out to be an innocent whose identity I have stolen — muhahahaha.
4: As a comparison, I could found a reputable hacker willing to work at cost two months full-time for $5000, but this is way more than I can raise at this time. Other hackers have volunteered on their spare time.

Faré RideauFaré on ComputingFait avec Scribe