Booting mini6410 from an NFS partition

Simon
So, I'm trying to make my mini6410 boot over NFS, and despite looking at
various places on the web, I'm failing to get it to boot.

I've expanded the update 'rootfs_qtopia_qt4-20101122.tgz' into the
NFS-exported directory /home/simon/arm/rootfs_qtopia_qt4 on a linux box,
and verified that NFS is working from another machine (I can mount the
directory).

I set up the u-boot environment as:

setenv bootargs console=ttySAC0,115200 noinitrd init=/linuxrc
ip=192.168.1.81 root=/dev/nfs rw
nfsroot=192.168.1.80:/home/simon/arm/rootfs_qtopia_qt4

setenv bootcmd 'nand read.i c0008000 80000 500000;bootm c0008000'

... the goal being to use the existing kernel with an NFS-mounted rootfs,
but when I boot, I get:

OK

U-Boot 1.1.6 (Aug  9 2010 - 11:33:36) for FriendlyARM MINI6410


CPU:     S3C6410@532MHz
         Fclk = 532MHz, Hclk = 133MHz, Pclk = 66MHz, Serial = CLKUART (SYNC
Mode) 
Board:   MINI6410
DRAM:    128 MB
Flash:   0 kB
NAND:    1024 MB 
In:      serial
Out:     serial
Err:     serial
MAC: 08:90:90:90:90:90
Hit any key to stop autoboot:  0 

NAND read: device 0 offset 0x80000, size 0x500000

Reading data from 0x57f800 -- 100% complete.
 5242880 bytes read: OK
Boot with zImage

Starting kernel ...

Uncompressing
Linux...........................................................................
................................................................................
...................
Linux version 2.6.28.6-FriendlyARM (root@russell-work-pc) (gcc version
4.4.1 (Sourcery G++ Lite 2009q3-67) ) #1 Fri Aug 27 17:34:23 CST 2010
CPU: ARMv6-compatible processor [410fb766] revision 6 (ARMv7), cr=00c5387f
CPU: VIPT nonaliasing data cache, VIPT nonaliasing instruction cache
Machine: SMDK6410
Memory policy: ECC disabled, Data cache writeback
CPU S3C6410 (id 0x36410101)
S3C24XX Clocks, (c) 2004 Simtec Electronics
S3C64XX: PLL settings, A=532000000, M=532000000, E=24000000
S3C64XX: HCLKx2=266000000, HCLK=133000000, PCLK=66500000
div1: 00000555
mout_apll: source is fout_apll (1), rate is 532000000
mout_epll: source is fout_epll (1), rate is 24000000
mout_mpll: source is mpll (1), rate is 532000000
mmc_bus: source is dout_mpll (1), rate is 44333333
mmc_bus: source is dout_mpll (1), rate is 44333333
mmc_bus: source is dout_mpll (1), rate is 44333333
usb-host-bus: source is mout_epll (0), rate is 24000000
uclk1: source is dout_mpll (1), rate is 66500000
spi-bus: source is mout_epll (0), rate is 24000000
spi-bus: source is mout_epll (0), rate is 24000000
audio-bus0: source is mout_epll (0), rate is 24000000
audio-bus1: source is mout_epll (0), rate is 24000000
audio-bus2: source is mout_epll (0), rate is 24000000
irda-bus: source is mout_epll (0), rate is 24000000
s3c64xx: 15728640 bytes SDRAM reserved for fimc at 0x50784000
s3c64xx: 8388608 bytes SDRAM reserved for pp at 0x51684000
s3c64xx: 8388608 bytes SDRAM reserved for tv at 0x51e84000
s3c64xx: 6291456 bytes SDRAM reserved for mfc at 0x52684000
s3c64xx: 8388608 bytes SDRAM reserved for jpeg at 0x52c84000
s3c64xx: 8388608 bytes SDRAM reserved for cmm at 0x53484000
Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 32512
Kernel command line: console=ttySAC0 init=/linuxrc root=/dev/nfs
nfsroot=192.168.1.80:/home/simon/arm/rootfs_qtopia_qt4
ip=192.168.1.81:192.168.1.80:192.168.1.1:255.255.255.0::eth0:
PID hash table entries: 512 (order: 9, 2048 bytes)
Console: colour dummy device 80x30
s3c24xx_serial_init_ports: initialising ports=4...
console [ttySAC0] enabled
Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
Memory: 128MB = 128MB total
Memory: 68864KB available (5092K code, 592K data, 916K init)
SLUB: Genslabs=12, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
Calibrating delay loop... 530.84 BogoMIPS (lpj=1327104)
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
net_namespace: 316 bytes
NET: Registered protocol family 16
S3C6410: Initialising architecture
S3C DMA-pl080 Controller Driver, (c) 2006-2007 Samsung Electronics
Total 32 DMA channels will be initialized.
SCSI subsystem initialized
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
NET: Registered protocol family 2
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
TCP established hash table entries: 4096 (order: 3, 32768 bytes)
TCP bind hash table entries: 4096 (order: 4, 81920 bytes)
TCP: Hash tables configured (established 4096 bind 4096)
TCP reno registered
NET: Registered protocol family 1
NetWinder Floating Point Emulator V0.97 (double precision)
yaffs Aug 27 2010 17:31:03 Installing. 
msgmni has been set to 134
io scheduler noop registered (default)
S3C_LCD clock got enabled :: 133.000 Mhz
LCD TYPE :: LTE480WV will be initialized
Window[0] - FB1: map_video_memory: clear ff000000:0007f800
            FB1: map_video_memory: dma=57300000 cpu=ff000000 size=0007f800
