Debian installer for SheevaPlug available
You can now use the Debian installer to install Debian on the Marvell SheevaPlug. This routine will install Debian testing (squeeze), which is currently under development. The installer itself is also under development, so there may be problems from time to time but it should generally work pretty well. The Debian installer doesn't support installations to flash, but you can use it to install to a USB stick or disk as well as to an SD card. Here are installation instructions.
Upgrading SheevaPlug's U-Boot to version 3.4.19
Marvell made a new version of U-Boot for the SheevaPlug available last month. This version, 3.4.19, integrates SD card support and improves support for FAT32 USB partitions (although USB support in general is still a bit flaky). This page describes how to install this new version of U-Boot on your SheevaPlug.
First of all, download the SheevaPlug U-Boot 3.4.19. Unpack the zip file and copy the file u-boot-3.4.19/u-boot-rd88f6281Sheevaplug_400db_nand.bin to your TFTP server. I suggest you call the file u-boot.bin.
Then start your SheevaPlug and type the following:
setenv serverip 192.168.1.2 # IP of your TFTP server setenv ipaddr 192.168.1.200 bubt u-boot.bin
The upgrade process will ask whether you want to change the environment:
**Warning**
If U-Boot Endiannes is going to change (LE->BE or BE->LE),
Then Env parameters should be overridden..
Override Env parameters? (y/n) n
Make sure to answer "n" here.
We also need to make a small change to the u-boot configuration because this version of u-boot no longer accepts the console parameter we have been using. Thanks to Tom Rinehart for pointing this out. Instead of console, we'll therefore add a new bootargs_console and update bootcmd to make use of it:
setenv bootargs_console console=ttyS0,115200 printenv bootcmd
You'll see that bootcmd contains $(console). You have to set a new bootcmd and change the console parameter to $(bootargs_console). In my case, I'd type:
setenv bootcmd 'setenv bootargs $(bootargs_console); run bootcmd_usb; bootm 0x400000 0x0800000; reset'
Make sure you don't forget the quotes!
Finally, save the environment and restart your machine:
saveenv reset
SheevaPlug lenny tar ball and SD cards
I updated my SheevaPlug installation instructions today to document how to boot from an SD card. The u-boot boot loader shipped with the SheevaPlug doesn't have SD/MMC card support, but PlugComputer forum user kwonsk created one that does (and which works pretty well, except for not working with some SD cards).
Debian 5.0 (lenny) tar ball for the SheevaPlug
It took me a while because of travel and other projects, but I finally released a tar ball containing Debian lenny for the SheevaPlug along with some installation instructions. It should be really easy to install Debian this way, but I'll also make sure that SheevaPlug support will be in the Debian installer for the next release of Debian. For now, check out the tar ball I prepared!
Power consumption of the SheevaPlug
Various people were wondering how much power the SheevaPlug consumes exactly. Laurent Guerby, who runs the GCC Compile Farm, posted some data today. According to his measurements with an Energy Monitor 3000, the SheevaPlug uses:
| 3.1W | just on, Linux booted |
| 3.3W | serial |
| 4.3W | serial + Ethernet |
| 5.4W | serial + Ethernet + 100% CPU |
| 6.0W | serial + Ethernet + USB disk |
| 7.0W | serial + Ethernet + USB disk + 100% CPU |
However, these figures should be seen as preliminary and relatively high values since power management for Kirkwood has not been implemented in the kernel yet. In particular, the Kirkwood chip has SATA and PCI-E but they could be turned off since they're not used by the SheevaPlug. This is currently not done in the kernel, so you can expect some improvements in this area.
SheevaPlug: the NSLU2 killer
I received a SheevaPlug this
week, an intriguing device that packs incredible power and functionality
into a tiny package. As many of you know, I've been doing a lot of work on
Debian for the Linksys
NSLU2 in the last few years. The NSLU2 is a key reason why ARM has
become the third most popular architecture in Debian (after 32 and 64 bit
x86), and I believe a main reason is that the NSLU2 is so incredibly cheap.
At a price under $100, most people don't think too long and simply buy a
device and do something cool with it.
The SheevaPlug is being offered at the same price range but offers considerably more. Riku Voipio asked the right question: "What would you do with something approximately 10x more powerful with same prize/size range?" I believe the SheevaPlug is a killer replacement for the NSLU2 and here's why:
- Marvell Kirkwood 6281 CPU at 1.2 GHz with 256 KB L2 cache (compared to a 266 MHz CPU)
- 512 MB RAM (compared to lousy 32 MB)
- 512 MB flash, enough for a basic Debian installation (compared to 8 MB)
- Gigabit Ethernet (compared to 100 Mb) and no proprietary microcode required
- 1x USB and 1x SD (compared to 2x USB: the only advantage the NSLU2 has)
- ... and finally: mini-USB with serial console and JTAG: while Debian on the NSLU2 works well and is stable, we regularly had users whose system would no longer boot and there was no good way to figure out why. The serial console on the SheevaPlug actually allows users to figure out what's going on.
I'm incredibly excited about the SheevaPlug and the first thing I did was to take the device apart and look at the inside. The results can be found in the SheevaPlug image gallery. My next project will be slightly more productive: porting Debian.
As I see it, we should support the following three installation variants for the SheevaPlug:
- To an external USB drive or stick.
- To an SD card.
- To the 512 MB flash memory on the device.
The first two should be relatively straight forward, but of course installing to the internal flash memory is particularly interesting given that 512 MB (plus compression) is enough for a basic installation of Debian. Unfortunately, installations to MTD flash are currently not supported in the Debian installer but I hope we can find a volunteer who wants to implement this functionality.
My next steps are to put a kernel for the SheevaPlug into the archive and to get a basic installation going. From there we can look at more sophisticated installation options and other functionality.