Yocto NFS & TFTP boot

cancel
Showing results for 
Search instead for 
Did you mean: 

Yocto NFS & TFTP boot

Yocto NFS & TFTP boot

NFS and TFTP Boot

1  Introduction

This document explains the required steps to boot Linux Kernel and mount a NFS on your target.

2 Requirements

  • A functional Yocto environment (Images generated for your target).
  • Your preferred target.  (SABRE-AI, SABRE-SD)
  • 1 Ethernet Cable
  • 1 Micro USB cable
  • USB to Serial converter depending on your target features.

3 Yocto Folders

When you develop your Linux kernel and Root File System with Yocto, different folders are created and each folder contains different information.

{YOCTO_BUILD_DIR}/tmp/deploy/images/ {TARGET}/ 

This directory contains the output images, like Kernel, U-Boot and the File System in a tar file. This directory will be used to fetch the kernel and device tree blob file only.

{YOCTO_BUILD_DIR}/tmp/sysroot/{TARGET}/ 

This folder contains all the development files used to generate our Yocto images. Here we can find all the dynamic libraries and headers used for development. This folder is used as parameter for cross-compilation.

{YOCTO_BUILD_DIR}/tmp/work/{TARGET}-poky-linux-gnueabi/{IMAGE}/1.0-r0/rootfs

This folder contains the uncompressed rootfs of our target. This folder will be used as entry in the host NFS server.

4 IP Address and Network Setup

This section covers how to boot Linux that mounts the root file system (RFS) over the network. Remember that in this scenario, the RFS exists on the laptop hard drive, and the kernel that runs on the target board will mount the RFS over Ethernet. This setup is used for developing and debugging Linux applications. It allows for applications to be loaded and run without having to re-boot the kernel each time.

First some packages on your host need to be installed:

# apt-get install xinetd tftp tftpd isc-dhcp-server nfs-kernel-server portmap

For development, it is best to have a static IP setup for the board and Linux environment. This way U-Boot options won’t change between reboots as you get a new IP address as you would using DHCP.

4.1 Linux Host Setup

This section describes how to setup a static IP in your Linux host environment. This is not required but will allow the IP address of your virtual host system to remain unchanged. Because u-boot parameters use specific IP addresses, this step is recommended because u-boot parameters may need to be updated in the future to match your virtual IP address if it should ever change.

You could take the existing IP address and make it static, but you would lose the Internet connection in your virtual machine. Instead we want to make use of the virtual environment and add a secondary Ethernet port that is tied to your wired Internet connection, while keeping the original Ethernet port which can use the wireless connection on your laptop.

  1. In the Linux virtual environment, type sudo ifconfig and note that you should have one Ethernet adapter (eth0). The other item listed (lo) is a virtual port for loopback mode.
  2. Shutdown the Linux virtual machine
  3. In VMware Player, go to Edit virtual machine settings. And add a Bridged Network Adapter, choosing only the wired Ethernet port.
  4. And click on OK.  See below for example:

pastedImage_0.png

  1. Start up the Linux VM.
  2. Open a terminal and type:

sudo ifconfig

You should have a new entry (eth1). This is the new Ethernet port you created in the virtual machine, and it is bridged to your wired Ethernet port. This is the port we want to make a static IP address.

  1. To set eth1 to a static IP, open /etc/nework/interfaces

sudo gedit /etc/network/interfaces

  1. Add the following to set eth1 to your desired IP address.

auto eth1

iface eth1 inet static

address 192.168.0.100      <-- Your HOST IP

netmask 255.255.255.0

gateway 192.168.0.1

  1. Save the file
  2. Restart eth1

sudo ifdown eth1

sudo ifup eth1

4.2 Target Setup

We need to setup the network IP address of our target.

  1. Power On the board and hit a key to stop the U-Boot from continuing.
  2. Set the below parameters:

setenv serverip 192.168.0.100 <-- This must be your Host IP address

setenv ipaddr 192.168.1.102  <-- This must be your target IP addres

setenv ip_dyn no

The path where the rootfs is placed in our host has to be indicated in the U-Boot:

setenv nfsroot /home/usuario/fsl-release-bsp/buildimx6q/tmp/work/imx6qsabresd-poky-linux-gnueabi/fsl-image-gui/1.0-r0/rootfs

setenv image zImage

setenv fdt_file uImage-imx6q-sabresd.dtb

