« Back

HP Jornada 680: Part 2

11 May 2023 - faintshadows

With the failure to install NetBSD the first time around on the Jornada, I'm giving it another shot now, but with an older version of NetBSD, 7.2.

The issue I had prior was the install program freezing a lot, or just segfaulting. That was 9.3 (the latest version at the time of writing). When looking up the Jornada again, I found other people who had gotten 7.x running on it, and it's not like I need the latest and greatest software anyways.

To start, I booted up the Jornada, waking it from its slumber. It wasn't happy, the CMOS in it died so, naturally, I had to set everything back up again. Thankfully I've been through this process so many time at this point that it's trivial. I set the Storage Memory and Program Memory split to ~4MB to 12MB, respectively, giving FreeBSD 12MB for its usage, and the 4 to hold the bootstrap and kernel. I could make a small FAT32 partition on the 1GB CF card I'm using for BSD, but I'd rather not deal with custom partitioning possibly screwing things up.

I downloaded the 7.2 ISO, and extracted its contents to a CF card. Booted it up in WinCE, and pointed it to the kernel and set it to a Jornada 680.

And it couldn't find the root device.

And I have to set up WinCE all over again.

Copying a different kernel to the root of the CF card, and remembering to also copy the miniroot.fs file, we try again.

The NetBSD Installer

That's more like it. The installer complained of no disk labels, but, unlike 9.3, I got far enough to actually add one. I made a 945MB root partition, leaving 32MB for swap. Could I have used more swap? Was the 128MB the installer recommended a good idea? Probably not, I'm gonna have bigger issues before I fill 128MB of swap. And 32 is twice the amount of RAM in the system to begin with.

I chose to install without X11 this time around, though if this goes well, and I have disk space left, I can add it later. X11 is supported on the 680, though I can't imagine it runs well at all.

Unfortunately, I've hit a snag, where when I try to mount the other CF card, the one with all the install sets on it, I get mount_msdos: /dev/wd0a on /mnt2: Device not configured. What does that mean? No clue! I've tried different partitions and other options, but for whatever reason it can't figure out how to mount this card.

I abandoned the installation, and opened a shell only to find out that the partition was wd0d. Very straight forward.

Failed extraction

It started off good, but when it got to the modules set, it failed its CRC check. Of course its the kernel modules. I skipped it for now, and I'll go back to re-add it later, assuming the rest of the sets work.

They did not.

After some discussion with friends I decided my giving it only 32MB of swap was a likely cause for this issue, so I restarted the installer, giving it 128MB of swap. Same issue.

I was then told to try NetBSD 5.x, so I selected 5.2.3, from 2014. Same deal, do the WinCE OOBE, set up the bootloader, and go.

..Except NetBSD 5.x doesn't have an installer for hpcsh. Because of course it doesn't. NetBSD 6.x it is then.

NetBSD 6.1.2 downloaded, which does indeed have an installer program present. Back to where we were, installing the sets. I chose to do a minimal install as to just get it over with sooner so I wouldn't waste time getting most of the way through before it inevitably failed.

Thankfully, it failed, again, in the same way, on the first set. Except I accidentally re-ran it and it worked? Same for the next set. However once it got to the base set, it just kernel paniced outright, neat.

Kernel panic'd extraction


After putting the Jornada down for a while, and doing other stuff, I come back to it now with another goal. I found a mirror of JLime, the Linux distribution for WinCE devices. Like NetBSD, it needs to be booted from Windows CE, though this comes as a pre-installed and ready to go tarball you extract to an ext2 partition you have to make separately. So instead of bouncing between two CF cards, I can just have the one installed.

JLime boot screen Output of /proc/cpuinfo

Somehow, amazingly, it works! Even the 3Com PCMCIA Ethernet card I have. No futzing about, it just showed up as eth0, and I grabbed a DHCP lease and was on my way. To my surprise, too, what remains of the JLime repos exists as a freely accessible mirror on, you guessed it, HPC:Factor. Genuinely surprised me that they'd allow this to be free, and not require donating. Maybe they realized that you couldn't really make it paywalled, or the package manager wouldn't be able to connect. Regardless, I'll let them have this one.

My website loaded under Konqueror

Performance is, fine. JLime comes with IceWM as its default DE, and includes Dillo and Konqueror as browsers. By the looks of it, however JLime configures its memory leaves you with 13,680KB for RAM. Not a whole lot, and I do wonder where the rest of it went, given the Jornada 680 has 16MB. This isn't the default split from Windows CE, that splites it in half 8/8MB for a RAMDisk and program memory, respectively. I'm glad I made the swap partiton 32MB though, as just having run Konqueror to load this website put me 4MB into it. Dropping out of X11 and turning off any unneeded services should help a lot in that regard. Dropbear, for example, is running by default, and while that would have been great back in 2009, since the keyboard is less than stellar on this machine, and the screen resolution leaves a lot to be desired, but I can't use that with modern systems, the ciphers are too old.

It looks like most of the userland is handled with BusyBox, which isn't surprising, it's fast and light, and both of those are needed with this little SH-3 CPU. Bash is not present, nor are any compilers. There's not much else included out of the box, your XTerm is rxvt, and the IceWM install is minimal, using the IceSimple theme (I don't know if this is the default or not).

I have yet to figure out of the package manager opkg works, as any command I've done past opkg update, to initially sync the repos, has just kind of sat there with no output. Package management is no easy task, absolutely not, but I'm not sure if it's actually doing anything, or just locked up on something. Passing the -V 2 or -V 3 flags for extra verbosity hasn't helped either.

Doing some looking up on the HPC:Factor forums, I found this pretty great quote:

However running opkg install on the device is super slow - it takes a few hours to install vim.

A few hours.

I wasn't really wanting to sit for a few hours and see if it could figure out how to install gcc or bash, and the alternative is creating a cross development environment on my desktop or another laptop I have lying around to cross compile SH3 to toss on that. Not at 2AM at least.


I came back to it the day after to see if I could get anywhere with the package management situation, but to no avail. I was also getting some weird freezes from poking around, so I called it here. Stop while I'm ahead, it works!

Perhaps I could build up a new "distro" for it sometime in the future, I'll have to see how the toolchain and kernel support for SH3 is in 2023… My hopes aren't high, but hopefully I'll be back soon with another post about this strange little handheld PC from '98.

~faint