Archive

My new project: juicyD (maybe)

Being a sysadmin I tend to install operating systems quite often on various bits of hardware. This means a lot of CDs. I carry at least 4 CDs in my laptop sleeve and that's not really enough, plus I sometimes burn CDs to update firmwares in laptops, etc. It doesn't sound like the end of the world, because it's not, but that doesn't mean the status quo is worth keeping. I've been thinking for a while now that it would be great to have a solid-state device I could use as a USB CDROM. I could load it up with a bunch of ISOs and boot from them without having to carry round a load of CDs or waste blank CDs for BIOS/firmware upgrades that are only a few MB. A little research showed that, as ever, Linux was the perfect candidate because of its USB Gadget subsystem, which lets it act as USB Mass Storage, USB Ethernet, USB Serial, USB MIDI and other things. While the Mass Storage support currently in the kernel doesn't include CDROM support, there is a patch kicking around which adds it as an option when loading the g_file_storage kernel module. Next up - selecting some suitable hardware to test this on. Atmel NGW100 Atmel's NGW100 ticks all of the boxes for a test rig, it's got a serial port, a USB port, a power port and an MMC card slot. It's much bigger than a gumstix, and not powered by USB (although there is adubious sounding hardware hack for this), but this is a low cost board to prove the project is possible. The board comes with linux pre-installed, but the kernel isn't super-new, and since the CD-ROM patch isn't in mainline yet, I needed to get the board up to date. Fortunately there is a great community of people around embedded linux. With a bunch of googling and help from HcE on #elinux, last night I got stuck in and built a toolchain, kernel, root image and upgraded the bootloader. This morning I uploaded a new image with a slightly old version of the CD-ROM patch (because I only just found the newer version while writing this post). There's also plenty of information around about this, but it can be a challenge to wade into a brand new system and immediately know the right places to look (the avr32linux.org wiki turns out to be supremely useful, as was HcE). So the question is, does it work? The simple anwer is yes, a Linux machine sees it as a CD-ROM drive and can mount it as such. The more complex, and slightly worse answer is not yet, because a test against a BIOS didn't work. It's possible this is a hardware issue, but it could be a software issue too, so I'm casting around for ideas :) (the name "juicyD" is probably temporary, and I noticed about 6 hours after I chose it that someone commented on an earlier post with that nick a while ago. Weird)