setenv netargs 'setenv bootargs console=${console},${baudrate} ${smp} root=/dev/nfs ip={ipaddr} nfsroot=${serverip}:${nfsroot},v3,tcp'

4.3 TFTP and NFS Configuration

Now configure the Trivial File Transfer Protocol (TFTP) server and Networked File System (NFS) server. This is how U-Boot will download (via TFTP) the Linux kernel, and then the kernel will mount (via NFS) its root file system on the computer hard drive.

4.3.1 TFTP Setup

Next setup the TFTP server. The following commands show that we are logged in as root (#). If you are not root ($) then precede each instruction with “sudo”.

  1. Edit /etc/xinetd.conf

gedit /etc/xinetd.conf

  1. Add and save the following lines in the file

service tftp

{

socket_type = dgram

protocol = udp

wait = yes

user = root

server = /usr/sbin/in.tftpd

server_args = -s {YOCTO_BUILD_DIR}/tmp/deploy/images/ {TARGET}/ 

disable = no

}

Notice that {YOCTO_BUILD_DIR}/tmp/deploy/images/ {TARGET}/   has to be written as absolute path.

  1. Restart the xinetd service

service xinetd restart

  1. Test that TFTP is working

tftp localhost

tftp> get {An Image found in the tftp folder}

tftp> quit

4.3.2 NFS Setup

  1. Edit the /etc/exports file

gedit /etc/exports

  1. Add the path where the rootfs is found in your host.
  2. {YOCTO_BUILD_DIR}/tmp/work/{TARGET}-poky-linux-gnueabi/{IMAGE}/1.0-r0/rootfs *(rw,no_root_squash)

                                                                NOTE:

     {YOCTO_BUILD_DIR}/tmp/work/{TARGET}-poky-linux-gnueabi/{IMAGE}/1.0-r0/rootfs may work most of the times,

       but it is recommended to untar the {IMAGE}.bz2 in an exported    

      folder keeping using sudoand keeping the chmod of each file.

    3. Restart the NFS service

sudo service portmap stop

sudo service nfs-kernel-server stop

sudo service portmap start

sudo service nfs-kernel-server start

5 Host Final Configuration and Booting Linux over NFS

  1. In your host, under the images folder {YOCTO_BUILD_DIR}/tmp/deploy/images/ {TARGET}/ create the below links

ln -s zImage_imx_v7_defconfig zImage

     2. In U-boot type the below command:

               run netboot

After a pair of minutes you should get a Linux working system on your target.

Labels (3)
Comments

Hi,

this is really good. It worked for me after I corrected an error in Section "4.2 Target Setup". The ip={ipaddr} was missing a "$", eg

setenv netargs 'setenv bootargs console=${console},${baudrate} ${smp} root=/dev/nfs ip={ipaddr} nfsroot=${serverip}:${nfsroot},v3,tcp'

changed to

setenv netargs 'setenv bootargs console=${console},${baudrate} ${smp} root=/dev/nfs ip=${ipaddr} nfsroot=${serverip}:${nfsroot},v3,tcp'

cheers

Chris

Thanks Chris!!!

/Alejandro

NFS can not mount :

input: gpio-keys.21 as /devices/soc0/gpio-keys.21/input/input8

snvs_rtc 20cc034.snvs-rtc-lp: setting system clock to 1970-01-01 00:00:02 UTC (2)

fec 2188000.ethernet eth0: Freescale FEC PHY driver [Generic PHY] (mii_bus:phy_addr=2188000.ethernet:01, irq=-1)

IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready

libphy: 2188000.ethernet:01 - Link is Up - 100/Full

IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready

IP-Config: Guessing netmask 255.0.0.0

IP-Config: Complete:

     device=eth0, hwaddr=00:04:9f:04:19:25, ipaddr=33.0.0.0, mask=255.0.0.0, gw=255.255.255.255

     host=33.0.0.0, domain=, nis-domain=(none)

     bootserver=255.255.255.255, rootserver=192.168.1.45, rootpath=

ALSA device list:

  #0: wm8962-audio

  #1: imx-hdmi-soc

random: nonblocking pool is initialized

VFS: Unable to mount root fs via NFS, trying floppy.

VFS: Cannot open root device "nfs" or unknown-block(2,0): error -6

Please append a correct "root=" boot option; here are the available partitions:

1f00              32 mtdblock0  (driver?)

b300         7761920 mmcblk1  driver: mmcblk

  b301          512000 mmcblk1p1 00000000-01

b308         7757824 mmcblk3  driver: mmcblk

  b309          512000 mmcblk3p1 00000000-01

  b30a         7143424 mmcblk3p2 00000000-02

b320             128 mmcblk3rpmb  (driver?)

b318            1024 mmcblk3boot1  (driver?)

b310            1024 mmcblk3boot0  (driver?)

Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(2,0)

CPU1: stopping

CPU: 1 PID: 0 Comm: swapper/1 Not tainted 3.14.28-1.0.0_ga+g91cf351 #2

[<800149f8>] (unwind_backtrace) from [<80011714>] (show_stack+0x10/0x14)

[<80011714>] (show_stack) from [<806ecc7c>] (dump_stack+0x7c/0xbc)

[<806ecc7c>] (dump_stack) from [<80013998>] (handle_IPI+0x144/0x158)

[<80013998>] (handle_IPI) from [<80008598>] (gic_handle_irq+0x58/0x5c)

[<80008598>] (gic_handle_irq) from [<80012200>] (__irq_svc+0x40/0x70)

Exception stack(0xa80a7f50 to 0xa80a7f98)

7f40:                                     a80a7f98 3b9aca00 121156e1 00000018

7f60: 80d92308 80d92308 ab72c0d0 00000000 11edd509 00000018 a80a6000 00000000

7f80: 00000017 a80a7f98 00000009 804ab838 00000113 ffffffff

[<80012200>] (__irq_svc) from [<804ab838>] (cpuidle_enter_state+0x54/0xe4)

[<804ab838>] (cpuidle_enter_state) from [<804ab97c>] (cpuidle_idle_call+0xb4/0x14c)

[<804ab97c>] (cpuidle_idle_call) from [<8000f0bc>] (arch_cpu_idle+0x8/0x44)

[<8000f0bc>] (arch_cpu_idle) from [<80066c8c>] (cpu_startup_entry+0x100/0x14c)

[<80066c8c>] (cpu_startup_entry) from [<10008624>] (0x10008624)

CPU2: stopping

CPU: 2 PID: 0 Comm: swapper/2 Not tainted 3.14.28-1.0.0_ga+g91cf351 #2

[<800149f8>] (unwind_backtrace) from [<80011714>] (show_stack+0x10/0

=> print

baudrate=115200

boot_fdt=try

bootargs=console=ttymxc0,115200 root=/dev/nfs ip={ipaddr} nfsroot=192.168.1.31:/home/zhq/workspace/imx6/yocto_3.14.28-1.0.1/uboot/tmp/work/imx6qsabresd-poky-linux-gnueabi/fsl-image-gui/1.0-r0/rootfs,v3,tcp

bootcmd=mmc dev ${mmcdev};if mmc rescan; then if run loadbootscript; then run bootscript; else if run loadimage; then run mmcboot; else run netboot; fi; fi; else run netboot; fi

bootcmd_mfg=run mfgtool_args;bootz ${loadaddr} ${initrd_addr} ${fdt_addr};

bootdelay=1

bootfile=imx6q-sabresd.dtb

bootscript=echo Running bootscript from mmc ...; source

console=ttymxc0

dnsip=202.96.128.166

ethact=FEC

ethaddr=00:04:9f:04:19:25

ethprime=FEC

fdt_addr=0x18000000

fdt_file=zImage-imx6q-sabresd.dtb

fdt_high=0xffffffff

fileaddr=12000000

filesize=5b9018

get_cmd=tftp

image=zImage

initrd_addr=0x12C00000

initrd_high=0xffffffff

ip=dhcp

ip_dyn=no

ipaddr=192.168.1.28

loadaddr=0x12000000

loadbootscript=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${script};

loadfdt=fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr} ${fdt_file}

loadimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${image}

mfgtool_args=setenv bootargs console=ttymxc0,115200 rdinit=/linuxrc g_mass_storage.stall=0 g_mass_storage.removable=1 g_mass_storage.idVendor=0x066F g_mass_storage.idProduct=0x37FF g_mass_storage.iSerialNumber="" enable_wait_mode=off

mmcargs=setenv bootargs console=${console},${baudrate} ${smp} root=${mmcroot}

mmcautodetect=yes

mmcboot=echo Booting from mmc ...; run mmcargs; if test ${boot_fdt} = yes || test ${boot_fdt} = try; then if run loadfdt; then bootz ${loadaddr} - ${fdt_addr}; else if test ${boot_fdt} = try; then bootz; else echo WARN: Cannot load the DT; fi; fi; else bootz; fi;

mmcdev=2

mmcpart=1

mmcroot=/dev/mmcblk3p2 rootwait rw

netargs=setenv bootargs console=${console},${baudrate} ${smp} root=/dev/nfs ip={ipaddr} nfsroot=${serverip}:${nfsroot},v3,tcp

netboot=echo Booting from net ...; run netargs; if test ${ip_dyn} = yes; then setenv get_cmd dhcp; else setenv get_cmd tftp; fi; ${get_cmd} ${image}; if test ${boot_fdt} = yes || test ${boot_fdt} = try; then if ${get_cmd} ${fdt_addr} ${fdt_file}; then bootz ${loadaddr} - ${fdt_addr}; else if test ${boot_fdt} = try; then bootz; else echo WARN: Cannot load the DT; fi; fi; else bootz; fi;

nfsroot=/home/zhq/workspace/imx6/yocto_3.14.28-1.0.1/uboot/tmp/work/imx6qsabresd-poky-linux-gnueabi/fsl-image-gui/1.0-r0/rootfs

script=boot.scr

serverip=192.168.1.45

update_sd_firmware=if test ${ip_dyn} = yes; then setenv get_cmd dhcp; else setenv get_cmd tftp; fi; if mmc dev ${mmcdev}; then if ${get_cmd} ${update_sd_firmware_filename}; then setexpr fw_sz ${filesize} / 0x200; setexpr fw_sz ${fw_sz} + 1; mmc write ${loadaddr} 0x2 ${fw_sz}; fi; fi

Environment size: 2807/8188 bytes

=>

Hello

I have a ton of systemd failures and "DEPEND"'s. What could be wrong?

Here is what I'm getting

systemd[1]: Set hostname to <energybridge2>.

systemd[1]: Initializing machine ID from random generator.

systemd[1]: Installed transient /etc/machine-id file.

systemd[1]: Reached target Remote File Systems.

[  OK  ] Reached target Remote File Systems.

systemd[1]: Started Dispatch Password Requests to Console Directory Watch.

[  OK  ] Started Dispatch Password Requests to Console Directory Watch.

systemd[1]: Reached target Swap.

[  OK  ] Reached target Swap.

systemd[1]: Started Forward Password Requests to Wall Directory Watch.

[  OK  ] Started Forward Password Requests to Wall Directory Watch.

systemd[1]: Reached target Paths.

[  OK  ] Reached target Paths.

systemd[1]: Created slice Root Slice.

[  OK  ] Created slice Root Slice.

systemd[1]: Listening on udev Kernel Socket.

[  OK  ] Listening on udev Kernel Socket.

systemd[1]: Created slice System Slice.

[  OK  ] Created slice System Slice.

systemd[1]: Created slice system-getty.slice.

[  OK  ] Created slice system-getty.slice.

systemd[1]: Created slice system-serial\x2dgetty.slice.

[  OK  ] Created slice system-serial\x2dgetty.slice.

systemd[1]: Created slice system-wpa_supplicant\x2dnl80211.slice.

[  OK  ] Created slice system-wpa_supplicant\x2dnl80211.slice.

systemd[1]: Created slice system-openvpn.slice.

[  OK  ] Created slice system-openvpn.slice.

systemd[1]: Listening on networkd rtnetlink socket.

[  OK  ] Listening on networkd rtnetlink socket.

systemd[1]: Listening on /dev/initctl Compatibility Named Pipe.

[  OK  ] Listening on /dev/initctl Compatibility Named Pipe.

systemd[1]: Listening on Syslog Socket.

[  OK  ] Listening on Syslog Socket.

systemd[1]: Listening on Journal Socket (/dev/log).

[  OK  ] Listening on Journal Socket (/dev/log).

systemd[1]: Listening on udev Control Socket.

[  OK  ] Listening on udev Control Socket.

systemd[1]: Listening on Journal Socket.

[  OK  ] Listening on Journal Socket.

systemd[1]: Starting Journal Service...

         Starting Journal Service...

systemd[1]: Starting (null)...

         Starting (null)...

systemd[1]: Starting File System Check on Root Device...

         Starting File System Check on Root Device...

systemd[1]: Mounting Temporary Directory...

         Mounting Temporary Directory...

systemd[1]: Starting Setup Virtual Console...

         Starting Setup Virtual Console...

systemd[1]: Starting Create list of required static device nodes for the current kernel...

         Starting Create list of required st... nodes for the current kernel...

systemd[1]: Starting Load Kernel Modules...

         Starting Load Kernel Modules...

systemd[1]: Mounting Debug File System...

         Mounting Debug File System...

systemd[1]: Created slice User and Session Slice.

[  OK  ] Created slice User and Session Slice.

systemd[1]: Reached target Slices.

[  OK  ] Reached target Slices.

systemd[1]: Started (null).

[  OK  ] Started (null).

DBG [at_pwr_dev_init: 125]at_pwr_dev: registered

systemd[1]: Started File System Check on Root Device.

[  OK  ] Started File System Check on Root Device.

DBG [linux_wlan_device_power: 874]linux_wlan_device_power.. (0)

systemd[1]: tmp.mount: Mount process exited, code=exited status=1

systemd[1]: Failed to mount Temporary Directory.

[FAILED] Failed to mount Temporary Directory.

See 'systemctl status tmp.mount' for details.

*** WILC3000 driver VERSION=[11.3.0] ***

DBG [at_pwr_power_up: 912]

systemd[1]: Dependency failed for OpenVPN Robust And Highly Flexible Tunneling Application On ebnet.

source: Wifi, current bus status Wifi: 0, BT: 0

DBG [at_pwr_power_up: 956]WILC POWER UP

DBG [linux_wlan_device_power: 874][DEPEND] Dependency failed for OpenVPN Robus... Tunneling Application On ebnet.

linux_wlan_device_power.. (0)

DBG [linux_wlan_device_power: 874]linux_wlan_device_power.. (1)

systemd[1]: openvpn@ebnet.service: Job openvpn@ebnet.service/start failed with result 'dependency'.

systemd[1]: Dependency failed for Basic System.

[DEPEND] Dependency failed for Basic System.

systemd[1]: Dependency failed for Multi-User System.

[DEPEND] Dependency failed for Multi-User System.

systemd[1]: multi-user.target: Job multi-user.target/start failed with result 'dependency'.

systemd[1]: Dependency failed for WPA supplicant daemon (interface- and nl80211 driver-specific version).

DBG [at_pwr_register_bus: 233]source: Wifi, current bus status Wifi: 0, BT: 0

DBG [linux_wlan_device_detection: 890]linux_wlan_device_detection.. (1)

[DEPEND] Dependency faiDBG [at_pwr_register_bus: 263]led for WPA supplican...l80211 driver-specific version).

