Debian Setup TFTP/NFS
Running Debian rootfs on Variscite board using TFTP & NFS
On the Host
Prepare the rootfs folder:
$ cd ~/debian_imx8mp_var_dart $ mkdir -p ~/rootfs_debian_nfs $ cd ~/rootfs_debian_nfs $ sudo tar xvf ~/debian_imx8mp_var_dart/output/rootfs.tar.gz -C .
Make sure the NFS server is installed:
$ sudo apt-get install nfs-kernel-server
Edit /etc/exports. E.g.
$ sudo gedit /etc/exports
...and add the following line to it (replace <uname> with the actual username):
/home/<uname>/rootfs_debian_nfs *(rw,sync,no_root_squash,no_all_squash,no_subtree_check)
Restart the NFS server:
$ sudo /etc/init.d/nfs-kernel-server restart
Make sure the TFTP server is installed:
$ sudo apt-get install xinetd tftpd tftp
Verify the following:
$ ls /usr/sbin/in.tftpd $ sudo gedit /etc/xinetd.d/tftp service tftp { protocol = udp port = 69 socket_type = dgram wait = yes user = nobody server = /usr/sbin/in.tftpd server_args = /tftpboot disable = no }
and run:
$ sudo mkdir /tftpboot $ sudo chmod -R 777 /tftpboot $ sudo /etc/init.d/xinetd restart $ cd ~/debian_imx8mp_var_dart
$ sudo cp -a ~/rootfs_debian_nfs/boot/*.dtb /tftpboot $ sudo cp ~/rootfs_debian_nfs/boot/Image.gz /tftpboot
Make adjustments to the rootfs:
When using NetworkManager on the target, configure NetworkManager not to manage the interface used for the NFS boot by adding the following to ~/rootfs_debian_nfs/etc/NetworkManager/NetworkManager.conf:
[keyfile] unmanaged-devices=interface-name:eth0
Enable DNS:
$ sudo ln -fs /proc/net/pnp ~/rootfs_debian_nfs/etc/resolv.conf
On the Target
Make sure you have a serial connection to the target.
Boot the board and hit any key to stop the autoboot and get to the U-Boot command line.
=> setenv serverip <HOST_IP_ADDRESS> (replace <HOST_IP_ADDRESS> with the actual IP address of your host - run 'ifconfig' on the host to get it) => setenv nfsroot /home/<uname>/rootfs_debian_nfs (replace <uname> with the actual username) => setenv bootcmd run netboot => saveenv
You are all set. Connect the target board to the same network as the host using an Ethernet cable, power cycle it and it should boot over NFS.