Jetson TK1: Boot from NFS, system hangs up during services boot

Hi all,

We can boot the Jetson TK1 from

  • eMMMC
  • USB memory
  • NFS with other rootfs without X window.

However, boot the same rootfs(Tegra_Linux_Sample-Root-Filesystem_R19.3.0_armhf.tbz2) from NFS, the system hangs up during services boot.
Oh host PC, we cannot ping the target board.

Reset the target board several times, the stop points are different every time.
So I think a certain process(service) maybe relevant with the network cannot start/work normally to cause the system hang-up.

Any comments?

Log in detail:

U-Boot SPL 2014.04-rc2 (Jun 18 2014 - 11:16:32)

U-Boot 2014.04-rc2 (Jun 18 2014 - 11:16:32)

Board: NVIDIA Jetson TK1
I2C: ready
MMC: Tegra SD/MMC: 0, Tegra SD/MMC: 1
*** Warning - bad CRC, using default environment

In: serial
Out: serial
Err: serial
Net: Net Initialization Skipped
No ethernet found.
Hit any key to stop autoboot: 0
MMC: no card present
mmc0(part 0) is current device
Scanning mmc 0…
Found extlinux config /boot/extlinux.conf
Retrieving file: /boot/extlinux.conf
932 bytes read in 53 ms (16.6 KiB/s)
Jetson-TK1 NFS boot options
1: primary kernel
Enter choice: 1: primary kernel
Retrieving file: /boot/zImage
5910288 bytes read in 193 ms (29.2 MiB/s)
append: console=ttyS0,115200n8 console=tty1 no_console_suspend=1 lp0_vec=2064@0xf46ff000 vid
eo=tegrafb mem=1862M@2048M memtype=255 ddr_die=2048M@2048M section=256M pmuboard=0x0177:0x00
00:0x02:0x43:0x00 vpr=151M@3945M tsec=32M@3913M otf_key=c75e5bb91eb3bd947560357b64422f85 usb
core.old_scheme_first=1 core_edp_mv=1150 core_edp_ma=4000 tegraid= debug_uartport=
lsport,3 power_supply=Adapter audio_codec=rt5640 modem_id=0 android.kerneltype=normal usb_po
rt_owner_info=0 fbcon=map:1 commchip_id=0 usb_port_owner_info=0 lane_owner_info=6 emc_max_dv
fs=0 touch_id=0@0 tegra_fbmem=32899072@0xad012000 board_info=0x0177:0x0000:0x02:0x43:0x00 ro
ot=/dev/nfs rw netdevwait ip= nfsroot=10.6
.22.1:/tftpboot/tk1 rootwait
Retrieving file: /boot/tegra124-pm375.dtb
34678 bytes read in 46 ms (735.4 KiB/s)
Wrong Image Format for sysboot command
ERROR: can’t get kernel image!
Kernel image @ 0x81000000 [ 0x000000 - 0x5a2f10 ]

Flattened Device Tree blob at 82000000

Booting using the fdt blob at 0x82000000
Loading Device Tree to 8fff4000, end 8ffff775 … OK
SEEPROM serialnr->high = 01770000, ->low = 034500FF

Starting kernel …