Waiting for sdio probe

DBG [at_pwr_register_bus: 269]sdio probe is called

systemd[1]: wpa_supplicant-nl80211@wlan0.service: Job wpa_supplicant-nl80211@wlan0.service/start failed with result 'dependency'.

DBG [init_wilc_driver: 2477]Initializing netdev

DBG [WILC_WFI_WiphyRegister: 3665]Registering wifi device

systemd[1]: Dependency failed for Mosquitto MQTT Broker.

[DBG [WILC_WFI_CfgAlloc: 3610]DEPEND] Dependency faiAllocating wireless device

led for Mosquitto MQTT Broker.

DBG [WILC_WFI_WiphyRegister: 3748]Successful Registering

DBG [WILC_WFI_WiphyRegister: 3665]Registering wifi device

systemd[1]: mosquitto.service: Job mosquitto.service/start failed with result 'dependency'.

DBG [WILC_WFI_CfgAlloc: 3610]Allocating wireless device

DBG [WILC_WFI_WiphyRegister: 3748]Successful Registering

systemd[1]: Dependency failed for Kernel Logging Service.

[DEPEND] Dependency faiDBG [init_wilc_driver: 2487]led for Kernel Logging Service.

Device has been initialized successfully

systemd[1]: busybox-klogd.service: Job busybox-klogd.service/start failed with result 'dependency'.

