ARMed and dangerous
2005-10-06 08:56 am![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Went to the ARM Developers' Conference Tuesday -- or at least the free trade show associated with it. Not really much there of interest to a Linux-based software developer. It was interesting to see that Eclipse has become a popular IDE, and that most of the RTOS (Real-Time Operating System) vendors now coexist one way or another with Linux. GCC remains the most popular compiler. No surprises. On the hardware side, the main newcomer is Freescale, which is Motorola's spun-off semiconductor division.
On the way back to work (it was a small trade show, and reasonably close to work) I picked up a little USB enclosure for a laptop drive, and resumed my current project: putting together a development environment for the ARM-based Stargate boards my group is doing a little prototyping with. The Stargate is basically a headless server, based on a 400MHz XScale (ARM) processor, with 64MB of RAM and 32MB of flash, on a board measuring 3.5x2.5 inches. It runs on Linux, but a rather old and stripped-down distribution so as to leave plenty of room for user software.
As I've mentioned earlier, I've been experimenting with various toolchains and trying to put together a Java runtime environment for the board. I spent Tuesday afternoon and Wednesday morning setting up a coworker with a C environment (all he wants to do is twiddle the IO) by giving him an account on my desktop machine. That was easy.
The easy part out of the way, I got back to the main problem at hand: setting up a Java-friendly runtime environment for my other coworkers. This time I took the easy way out: Debian. I already knew, from previous experimentation, that Debian has packages for at least three different Java runtimes that work for our software. So, says I to myself, how hard could it be to get Debian running on the Stargate board?
The answer is: only a little harder than I expected. Basically all I had
to do was to plug in a preformatted (since the board doesn't have
fdisk
) USB hard drive and run debootstrap
.
There were a few complications. First, even though the
debootstrap
command takes an "architecture" parameter, it
still needs to chroot
into the environment it sets up and run
code (mainly dpkg
) to finish installing the packages it
downloads. So it didn't run on my desktop machine.
Secondly, debootstrap
needed a couple of programs I didn't
have on the board, mainly ar
and zcat
. And
ar
is needed to unpack Debian packages. So I had to do the
initial unpacking on my desktop. OK, that's pretty easy. Then, the
aborted run of debootstrap
on my desktop machine left things
in a broken state, so I had to wipe the partition and try again. Finally,
the kernel on the board was apparently having problems with the "large"
(6GB) disk, so I switched to a 2GB filesystem in partition 1.
So I now have what appears to be a perfectly useable Debian install on the Stargate board. It's still using the old kernel, since the Stargate's bootloader doesn't know how to boot from a USB drive. I intend to fix that soon by moving to a compact flash Microdrive (can't use flash because I really need a swap area, and flash allows only a limited number of write cycles. Also, writing on flash is s..l..o..w... And I still have to pick a JVM and verify that it works. That's my project for this morning.