Yocto Setup TFTP/NFS¶
Running Yocto rootfs on Variscite board using TFTP & NFS¶
On the Host¶
Prepare the rootfs folder:
sudo tar --zstd -xvf ../build/deploy-ti/images/am62x-var-som/var-default-image-am62x-var-som.rootfs.tar.zst
Make sure the NFS server is installed:
Edit /etc/exports. E.g.
And add the following line to it (replace
Restart the NFS server:
Make sure the TFTP server is installed:
Ubuntu 24.04 and newer:
Ubuntu 22.04 and older:
Configure tftpd-hpa for Ubuntu 24.04 and newer:
Configure tftpd for Ubuntu 22.04 and older:
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:
for f in deploy-ti/images/am62x-var-som/*.dtb; do if [[ -L $f ]] && [[ $f != *am62x-var-som.dtb ]]; then sudo cp $f /tftpboot; fi done
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/etc/NetworkManager/NetworkManager.conf:
Enable DNS:
On the Target¶
Update the U-Boot enviroment by adding the following lines to the uEnv.txt file on the SD card/eMMC boot partition:
svrip=<HOST_IP_ADDRESS> (replace <HOST_IP_ADDRESS> with the actual IP address of your host - run 'ifconfig' on the host to get it)
ipaddr=<TARGET_IP_ADDRESS> (replace <TARGET_IP_ADDRESS> with the IP address for the target)
image=Image
rootpath=/home/<uname>/var-fslc-yocto/rootfs
fdtfile=k3-am62x-var-som-symphony.dtb
netargs=setenv bootargs console=${console} ${optargs} root=/dev/nfs nfsroot=${serverip}:${rootpath},nolock,v3 rw ip=${ipaddr}:::::eth0
netboot=tftp ${loadaddr} ${image}; tftp ${fdtaddr} ${fdtfile}; run netargs; booti ${loadaddr} - ${fdtaddr}
uenvcmd=setenv serverip ${svrip}; setenv ipaddr ${ipaddr}; run netboot
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.