systemd[1]: Dependency failed for Avahi mDNS/DNS-SD Stack.

[DEPEND] Dependency failed for Avahi mDNS/DNS-SD Stack.

systemd[1]: avahi-daemon.service: Job avahi-daemon.service/start failed with result 'dependency'.

systemd[1]: Dependency failed for Network Name Resolution.

[DEPEND] Dependency failed for Network Name Resolution.

systemd[1]: systemd-resolved.service: Job systemd-resolved.service/start failed with result 'dependency'.

systemd[1]: Dependency failed for D-Bus System Message Bus.

[DEPEND] Dependency failed for D-Bus System Message Bus.

systemd[1]: dbus.service: Job dbus.service/start failed with result 'dependency'.

systemd[1]: Dependency failed for Serial Getty on ttymxc0.

[DEPEND] Dependency failed for Serial Getty on ttymxc0.

systemd[1]: serial-getty@ttymxc0.service: Job serial-getty@ttymxc0.service/start failed with result 'dependency'.

systemd[1]: Dependency failed for System Logging Service.

[DEPEND] Dependency failed for System Logging Service.

systemd[1]: busybox-syslog.service: Job busybox-syslog.service/start failed with result 'dependency'.

systemd[1]: Dependency failed for Getty on tty1.

[DEPEND] Dependency failed for Getty on tty1.