[ 0.000000] Booting Linux on physical CPU 0x0
[ 0.000000] Initializing cgroup subsys cpu
[ 0.000000] Initializing cgroup subsys cpuacct
[ 0.000000] Linux version 3.10.24 (xx) (gcc version 4.5.3 (crosstool-NG
hg+default-069f43a215cc) ) #1 SMP PREEMPT Wed Oct 8 19:38:49 CST 2014
[ 0.000000] CPU: ARMv7 Processor [413fc0f3] revision 3 (ARMv7), cr=10c5387d
[ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, PIPT instruction cache
[ 0.000000] Machine: jetson-tk1, model: NVIDIA Tegra124 PM375, serial: 0
[ 0.000000] Truncating memory at 0x80000000 to fit in 32-bit physical address space

< snip >

[ 9.357312] ALSA device list:
[ 9.365107] #0: HDA NVIDIA Tegra at 0x70038000 irq 113
[ 9.375418] #1: tegra-rt5639
[ 9.780473] VFS: Mounted root (nfs filesystem) on device 0:11.
[ 9.821498] devtmpfs: mounted
[ 14.602239] init: plymouth-upstart-bridge main process (112) terminated with status 1
[ 14.621616] init: plymouth-upstart-bridge main process ended, respawning
[ 14.706957] init: plymouth-upstart-bridge main process (126) terminated with status 1
[ 14.727306] init: plymouth-upstart-bridge main process ended, respawning
[ 14.856374] init: ureadahead main process (115) terminated with status 5

  • Starting Mount filesystems on boot[ OK ]
  • Starting Signal sysvinit that the rootfs is mounted[ OK ]
  • Starting Fix-up sensitive /proc filesystem entries[ OK ]
  • Starting Populate /dev filesystem[ OK ]
  • Stopping Fix-up sensitive /proc filesystem entries[ OK ]
  • Stopping Populate /dev filesystem[ OK ]
  • Starting Clean /tmp directory[ OK ]
  • Starting Populate and link to /run filesystem[ OK ]
  • Stopping Populate and link to /run filesystem[ OK ]
  • Stopping Track if upstart is running in a container[ OK ]
  • Stopping Clean /tmp directory[ OK ]
  • Starting Initialize or finalize resolvconf[ OK ]

< snip >

  • Starting configure network device[ OK ]
  • Starting Bridge socket events into upstart[ OK ]
  • Starting early crypto disks… * Starting bluetooth daemon[ OK ]
    [ OK ]
  • Starting network connection manager[ OK ]
  • Starting bluetooth daemon[ OK ]
  • Starting bluetooth daemon[ OK ]
    [ OK ]ting up X socket directories…
    < stop here >

Maybe the Network Manager takes over the ethernet and disconnects it first. Then everything is stuck as it’s coming over the network?

There’s a way to tell Network Manager not to touch certain network interfaces. I can’t remember the details though.

Kulve’s guess would be my first guess too. In order for network boot to occur, the boot loader has to provide a minimal network card driver prior to O/S load…at some point it is likely that the kernel takes over and reloads its own network driver. The whole boot log might help on seeing that if you have a way to post it to a URL.

Ping not returning may or may not be an indicator…depends if ICMP is implemented from the boot loader stage. Does ping work at the very start and then disappear? Or is it missing the whole time?

I have not personally set up NFS boot on my system. The more interesting question for everyone is whether someone has already successfully set up NFS boot? Can anyone verify a successful NFS boot?

The details I was referring earlier is shown in step 5 in:

Hi all,

Thanks you all.
It’s really caused by “Network Management” service.
When we not to start the “Network Management” by removing the Network config file “${ROOTFS}/etc/init/network-manager.conf”, Ubuntu x window can boot up correctly.

I know it’s not good way to fix the issue, we will find a better method such as #4, Creating Ubuntu NFS installation.

I will update the result later.

Hi all,

We have fixed the issue as comment:4, adding one more line in ${ROOTFS}/etc/network/interfaces

1 # interfaces(5) file used by ifup(8) and ifdown(8)
2 # Include files from /etc/network/interfaces.d:
3 source-directory /etc/network/interfaces.d

  • iface eth0 inet manual

Thank you all.

Hi zjuweight,
Tried your change, system can boot up successfully, but DNS (/etc/resolv.conf) is NULL.

So, on my side, I need add one more line as below to enable it network start with DNS configured.

1 # interfaces(5) file used by ifup(8) and ifdown(8)
2 # Include files from /etc/network/interfaces.d:
3 source-directory /etc/network/interfaces.d

  • auto eth0
  • iface eth0 inet manual