Window[0] - FB2: map_video_memory: clear ff03fc00:0003fc00
            FB2: map_video_memory: dma=5733fc00 cpu=ff03fc00 size=0003fc00
Console: switching to colour frame buffer device 60x34
fb0: s3cfb frame buffer device
Window[1] - FB1: map_video_memory: clear ff080000:0007f800
            FB1: map_video_memory: dma=57380000 cpu=ff080000 size=0007f800
Window[1] - FB2: map_video_memory: clear ff0bfc00:0003fc00
            FB2: map_video_memory: dma=573bfc00 cpu=ff0bfc00 size=0003fc00
fb1: s3cfb frame buffer device
Window[2] - FB1: map_video_memory: clear ff100000:0003fc00
            FB1: map_video_memory: dma=57400000 cpu=ff100000 size=0003fc00
fb2: s3cfb frame buffer device
Window[3] - FB1: map_video_memory: clear ff140000:0003fc00
            FB1: map_video_memory: dma=57440000 cpu=ff140000 size=0003fc00
fb3: s3cfb frame buffer device
backlight       initialized
leds    initialized
buttons initialized
pwm     initialized
s3c6400-uart.0: s3c2410_serial0 at MMIO 0x7f005000 (irq = 16) is a
S3C6400/10
s3c6400-uart.1: s3c2410_serial1 at MMIO 0x7f005400 (irq = 20) is a
S3C6400/10
s3c6400-uart.2: s3c2410_serial2 at MMIO 0x7f005800 (irq = 24) is a
S3C6400/10
s3c6400-uart.3: s3c2410_serial3 at MMIO 0x7f005c00 (irq = 28) is a
S3C6400/10
loop: module loaded
PPP generic driver version 2.4.2
PPP Deflate Compression module registered
PPP BSD Compression module registered
dm9000 Ethernet Driver
dm9000: dm9000_probe, init GPIO/EINT.
dm9000: dm9000_probe2
dm9000: dm9000_probe3
eth0: dm9000 at f7b00300,f7b00304 IRQ 108 MAC: 08:90:90:90:90:90

(snip lots of device messages, since the forum won't display such a long
message)

TCP cubic registered
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
s3c2410-rtc s3c2410-rtc: setting system clock to 2000-03-23 03:02:47 UTC
(953780567)
eth0: link down
IP-Config: Complete:
     device=eth0, addr=192.168.1.81, mask=255.255.255.0, gw=192.168.1.1,
     host=192.168.1.81, domain=, nis-domain=(none),
     bootserver=192.168.1.80, rootserver=192.168.1.80, rootpath=
Freeing init memory: 916K
mount: RPC: Remote system error - No route to host
/init: line 76: can't open /r/dev/console: no such file
Kernel panic - not syncing: Attempted to kill init!
eth0: link up, 100Mbps, full-duplex, lpa 0xC5E1

On the NFS-server, I'm seeing:

Dec 26 23:28:27 itx mountd[3043]: authenticated mount request from
192.168.1.81:940 for /home/simon/arm/rootfs_qtopia_qt4
(/home/simon/arm/rootfs_qtopia_qt4)

... so that seems to be ok, but init is crashing. Anyone got any ideas as
to what I'm doing wrong ?

Cheers
 Simon

open-nandra
How did you extract image? You need to be root when extract. Anyway don't
you have some firewall or whatever which could block?

thanks,

marek

Simon
Well I couldn't remember, so just to be sure I deleted and re-unarchived
the tar.gz file as root. I still get the same error.

I don't think the NFS server is being blocked, because the machine sitting
right next to it (my Mac) can mount the NFS partition just fine. 

I was thinking that there might be some boot option I'm missing - is the
fact that there is nothing set in the  'rootpath=' line in the IP-config
output significant ?

