๐ How To: Running Fedora-ARM on Sheevaplug
๐ Introduction
The SheevaPlug is a development platform, targeted for use as a plug computer, and designed to run network-based software services. It features a Kirkwood Series SoC with an embedded Marvell Sheevaโข CPU core running at 1.2 GHz.
๐ Technical Specifications
- Power: 2.3w idle no attached devices, 7.0w running at 100% CPU utilization
- CPU: Marvell Kirkwood 88F6281 ARM Based, 1Ghz - 2Ghz processor
- Memory: 512MB SDRAM, 512MB Flash
- Display: none
- Connectivity: USB 2.0, SD, Gigabit Network,JTAG mini USB
- Dimensions: 110 x 69.5 x 48.5 (mm)
๐ Setup Kernel Image
You can either simply use a pre-built kernel image or build your own from source.
๐ Pre-built Kernel Image
You can get the following pre-built kernel image for Sheevaplug: http://ftp.linux.org.uk/pub/linux/arm/fedora/platforms/sheevaplug/uImage-2.6.30-sheevaplug
๐ Build Kernel Image From Source
You will need to have an ARM cross-compiler. If you do not have one, download one from CodeSourcery's web-site, install it and ensure that is it in your path.
export ARCH=arm export CROSS_COMPILE=arm-none-linux-gnueabi-
You can also use the Fedora cross toolchain that we provide.
Download the Linux kernel (I have tested with 2.6.30), and build it for kirkwood_defconfig.
$ cd linux-2.6/ $ make kirkwood_defconfig $ make uImage
๐ Copy the kernel over tftp
Setup tftp server on your host machine as follows:
1. Install the tftp-server package as
# yum install tftp-server
2. Edit /etc/xinetd.d/tftp and change the disable value to no
3. Restart xinetd
# /etc/init.d/xinetd restart
4. Copy the binary into the tftp server's root directory (usually /tftpboot/)
Now on the Sheevaplug's uboot prompt, tftp the kernel over to the Sheevaplug as:
Marvell>> dhcp Marvell>> set serverip <hostip> Marvell>> tftpboot 0x6400000 uImage-2.6.30-sheevaplug
Replace <hostip> with your host's IP address.
Once your kernel cmdline settings are done (as mentioned below), you can boot into the kernel as
Marvell>> bootm 0x6400000
if your linux kernel doesn't boot don't worry, try the settings listed bellow and tftp uImage again.
setenv arcNumber 2097 setenv mainlineLinux yes saveenv
๐ Setup Root File System
๐ RFS over NFS
Download the latest root filesystem tarball from http://ftp.linux.org.uk/pub/linux/arm/fedora/rootfs/ and untar it.
This assumes that you untarred the root file system in /mnt/ARM_FS. We need to export it through NFS. Add the following in your /etc/exports.
/mnt/ARM_FS/ *(rw,sync,no_root_squash)
Now, restart the NFS service.
/sbin/service nfs restart
๐ Kernel cmdline parameters for NFS setup
While booting the kernel, pass the following cmdline options to ensure bootup over NFS. This assumes that you have the root filesystem in /mnt/ARM_FS/
root=/dev/nfs rw nfsroot=<hostip>:/mnt/ARM_FS/ ip=dhcp
๐ RFS over USB drive
Details about USB boot are available at: HOWTO: Sheevaplug Fedora USB Boot
Details about SD card boot are available at: HOWTO: Sheevaplug Fedora SD card Boot
๐ Saving uImage into NAND flash
[root@fedora-arm ~]# cat /proc/mtd dev: size erasesize name mtd0: 00100000 00020000 "u-boot" mtd1: 00400000 00020000 "uImage" mtd2: 1fb00000 00020000 "root"
don't touch mtd0 or you will need a JTAG cable to write it again and make your sheeva Lord again.
mtd1 is the uImage, let we write it again with fedora kernel.
wget -Nc http://ftp.linux.org.uk/pub/linux/arm/fedora/platforms/sheevaplug/uImage-2.6.30-sheevaplug nandwrite โp /dev/mtd1 uImage-2.6.30-sheevaplug
after writing it , you don't need to tftp the uimage anymore