systemd[1]: getty@tty1.service: Job getty@tty1.service/start failed with result 'dependency'.

systemd[1]: Dependency failed for Login Service.

[DEPEND] Dependency failed for Login Service.

systemd[1]: systemd-logind.service: Job systemd-logind.service/start failed with result 'dependency'.

systemd[1]: basic.target: Job basic.target/start failed with result 'dependency'.

systemd[1]: Dependency failed for Network Time Synchronization.

[DEPEND] Dependency failed for Network Time Synchronization.

systemd[1]: systemd-timesyncd.service: Job systemd-timesyncd.service/start failed with result 'dependency'.

systemd[1]: tmp.mount: Unit entered failed state.

systemd[1]: Started Setup Virtual Console.

[  OK  ] Started Setup Virtual Console.

systemd[1]: Started Create list of required static device nodes for the current kernel.

[  OK  ] Started Create list of required sta...ce nodes for the current kernel.

systemd[1]: Started Load Kernel Modules.

[  OK  ] Started Load Kernel Modules.

systemd[1]: sys-kernel-debug.mount: Mount process exited, code=exited status=1

systemd[1]: Failed to mount Debug File System.

[FAILED] Failed to mount Debug File System.

See 'systemctl status sys-kernel-debug.mount' for details.

systemd[1]: sys-kernel-debug.mount: Unit entered failed state.

