NFS and TFTP Boot
This document explains the required steps to boot Linux Kernel and mount a NFS on your target.
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.
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.
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.
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.
sudo gedit /etc/network/interfaces
auto eth1
iface eth1 inet static
address 192.168.0.100 <-- Your HOST IP
netmask 255.255.255.0
gateway 192.168.0.1
sudo ifdown eth1
sudo ifup eth1
We need to setup the network IP address of our target.
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'
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.
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”.
gedit /etc/xinetd.conf
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.
service xinetd restart
tftp localhost
tftp> get {An Image found in the tftp folder}
tftp> quit
gedit /etc/exports
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
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.
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
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?