[ARMedslack] Armedslack on Sheevaplug

Tyler T tylernt at gmail.com
Tue Oct 4 18:02:16 UTC 2011


> Unless there's some way of
> installing via an alternative route, e.g. usb or sd?

See below. I used an SD card to assist with the process, but I believe
uBoot is reliable enough now you could just put /boot directly on the
USB hard drive and skip the SD card entirely.

Reprinted from http://plugcomputer.org/plugforum/index.php?action=printpage;topic=1918.0
with permission by the original author (me!):

Here is my recipe for getting armedslack-current (about 13.1) working
on a SheevaPlug. My procedure differs a little from the official
instructions, because I think my way was much easier. ;) I didn't have
to set up a PXE/TFTP/NFS environment, which is a pain if you don't
already have them.

First hurdle was my Sheeva did not come with a CD, so I had to
download the difficult-to-find Windows support tools from
http://www.plugcomputer.org/index.php/us/resources/downloads?func=startdown&id=44.
I was then able to use the USB/serial connection to verify the Sheeva
booted OK with the stock Linux install.

For Slackware, I used an SD card for my boot device and a USB hard
drive for the root fs. I originally tried an old 64MB MMC (not SD, but
actual MMC) but u-Boot's 'mmcinit' did not recognize it so I had to
switch to a 1GB SD card. My reason for using an MMC/SD was because of
many reported problems with a USB boot device not being ready. Rather
than deal with this with u-Boot workarounds and sleep/waiting in the
bootup scripts, I simply used Windows to format my SD card with FAT
and then dropped the kernel and the two Slackware initial ramdisks on
it -- one initrd for the installer, one for normal booting. One thing
to mention is I renamed the installer initrd file, because the default
name is easily confused with the standard initrd.

I also prepped the USB drive using an existing x86 Linux box
(actually, VM, but whatever). I partitioned it (no need to set a
bootable partition) and formatted the first partition as ext2 (though
since u-Boot doesn't need to read this FS, it could really be any FS
you want that the default armedslack kernel supports). I then mounted
my new fs, cd'd to it, and rsync'd the armedslack-current tree to it
with

rsync --exclude '*/source/*' --delete -Pavv
ftp.armedslack.org::armedslack/armedslack-current .

Don't forget that last . at the end!

I plugged in my SD and my USB drive to the Sheeva, fired up my serial
terminal, and powered on. I pressed any key to break into the u-Boot
bootloader and ran the following commands. Please note that absolutely
NO permanent changes are made to u-Boot at this point, so if anything
goes wrong, you just powercycle and end up back at the stock Debian
Linux install from the internal flash.

setenv arcNumber 2097
setenv mainlineLinux yes
setenv bootargs console=ttyS0,115200 nodhcp kbd=us root=/dev/ram rw
mmcinit
fatload mmc 0:1 0x01100000 /uinitrd-kirkwood-installer
fatload mmc 0:1 0x8000000 uImage-kirkwood
bootm 0x8000000 0x01100000

Once booted into the Slack installer, I simply ran 'setup', selected
my target partition as /dev/sda1, then when prompted for a source I
selected "pre-mounted" (note: I did NOT pre-mount it! The installer
mounts it for you) and entered /mnt/armedslack-current/slackware. The
install proceeded normally from this point and I typed 'reboot' when
it was complete.

Again, I broke into u-Boot and this time I ran the following, slightly
different, commands. Again, NO permanent changes are being made, so
the Sheeva will still failsafe to the factory state if you powercycle.

setenv bootargs console=ttyS0,115200 kbd=us root=/dev/sda1 rw
setenv arcNumber 2097
setenv mainlineLinux yes
mmcinit
fatload mmc 0:1 0x01100000 /uinitrd-kirkwood
fatload mmc 0:1 0x8000000 uImage-kirkwood
bootm 0x8000000 0x01100000

Unbelievably, it worked on the first try (well, after an fsck and
reboot). Linux boots from the SD, and by the time it gets around to
mounting the rootfs off the USB drive, the USB drive is ready to go.

Once I confirmed that everything was working and I was happy with it,
I rebooted again, broke into u-Boot again, and this time ran

setenv bootargs console=ttyS0,115200 kbd=us root=/dev/sda1 rw
setenv arcNumber 2097
setenv mainlineLinux yes
setenv bootcmd 'mmcinit; fatload mmc 0:1 0x01100000 /uinitrd-kirkwood;
fatload mmc 0:1 0x8000000 uImage-kirkwood; bootm 0x8000000 0x01100000'
saveenv

The 'saveenv' makes these changes permanent, so only do it if you're
ready to commit to Slackware. This done, issue a 'reset' or powercycle
again and Slackware will get booted from now on.


More information about the ARMedslack mailing list