systemd[1]: Started Journal Service.

[  OK  ] Started Journal Service.

         Mounting Temporary Directory...

         Mounting Debug File System...

         Mounting FUSE Control File System...

         Starting Apply Kernel Variables...

[  OK  ] Reached target Login Prompts.

         Starting Remount Root and Kernel File Systems...

[FAILED] Failed to mount Temporary Directory.

See 'systemctl status tmp.mount' for details.

[DEPEND] Dependency failed for Basic System.

[DEPEND] Dependency failed for Kernel Logging Service.

[DEPEND] Dependency failed for System Logging Service.

[DEPEND] Dependency failed for Network Time Synchronization.

[FAILED] Failed to mount Debug File System.

See 'systemctl status sys-kernel-debug.mount' for details.

[FAILED] Failed to mount FUSE Control File System.

See 'systemctl status sys-fs-fuse-connections.mount' for details.

[  OK  ] Started Apply Kernel Variables.

[FAILED] Failed to start Remount Root and Kernel File Systems.

See 'systemctl status systemd-remount-fs.service' for details.

         Mounting Temporary Directory...

         Mounting Debug File System...

         Starting Remount Root and Kernel File Systems...

         Mounting FUSE Control File System...

[FAILED] Failed to mount Temporary Directory.

See 'systemctl status tmp.mount' for details.

[DEPEND] Dependency failed for Basic System.

[DEPEND] Dependency failed for Kernel Logging Service.

[DEPEND] Dependency failed for System Logging Service.

[DEPEND] Dependency failed for Network Time Synchronization.

[FAILED] Failed to mount Debug File System.

See 'systemctl status sys-kernel-debug.mount' for details.

[FAILED] Failed to start Remount Root and Kernel File Systems.

See 'systemctl status systemd-remount-fs.service' for details.

[FAILED] Failed to mount FUSE Control File System.

See 'systemctl status sys-fs-fuse-connections.mount' for details.

         Mounting FUSE Control File System...

         Mounting Temporary Directory...

         Mounting Debug File System...

         Starting Remount Root and Kernel File Systems...

