Hello,
I'm been trying to setup the i.MX53 to boot via NFS but having some problem. Here is what I did and maybe someone can point out what I did wrong and how to fix it. I'm pretty new with this so any help is greatly appreciated. I used the Adeneo 4.1 prebuilt files to build this setup.
Here is my IP info, using an Apple Ethernet Adapter
eth1 Link encap:Ethernet HWaddr 28:37:37:03:c5:f1
inet addr:192.168.1.2 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::2a37:37ff:fe03:c5f1/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:6585 errors:0 dropped:0 overruns:0 frame:0
TX packets:6581 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:889944 (889.9 KB) TX bytes:7613344 (7.6 MB)
/etc/exports file
/home/daknguy/imx-android/nfsroot *(rw,no_root_squash,sync,no_subtree_check,insecure)
/home/daknguy/imx-android/tftproot *(rw,no_root_squash,sync,no_subtree_check,insecure)
daknguy@daknguy-System-Product-Name:/$ sudo mount -t nfs 192.168.1.2:/home/daknguy/imx-android/nfsroot /nfsroot
daknguy@daknguy-System-Product-Name:/$ cd /nfsroot/
daknguy@daknguy-System-Product-Name:/nfsroot$ ls
boot init proc sys u-boot.bin uImage
data init.freescale.rc ramdisk.img system ueventd.freescale.rc uramdisk.img
default.prop init.goldfish.rc recovery.img system.img ueventd.goldfish.rc
dev init.rc sbin system_inflexion.img ueventd.rc
MX53-LOCO U-Boot > printenv
bootdelay=3
baudrate=115200
loadaddr=0x70800000
netdev=eth0
ethprime=FEC0
bootdelay=3
uboot=u-boot.bin
kernel=uImage
loadaddr=0x70800000
rd_loadaddr=0x70D00000
vga=setenv bootargs ${bootargs} di1_primary video=mxcdi1fb:GBR24,VGA-XGA vga
lcd=setenv bootargs ${bootargs} di0_primary calibration
hdmi_720p=setenv bootargs ${bootargs} di0_primary video=mxcdi0fb:RGB24,1280x720M@60 hdmi gpu_nommu gpu_memory=64M
hdmi_1080p=setenv bootargs ${bootargs} di0_primary video=mxcdi0fb:RGB24,1080P60 hdmi gpu_nommu gpu_memory=64M
claa_lcd=setenv bootargs ${bootargs} di0_primary video=mxcdi0fb:RGB565,CLAA-WVGA calibration
bootargs_android=setenv bootargs ${bootargs} init=/init androidboot.console=ttymxc0
bootcmd_SD=run bootcmd_SD1 bootcmd_SD2
bootcmd_SD1=run bootargs_base set_display bootargs_android
bootcmd_SD2=mmc read 0 ${loadaddr} 0x800 0x2000;mmc read 0 ${rd_loadaddr} 0x3000 0x300;bootm ${loadaddr} ${rd_loadaddr}
bootargs_nfs=setenv bootargs ${bootargs} root=/dev/nfs ip=dhcp nfsroot=${serverip}:${nfsroot},v3,tcp
bootcmd_net=run bootargs_base bootargs_nfs; tftpboot ${loadaddr} ${kernel}; bootm
bootcmd_android_recovery=run bootargs_base bootargs_android_recovery;mmc read 0 ${loadaddr} 0x800 0x2000;bootm
bootargs_android_recovery=setenv bootargs ${bootargs} init=/init root=/dev/mmcblk0p4 rootfs=ext4
ethact=FEC0
serverip=192.168.1.2
ipaddr=192.168.1.50
lvds=setenv bootargs ${bootargs} video=mxcdi0fb:RGB666,XGA ldb=di0 di0_primary
bootargs_base=set bootargs console =ttymxc0, 115200 ${lvds}
set_display=run lvds
bootcmd_nfs=run bootargs_base bootargs_nfs ; nfs ${loadaddr} ${serverip}:${nfsroot}/uImage;bootm
bootcmd=run bootcmd_nfs
bootargs=console =ttymxc0, 115200 setenv bootargs ${bootargs} video=mxcdi0fb:RGB666,XGA ldb=di0 di0_primary root=/dev/nfs ip=dhcp nfsroot=192.168.1.2:/nfsroot,v3,tcp
stdin=serial
stdout=serial
stderr=serial
nfsroot=/nfsroot
Environment size: 1862/131068 bytes
MX53-LOCO U-Boot > boot
FEC: enable RMII gasket
PHY indentify @ 0x0 = 0x0007c0f1
Using FEC0 device
File transfer via NFS from server 192.168.1.2; our IP address is 192.168.1.50
Filename '/nfsroot/uImage'.
Load address: 0x70800000
Loading: FEC: Link is down 7809
FEC: Link is down 7809
FEC: Link is down 7809
FEC: Link is down 7809
FEC: Link is down 7809
FEC: Link is down 7809
FEC: Link is down 7809
FEC: Link is down 7809
FEC: Link is down 7809
*** ERROR: Cannot mount
If I change nfsroot to /home/daknguy/imx-android/nsfroot I get the following error “*** ERROR: Cannot umount ”
Environment size: 1887/131068 bytes
MX53-LOCO U-Boot > boot
FEC: enable RMII gasket
PHY indentify @ 0x0 = 0x0007c0f1
Using FEC0 device
File transfer via NFS from server 192.168.1.2; our IP address is 192.168.1.50
Filename '/home/daknguy/imx-android/nfsroot/uImage'.
Load address: 0x70800000
Loading: FEC: Link is down 7809
FEC: Link is down 7809
FEC: Link is down 7809
FEC: Link is down 7809
FEC: Link is down 7809
FEC: Link is down 7809
FEC: Link is down 7809
FEC: Link is down 7809
FEC: Link is down 7809
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################*** ERROR: Cannot umount
## Booting kernel from Legacy Image at 70800000 ...
Image Name: Linux-2.6.35.3-01162-gecaa8dd-di
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 3325320 Bytes = 3.2 MB
Load Address: 70008000
Entry Point: 70008000
Verifying Checksum ... OK
Loading Kernel Image ... OK
OK
Starting kernel ...
Initializing cgroup subsys cpu
Linux version 2.6.35.3-01162-gecaa8dd-dirty (rlorriaux@rl-linux) (gcc version 4.4.3 (GCC) ) #1 PREEMPT Mon Nov 14 15:00:29 PST 2011
CPU: ARMv7 Processor [412fc085] revision 5 (ARMv7), cr=10c53c7f
CPU: VIPT nonaliasing data cache, VIPT nonaliasing instruction cache
Machine: Freescale MX53 LOCO Board
Memory policy: ECC disabled, Data cache writeback
Built 1 zonelists in Zone order, mobility grouping on. Total pages: 234496
Kernel command line: console =ttymxc0, 115200 setenv bootargs ${bootargs} video=mxcdi0fb:RGB666,XGA ldb=di0 di0_primary root=/dev/nfs ip=dhcp nfsroot=192.168.1.2:/home/daknguy/imx-anp
PID hash table entries: 4096 (order: 2, 16384 bytes)
Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
allocated 7864320 bytes of page_cgroup
please try 'cgroup_disable=memory' option if you don't want memory cgroups
Memory: 416MB 512MB = 928MB total
Memory: 924384k/924384k available, 25888k reserved, 0K highmem
Virtual kernel memory layout:
vector : 0xffff0000 - 0xffff1000 ( 4 kB)
fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB)
DMA : 0xf9e00000 - 0xffe00000 ( 96 MB)
vmalloc : 0xe0800000 - 0xf4000000 ( 312 MB)
lowmem : 0x80000000 - 0xe0000000 (1536 MB)
pkmap : 0x7fe00000 - 0x80000000 ( 2 MB)
modules : 0x7f000000 - 0x7fe00000 ( 14 MB)
.init : 0x80008000 - 0x80039000 ( 196 kB)
.text : 0x80039000 - 0x80892000 (8548 kB)
.data : 0x808b2000 - 0x8091b6c0 ( 422 kB)
SLUB: Genslabs=11, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
Hierarchical RCU implementation.
RCU-based detection of stalled CPUs is disabled.
Verbose stalled-CPUs detection is disabled.
NR_IRQS:368
MXC GPIO hardware
MXC IRQ initialized
MXC_Early serial console at MMIO 0x53fbc000 (options '115200')
bootconsole [ttymxc0] enabled
Console: colour dummy device 80x30
console [tty0] enabled, bootconsole disabled
If you have prebuilt images, maybe you have the prebuild image for NFS folder.
the prebuild NFS folder will hold uramdisk and system.
Are you able to take uImage from network?
Hi,
I need help regarding mounting android file system using NFS. I tried, however, it didn't work.
I am using prebuilt image of uramdisk.img, system.img, and recovery.img. How can I build root file system using these images?
Thanks in advance.
Syed Rafiul Hussain
Does your board ping your PC?
To make sure your file systems and NFS server is OK, please mount it somewhere on your PC:
sudo mount 192.168.1.2://home/daknguy/imx-android/nsfroot /mnt
Can you see all needed files? Is there any permission error?
If you can mount it, PC side is OK.
it´s not about rootfs.
He can not even take uImage.
Miroslav Tisma said:
I think that you have a wrong root filesystem. You have to extract the rootfs.tar.gz (you can build it by yourself, for example, buildroot filesystem) as a root user to /nfsroot.
I think that you have a wrong root filesystem. You have to extract the rootfs.tar.gz (you can build it by yourself, for example, buildroot filesystem) as a root user to /nfsroot.