What I have set in the u-boot config at the moment is:

##### FriendlyARM U-Boot(2010-08, NAND) for 6410 #####
[f] Format the nand flash
[v] Download u-boot.bin
[k] Download Linux/Android kernel
[y] Download root yaffs2 image
[a] Download Absolute User Application
[n] Download Nboot.nb0 for WinCE
[w] Download WinCE NK.nb0
[s] Set the boot parameter of Linux
[b] Boot Linux
[q] Quit to shell
NAND Flash size: 1024 MiB
Enter your Selection:q
MINI6410 # printenv
baudrate=115200
ethaddr=08:90:90:90:90:90
gatewayip=192.168.1.1
netmask=255.255.255.0
ipaddr=192.168.1.81
serverip=192.168.1.80
bootdelay=2
bootargs=console=ttySAC0,115200 noinitrd init=/linuxrc ip=192.168.1.81
root=/dev/nfs rw nfsroot=192.168.1.80:/home/simon/arm/rootfs_qtopia_qt4
bootcmd=nand read.i c0008000 80000 500000;bootm c0008000
stdin=serial
stdout=serial
stderr=serial

Environment size: 381/131068 bytes

... this is the standard u-boot that comes with the device. You can boot
via nfs with that setup, right ? All the docs around the net talk about
re-installing u-boot over supervivi, but mine came with u-boot...

Cheers
   Simon

open-nandra
I have doubt about this line in log:
mount: RPC: Remote system error - No route to host

Anyway please check if you have in kernel config enabled nfs support? Maybe
in kernel which is already in flash this option isn't available.

thanks,

marek

jono
hey simon did you find a solution?

thom-armax
hi guys, did you fixed it ? got the same error ...

TheRegnirps
In your U-boot config.

root=/dev/nfs rw nfsroot=192.168.1.80:/home/simon/arm/rootfs_qtopia_qt4

Is that a file name or a directory?

Screwface
Hi guys,

Are you sure /dev is correctly populated (ie /dev/console exists)? I had
this problem also in the past. Have a look at LinuxFromScratch, chapter 6.8

André CATEL
Hi,
Can someone help me ? Boot stops after connection timeout...

All sources, packages where taken from the dvda.
I enabled NFS file system in the kernel and recompiled it.
I verified contents of dev (I use the rootfs-qtopia provided in the dvda)
I verified I can mount the rootfs from another PC
I seted up the bootargs as : setenv bootargs noinitrd
console=ttySAC0,115200 root=/dev/nfs
nfsroot=170.30.98.101:/database1/tiny6410/rootfs_qtopia_qt4-20111212
ip=172.30.98.180::172.30.98.101:255.255.255.0:my6410:eth0:off

Thanks in advance.
André

Last info showned in gtkterm...
...
...
NET: Registered protocol family 17
VFP support v0.3: implementor 41 architecture 1 part 20 variant b rev 5
s3c-rtc s3c64xx-rtc: setting system clock to 2012-04-13 10:20:50 UTC
(1334312450)
eth0: link down

eth0: link up, 100Mbps, full-duplex, lpa 0x45E1

IP-Config: Complete:
     device=eth0, addr=172.30.98.180, mask=255.255.255.0, gw=172.30.98.101,
     host=my6410, domain=, nis-domain=(none),
     bootserver=255.255.255.255, rootserver=170.30.98.101, rootpath=
Freeing init memory: 1412K
mount: RPC: Remote system error - Connection timed out
1Wire touchscreen OK
/init: line 103: can't open /r/dev/console: no such file
Kernel panic - not syncing: Attempted to kill init!
[<c0178c44>] (unwind_backtrace+0x0/0xe4) from [<c055850c>]
(panic+0x58/0x174)
[<c055850c>] (panic+0x58/0x174) from [<c018ae48>] (do_exit+0x68/0x5e4)
[<c018ae48>] (do_exit+0x68/0x5e4) from [<c018b688>]
(do_group_exit+0x90/0xc4)
[<c018b688>] (do_group_exit+0x90/0xc4) from [<c018b6cc>]
(sys_exit_group+0x10/0x18)
one_wire_status: 2
[<c018b6cc>] (sys_exit_group+0x10/0x18) from [<c01735e0>]
(ret_fast_syscall+0x0/0x30)
one_wire_status: 4

Juergen Beisert
Maybe: http://www.linuxselfhelp.com/howtos/NFS/NFS-HOWTO-3.html

Johnson
>Attempted to kill init

I think the directory is not exported properly. Did you exported it
properly through /etc/exports ? Just try restarting nfs-kernel-server.

André CATEL
Thanks to all, it works !

I add 2 issues : Firewall setings & hosts.deny : so board access was denied