I am trying to boot ICS on Pandaboard ES over NFS.


By default the linaro-android build is configured to boot images from mmc and as such, commands in 'init.rc' are tailored to mount the mmc card. This clearly needs to be modify in order to boot from NFS.


I extracted and modified "uInitrd" image in the boot directory by commenting 

 <mount ext4 /dev/block/mmcblk0p2 /system wait ro> in the "init.partitions.rc" file using following commands

dd if=boot/uInitrd of=initrd.cpio.gz bs=1 skip=64

sudo gunzip -c ../initrd.cpio.gz | cpio -i

sudo find . | cpio -o -H newc | gzip > ../newinitrd.cpio.gz

mkimage -A arm -O linux -T ramdisk -C gzip -a 0 -e 0 -n initramfs -d ./newinitrd.cpio.gz ./uInitrd.new

cp uInitrd.new boot/uInitrd


Now i copied boot files on to the boot partition of the sd card.


I did Server side configuration successfully. As below: 

  1. Install NFS packages host-PC$ sudo apt-get install nfs-kernel-server nfs-common
  2. Add this line to the /etc/exports /tmp/system *(rw,sync,no_subtree_check,no_root_squash)

  3. Start the NFS service host-PC$ sudo service nfs-kernel-server restart

  4. Update exports for the NFS server host-PC$ sudo exportfs -a

  5. Making sure the server is running host-PC$ showmount -e Export list for host-PC: /tmp/system *

  6. Copied the contents of the Android system directory into /tmp/system

  7. Added a text file with name "On_host_PC.txt" to the "/tmp/system" to verify whether the filesystem used during the boot is NFS or not.

On the board I used an SD card which has ICS which is booting with out any issues. Then Rebooted the the board and entered into Uboot prompt and entered the following commands on Uboot prompt.

setenv serverip 100.100.100.64 setenv ipaddr 100.100.100.50 mmc rescan setenv initrd_high "0xffffffff" setenv fdt_high "0xffffffff" fatload mmc 0:1 0x80200000 uImage fatload mmc 0:1 0x81600000 uInitrd setenv bootargs "console=ttyO2,115200n8 rootwait ro earlyprintk fixrtc nocompcache vram=48M omapfb.vram=0:24M,1:24M mem=456M@0x80000000 mem=512M@0xA0000000 init=/init androidboot.console=ttyO2 root=/dev/nfs rw nfsroot=100.100.100.64:/tmp/system,nolock,wsize=1024,rsize=1024 ip=100.100.100.50 gw=100.100.100.64 bootserver=100.100.100.64 rootdelay=2"

bootm 0x80200000 0x81600000


iam getting the following messages and booting stops.

[    5.412231] iss_register_subdev_group: Unable to register subdev ov5650

[    5.530548] IP-Config: Guessing netmask 255.0.0.0

[    5.533172] IP-Config: Complete:

[    5.533172]      device=eth0, addr=100.100.100.50, mask=255.0.0.0, gw=255.255.255.255,

[    5.547576]      host=100.100.100.50, domain=, nis-domain=(none),

[    5.547576]      bootserver=255.255.255.255, rootserver=100.100.100.64, rootpath=

[    5.563232] Freeing init memory: 276K

[    5.573333] init (1): /proc/1/oom_adj is deprecated, please use /proc/1/oom_score_adj instead.

[    5.911193] init: cannot open '/initlogo.rle'

[    7.348236] smsc95xx 1-1.1:1.0: eth0: link up, 100Mbps, full-duplex, lpa 0xC9E1

[   10.006286] EXT4-fs (mmcblk0p3): mounted filesystem with ordered data mode. Opts: (null)

[   10.045043] EXT4-fs (mmcblk0p5): mounted filesystem with ordered data mode. Opts: (null)

[   10.092987] android_usb: already disabled

[   10.097900] adb_bind_config

[   10.298828] init: service 'console' requires console

[   10.304168] init: cannot find '/system/bin/servicemanager', disabling 'servicemanager'

[   10.312652] init: cannot find '/system/bin/vold', disabling 'vold'

[   10.312652] init: cannot find '/system/bin/netd', disabling 'netd'

[   10.325958] init: cannot find '/system/bin/debuggerd', disabling 'debuggerd'

[   10.333526] init: cannot find '/system/bin/rild', disabling 'ril-daemon'

[   10.340698] init: cannot find '/system/bin/surfaceflinger', disabling 'surfaceflinger'

[   10.349151] init: cannot find '/system/bin/app_process', disabling 'zygote'

[   10.356658] init: cannot find '/system/bin/drmserver', disabling 'drm'

[   10.363677] init: cannot find '/system/bin/mediaserver', disabling 'media'

[   10.371063] init: cannot find '/system/bin/dbus-daemon', disabling 'dbus'

[   10.378295] init: cannot find '/system/bin/installd', disabling 'installd'

[   10.385711] init: cannot find '/system/etc/install-recovery.sh', disabling 'flash_recovery'

[   10.394683] init: cannot find '/system/bin/keystore', disabling 'keystore'

[   10.394744] init: cannot find '/system/bin/gatord', disabling 'gatord'

[   10.394744] init: cannot find '/system/bin/aibd', disabling 'aibd'

[   10.415649] init: cannot find '/system/bin/pvrsrvinit', disabling 'pvrsrvinit'

[   10.423370] init: cannot find '/system/bin/uim', disabling 'uim'

[   10.429718] init: property (null) has no value for writing to /sys/class/android_usb/android0/iManufacturer

[   10.429748] init: property (null) has no value for writing to /sys/class/android_usb/android0/iProduct

[   10.452087] init: service 'console' requires console


Can any one help me where I am doing mistake?