[FAILED] Failed to mount FUSE Control File System.

See 'systemctl status sys-fs-fuse-connections.mount' for details.

[FAILED] Failed to mount Temporary Directory.

See 'systemctl status tmp.mount' for details.

[DEPEND] Dependency failed for Basic System.

[DEPEND] Dependency failed for Kernel Logging Service.

[DEPEND] Dependency failed for System Logging Service.

[DEPEND] Dependency failed for Network Time Synchronization.

[FAILED] Failed to mount Debug File System.

See 'systemctl status sys-kernel-debug.mount' for details.

[FAILED] Failed to start Remount Root and Kernel File Systems.

See 'systemctl status systemd-remount-fs.service' for details.

         Mounting FUSE Control File System...

         Mounting Temporary Directory...

         Mounting Debug File System...

         Starting Remount Root and Kernel File Systems...

[FAILED] Failed to mount FUSE Control File System.

See 'systemctl status sys-fs-fuse-connections.mount' for details.

[FAILED] Failed to mount Temporary Directory.

See 'systemctl status tmp.mount' for details.

[DEPEND] Dependency failed for Basic System.

[DEPEND] Dependency failed for Kernel Logging Service.

[DEPEND] Dependency failed for System Logging Service.

[DEPEND] Dependency failed for Network Time Synchronization.

[FAILED] Failed to mount Debug File System.

See 'systemctl status sys-kernel-debug.mount' for details.

[FAILED] Failed to start Remount Root and Kernel File Systems.

See 'systemctl status systemd-remount-fs.service' for details.

         Starting Remount Root and Kernel File Systems...

         Mounting Temporary Directory...

         Mounting Debug File System...

         Mounting FUSE Control File System...

[FAILED] Failed to start Remount Root and Kernel File Systems.

See 'systemctl status systemd-remount-fs.service' for details.

[FAILED] Failed to mount Temporary Directory.

See 'systemctl status tmp.mount' for details.

[DEPEND] Dependency failed for Basic System.

[DEPEND] Dependency failed for Kernel Logging Service.

[DEPEND] Dependency failed for System Logging Service.

[DEPEND] Dependency failed for Network Time Synchronization.

[FAILED] Failed to mount Debug File System.

See 'systemctl status sys-kernel-debug.mount' for details.

[FAILED] Failed to mount FUSE Control File System.

See 'systemctl status sys-fs-fuse-connections.mount' for details.

         Mounting Temporary Directory...

         Mounting FUSE Control File System...

[FAILED] Failed to start Remount Root and Kernel File Systems.

See 'systemctl status systemd-remount-fs.service' for details.

         Mounting Debug File System...

         Starting udev Coldplug all Devices...

         Starting Create Static Device Nodes in /dev...

         Starting Flush Journal to Persistent Storage...

[FAILED] Failed to mount Temporary Directory.

See 'systemctl status tmp.mount' for details.

[DEPEND] Dependency failed for Basic System.

[DEPEND] Dependency failed for Kernel Logging Service.

[DEPEND] Dependency failed for System Logging Service.

[DEPEND] Dependency failed for Network Time Synchronization.

[FAILED] Failed to mount FUSE Control File System.

See 'systemctl status sys-fs-fuse-connections.mount' for details.

[FAILED] Failed to mount Debug File System.

See 'systemctl status sys-kernel-debug.mount' for details.

[  OK  ] Started Create Static Device Nodes in /dev.

systemd-journald[153]: Received request to flush runtime journal from PID 1

[  OK  ] Started Flush Journal to Persistent Storage.

         Mounting Temporary Directory...

         Mounting Debug File System...

         Mounting FUSE Control File System...

[FAILED] Failed to start Remount Root and Kernel File Systems.

See 'systemctl status systemd-remount-fs.service' for details.

[  OK  ] Reached target Local File Systems (Pre).

         Mounting /var/volatile...

         Starting udev Kernel Device Manager...

[FAILED] Failed to mount Temporary Directory.

See 'systemctl status tmp.mount' for details.

[DEPEND] Dependency failed for Basic System.

[DEPEND] Dependency failed for Kernel Logging Service.

[DEPEND] Dependency failed for System Logging Service.

[DEPEND] Dependency failed for Network Time Synchronization.

[FAILED] Failed to mount Debug File System.

