Skip to content

Debian Setup TFTP/NFS

Running Debian rootfs on Variscite board using TFTP & NFS

On the Host

Prepare the rootfs folder:

mkdir -p ~/rootfs_debian_nfs
cd ~/rootfs_debian_nfs
sudo tar -I unzstd -xvf /build_lsdk2412/images/rootfs_lsdk2412_debian_desktop_arm32.tar.zst -C ~/rootfs_debian_nfs

Make sure the NFS server is installed:

sudo apt install nfs-kernel-server

Edit /etc/exports, e.g.:

sudo gedit /etc/exports

And add the following line to it (replace 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:

Ubuntu 24.04 and newer:

sudo apt install xinetd tftpd-hpa tftp-hpa

Ubuntu 22.04 and older:

sudo apt install xinetd tftpd tftp

Configure tftpd-hpa for Ubuntu 24.04 and newer:

sudo nano /etc/default/tftpd-hpa
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/tftpboot"
TFTP_ADDRESS=":69"
TFTP_OPTIONS="--secure"

Configure tftpd for Ubuntu 22.04 and older:

ls /usr/sbin/in.tftpd
sudo nano /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

Ubuntu 24.04 and newer:

sudo systemctl restart tftpd-hpa

Ubuntu 22.04 and older:

sudo systemctl restart xinetd
cd
sudo cp -a boot/*.dtb /tftpboot
sudo cp boot/zImage /tftpboot

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.

Replace <HOST_IP_ADDRESS> with the actual IP address of your host. Run ifconfig on the host to get it.

setenv serverip <HOST_IP_ADDRESS>

Replace <uname> with the actual username.

setenv nfsroot /home/<uname>/rootfs_debian_nfs
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.