Hello all. This post is intended to help newbies to the SL-C3000 and by extension the SL-CXXX series of PDA's. It's important to note that this post qualifies to right now *only*. I'm a veteran Linux systems administrator and typically I wear the developer hat. The Zaurus PDA humbles me and makes my end user hat much bigger and my developer hat quite small. You can know linux really well and the semantics of the pda and the embedded architecture will confuse you. Knowing the difference between a rootfs and a NAND flash image, etc is all very complicated, and someone needs to explain it. I aim to at some point. But the question that I had, and most newbies have is what is that killer ROM. What should I be using to get the most cool features and stability?
So where are we? The choices. We currently have:
Sharp ROM is an embeddix 2.4.18 kernel that has been quoted by many to be a huge mess. There's a nice Tetsu replacement kernel. With bvdd, you can play movies or SDL games at quite a nice speed. Sharp rom of course is quite polished as you would expect with the original software like Hancom office and Netfront3. It's also very bland. I dislike the system font and the icons and a lot of other things. It's definitely designed for business folk. It works well and is very stable. Sharp ROM is supported very well by the community, which at first glance I didn't think was the case. I'll explain why further on.
Cacko is a modified Sharp ROM. Though not supported officially IIRC, Tetsu kernel works perfectly with Cacko. My experience shows that Cacko beta has precisely 0 bugs aside from an issue with resolution changes to 320x240 crashing the PDA (usually when executing doom). Cacko has a better lookign system font, better icons and backgrounds and an overall better look and feel. The bottom line thing to remember is that Cacko is quite similar to Sharp ROM because it's changes bolted onto Sharp ROM. This has distinct advantages and disadvantages.
Yes Openzaurus for the SL-C3000 is usable now. Openzaurus is designed for the developer community. It is based on a much much much newer toolchain and a much much much newer linux kernel, 2.6.14, in fact. One of the most recent Linux kernels in existence. Openzaurus uses a replacement system called Opie which is based on Qtopia but has had a lot of community development done on it. Quite frankly, Opie is prettier than Sharp ROM or even Cacko IMHO. While in many ways Opie seems super mature, there's other ways in which it's a tad inferior. There's an alternate environment called GPE which instead of being based on QT is instead based on GTK. GTK on the desktop is very good, GTK on my PDA in my experience is not ready for primetime - again I'll explain my feelings below.
My usage. I break things, I test new stuff, I like to try out things. This typically works well on my desktop Linux PC where I'll try out things in VMware or dual booting or a number of different options. The PC has a number of advantages over the zaurus but the main one really is the ability to select multiple kernel configurations and hence being truly a dual boot capable system. This doesn't work on the spitz (SL-C3000) (yet). What I didn't really count on so much when I started this endeavor is my need for my PDA. I need it to be able to play movies and games, I need it to be stable for when I take notes in meetings or add tasks and calendar entries on the fly. I need it to always be available to me. I need the bluetooth to work as I quite often use it as a "sidekick" (always on in my pocket always connected to the internet). This poses a unique problem as you will soon find - a huge conflict of interest in my usage patterns and my tendency to break stuff.
Sharp ROM: Immediately I found myself interested in the alternatives. Sharp ROM was somewhat slow and some design decisions were made that I didn't like. I hunted and found my alternative. Cacko.
Cacko: While cacko wasn't any faster, it's better than Sharp ROM. Cacko requires you to pretty much blow away everything on your PDA. Installation was a major undertaking but one that I found was quite worth it. Many things simply work properly under Cacko that didn't necessarily under Sharp ROM. Cacko is super pretty. The default font is extra readable and the background choices, etc are quite lovely. Cacko with the exception of the nasty bug has worked well for me. But I was just so curious about openzaurus...
Openzaurus: I finally found a way to install openzaurus without demolishing my cacko installation... For me, my need for my stable pda required an easy path to return from whence I came. I created a NAND flash backup (about 16MB flash backup) of my cacko installation and flashed openzaurus. I created a 200MB disk image called oz.img on /dev/hda3 (the biggie vfat partition). On this image I extracted the openzaurus rootfs .tar.gz file. From there I flashed and rebooted. Openzaurus promptly dumped me to a command prompt in emergency mode because it couldn't find my kernel. No matter. I edited /sbin/init on the oz flash image and told it to mount the oz.img and pivotboot off of that. It worked! I backed up this NAND and now had a "dual boot" system. Once I got into Opie I had a lot of problems because of the way I did my "disk image" boot. Opie displays a dialog whenever it finds new media asking if you want to scan it or something. It doesn't respond to keyboard input. It happens to display this before you calibrate the stylus! Not cool. You can run ts_calibrate in a command line console before opie starts to get around this. Flash cacko NAND when I want to boot up into cacko, flash OZ nand when I want to boot up into openzaurus. On the surface it seemed like a lot of issues I had before with openzaurus were solved. With 3.5.4 (not released, not finished), fonts are a lot better (TRUE TYPE!) and sizes of things are better designed for such a high rez screen. Openzaurus/Openembedded has a really neet crossbuild environment and I soon built my own openzaurus. I had a problem with the 2.4 kernel where my on/off switch didn't do anything. In addition the @ sign didn't work which created some issues for my SSHing. It was totally obnoxious to me so I soon managed to get kernel 2.6.14 working. Fixed the keymap up, fixed many things. The on/off switch worked and power management seemed much better. Problem after problem had a solution.... until....
Crap. Both gpe.img and oz.img were showing as 0 bytes. All my recent calendaring entries, etc were gone. Crap crap crap. I rebuilt my opie image from scratch and it really took less time than I thought it would to get things back up to speed. After getting things back running I noticed a couple more issues. The on/off switch still functioned when the display was closed. This wasn't going to work for me as I often hit this button accidentally, either turning my z on when I want it off or off when I want it on in my pocket. This resulted several times in a freshly dead battery when I needed it most. Then things crashed again, I wasn't able to get my PDA turned back on and I was done. Opie was cooked. Back to Cacko.
And now we're back to Cacko. I've come to realize that I took a couple things for granted. For one, for the most part, everything works magnificently under cacko. Despite complaints from others, apps like netfront3 and hancom office are best of breed from what I can tell. The cacko rom displays text on the calendar month view which I liked better than the opie method of a color bar. Most importantly, for me, I'll say it and say it again, that for the most part cacko rom works very well and has the most support of the "cool stuff" community. That is tetsu kernel mods, a rockin cool mplayer, sharp music player, hancom office, netfront, and now a BVDD SDL for high frame rate linux gaming.
You can probably tell by now that Cacko is getting an astounding endorsement from me. The Cacko guys have it easier than the openzaurus guys. Building off of the sharp rom, a lot of work is already done. The cacko guys are taking something that works and making it look cool. They have the advantage of the seemingly better community support for the Sharp ROM setup. The openzaurus guys are undertaking a huge project in taking on all the work that sharp employees and other really smart Japanese guys do themselves. Cacko will most likely become quite stagnant. There's not going to be a lot of huge changes because the toolchain causes a lot of limitations. The cause of the stability is also the achilles heel for future development. Openzaurus is the future, unfortunately it's just not ready for primetime yet. The difference between now and a couple months ago when I last tried it is nothing short of astounding. Spitz is a relatively new platform and the openzaurus guys are still adjusting to it. A lot of the devs simply can't afford a spitz or high end SL-CXXX PDA. If you don't need your PDA to be perfectly stable and you have some development skills, then by all means you want openzaurus... If you're like me and while you like to tweak things, you've come to depend on the rigid stability of your PDA then you'd do well to stick to cacko for now.
Rest assured I'll continue to try openzaurus, and when it reaches a stability that I desire, I'll be back here touting it as the best thing since sliced bread. It kind of pained me to write this because the openzaurus/openembedded guys really are putting in an amazing effort. I almost wish my PDA wasn't so integral to my life so that I could run openzaurus now instead of later, but I need it to do the cool things, I need it to be stable and I need it to be those things now, and Cacko for the most part fits the bill. Openzaurus will be constantly updated. It will be ready in no time. This review should be taken in the context of now. Tomorrow it might be invalid.
I hope this gives someone a fresher view of what to expect from the different choices for Spitz. There's also pdaXrom and Debian but I haven't tried either of those. Both since they are based on X will probably feel slower than Sharp ROM or Cacko. Additionally, regarding my speed comparisons, it's important to note that Openzaurus is *clearly* faster in almost every single way than Sharp ROM. That alone might make it an attractive option to some guys. If anyone wants me to explain the images of openzaurus and the ways that the NAND flash and hdd relate to each other on the SL-C3K, please don't hesitate to ask. It's something that I was quite confused about and JustinP explained to me with the grace of a swan. I got a lot of help getting things running from the openzaurus guys like JustinP and Richard Purdie. There's good guys hanging out in the Openzaurus irc channel on freenode. I really hope I didn't hurt anyone's feelings by giving a bad review of Openzaurus. The idea behind it is fantastic, the implementation is going well and will be perfect soon... And it's changing fast. So remember, what applies right now may not be true a month from now.
To all those who have worked so hard to make my zaurus so much more useful than it comes from the factory - for free - Thank you. Thank you all.