See 'systemctl status sys-kernel-debug.mount' for details.

[FAILED] Failed to mount FUSE Control File System.

See 'systemctl status sys-fs-fuse-connections.mount' for details.

[FAILED] Failed to mount /var/volatile.

See 'systemctl status var-volatile.mount' for details.

[DEPEND] Dependency failed for Local File Systems.

[DEPEND] Dependency failed for Bind mount volatile /var/lib.

[  OK  ] Started udev Coldplug all Devices.

[  OK  ] Started udev Kernel Device Manager.

[  OK  ] Found device /sys/subsystem/net/devices/wlan0.

[  OK  ] Closed Network Service Bus Name.

         Starting Network Service...

[  OK  ] Closed sshd.socket.

[  OK  ] Closed Network Name Resolution Service Bus Name.

[  OK  ] Stopped Daily Cleanup of Temporary Directories.

[  OK  ] Reached target Timers.

[  OK  ] Closed Avahi mDNS/DNS-SD Stack Activation Socket.

[  OK  ] Closed D-Bus System Message Bus Socket.

[  OK  ] Closed RPCbind Server Activation Socket.

[  OK  ] Stopped target System Initialization.

         Starting Load/Save Random Seed...

[  OK  ] Started Emergency Shell.

[  OK  ] Reached target Emergency Mode.

[  OK  ] Reached target System Time Synchronized.

         Starting Create Volatile Files and Directories...

[  OK  ] Reached target Sockets.

[FAILED] Failed to start Network Service.

See 'systemctl status systemd-networkd.service' for details.

[DEPEND] Dependency failed for Wait for Network to be Configured.

[FAILED] Failed to start Load/Save Random Seed.

See 'systemctl status systemd-random-seed.service' for details.

[FAILED] Failed to start Create Volatile Files and Directories.

See 'systemctl status systemd-tmpfiles-setup.service' for details.

         Starting Update UTMP about System Boot/Shutdown...

[  OK  ] Stopped Network Service.

         Starting Network Service...

         Mounting FUSE Control File System...

[  OK  ] Found device /dev/ttymxc0.

[FAILED] Failed to mount FUSE Control File System.

See 'systemctl status sys-fs-fuse-connections.mount' for details.

[FAILED] Failed to start Network Service.

See 'systemctl status systemd-networkd.service' for details.

[  OK  ] Started Update UTMP about System Boot/Shutdown.

random: nonblocking pool is initialized

         Starting Update UTMP about System Runlevel Changes...

[  OK  ] Stopped Network Service.

         Starting Network Service...

[  OK  ] Started Update UTMP about System Runlevel Changes.

[FAILED] Failed to start Network Service.

See 'systemctl status systemd-networkd.service' for details.

[  OK  ] Stopped Network Service.

         Starting Network Service...

[FAILED] Failed to start Network Service.

See 'systemctl status systemd-networkd.service' for details.

[  OK  ] Stopped Network Service.

         Starting Network Service...

[FAILED] Failed to start Network Service.

See 'systemctl status systemd-networkd.service' for details.

[  OK  ] Stopped Network Service.

[FAILED] Failed to start Network Service.

See 'systemctl status systemd-networkd.service' for details.

[  OK  ] Reached target Network.

[  OK  ] Reached target Network is Online.

Welcome to emergency mode! After Welcome to emergency mode! After Give root password for maintenance

(or press Control-D to continue):

And after typing the password I get this:

sh-4.3#

Any Ideas?

Thanks!!

should the kernel image zImage need to be transformed to uImage before using TFTP transition?

should the root filesystem rootfs.tar.bz2 need to be unzipped to native folders before using NFS mount?

setenv ipaddr 192.168.1.102  <-- This must be your target IP address

should be

setenv ipaddr 192.168.0.102  <-- This must be your target IP address

Also include:

setenv netmask 255.255.255.0

And to make this more "universal" would be good to add a note that if it is a custom board and the ethernet MAC address is not embedded yet into u-boot then the following var should be set as well.

setenv ethaddr XX:XX:XX:XX:XX:XX  <------- whatever your MAC address is

Failing to do so will get you the error:

*** ERROR: `ethaddr' not set

Thanks for the tutorial!! It helped me a lot once I figured out this issues.

I've same behavior.
did you fix it?

Version history
Revision #:
1 of 1
Last update:
‎02-13-2015 04:02 PM
Updated by: