• Home
  • Help
  • Search
  • Login
  • Register
Pages: [1]
Author Topic: custom kernel, nfs boot working! (quick howto)  (Read 1967 times)
tmk
Newbie
*

Karma: 1
Posts: 40


View Profile
« on: April 15, 2009, 10:03:17 PM »

Got my plug to boot up using a custom kernel and NFS today.

Some notes:

ubuntu's default tftpboot directory is '/srv/tftp' and NOT '/tftpboot'. This can cause problems.

the instructions in the file 'Procedure to configure the kernel with 4.2.7 LSP for KW(A0)based device v4.1.pdf' assume you use /home/SheevaPlug for your filesystem (from linux host package, file Linux Host Filesystem - rootfs.tar.bz2). Untarring the way they specify creates an extra directory though, and you have to move all the files out of it later.

Untar and move the files as root, or else permissions may get broken.


The instructions also say you should export your /tftpboot directory (or /srv/tftp).. I see no reason to do this

Docs say to export /home .. that is also not necessary; it just needs the SheevaPlug directory Here's my /etc/exports:

Code:
/home/SheevaPlug *(rw,sync,no_root_squash,no_subtree_check)

general kernel compile steps (feel free to add this to a wiki)

Files can be found at http://www.marvell.com/products/embedded_processors/developer/kirkwood/sheevaplug.jsp, or on your cd, etc.

You'll need 3 packages:
Download linux 'host software support package - contains the compiler+toolchain, and base jffs2 (which we don't really need)

Download the "Linux support package" -  this contains the kernel source, and a stock kernel uImage.

Download the U-boot package - this contains the mkimage binary.


unzip these container .zip files, we'll deal with the contents later.

Code:
# make a new dir to hold all your work
mkdir /home/plugstuff
cd /home/plugstuff

# extract the stuff (takes a while)
tar jxvf {path-to}/LinuxHost/gcc.tar.bz2
tar jxvf {path-to}/Sources/linux-2.6.22.18.tar.bz2

# copy the mkimage binary to the gcc/bin dir (or anywhere else in your path)
cp {path-to}/SheevaPlug_U-Boot/mkimage gcc/bin/
# make it executable.. lame packaging :)
chmod a+x gcc/bin/mkimage

# add the gcc binary location to the path (assuming bash)
export PATH=/home/plugstuff/gcc/bin:$PATH


# build kernel
cd linux-2.6.22.18
make mv88f6281_defconfig
make
{wait while it compiles}
make uImage
At this point your uimage will be in arch/arm/boot/uImage . Copy it to your tftpboot dir if you want to netboot it.

Assuming you are using NFS for your plug, and already have a working NFS filesystem in /home/plugstuff/root/

Code:
# install the modules
make INSTALL_MOD_PATH=/home/plugstuff/root/ modules_install
Logged

Pages: [1]
Print
Jump to: