# BeaglePlay network boot guide cuts kernel dev loop from minutes to seconds

> **Key takeaway:** A BeagleBoard.org developer published a detailed guide for booting BeaglePlay entirely over the network using TFTP for the kernel and NFS for the root filesystem, eliminating SD card swapping.

**Published:** 2026-10-18T12:11:30+00:00 
**Source:** BeagleBoard.org Blog 
**Category:** open-hardware 
**Canonical URL:** https://fosswire.org/news/beagleplay-network-boot-guide-cuts-kernel-dev-loop-from-minu.html 

## Summary
Ayush Singh from BeagleBoard.org documented a complete network-boot setup for BeaglePlay that replaces the tedious SD card shuffle with U-Boot fetching the kernel over TFTP and mounting root via NFS. The guide covers host configuration on Fedora Atomic, rootfs preparation with rsync preserving numeric IDs, kernel config requirements for NFS root without initramfs, and U-Boot pxelinux.cfg pitfalls. The result: kernel modules install directly to the host directory with make modules_install, and nothing needs copying to the board.

## What the setup requires
- **TFTP server**: socket-activated tftp-server on Fedora Atomic, serving /var/lib/tftpboot by default
- **NFS export**: needs `no_root_squash` (root mapped to nobody breaks /etc/sudoers and SSH keys) and `async` for speed; data-loss risk acceptable for dev rootfs
- **Rootfs copy**: rsync with `-aHAX --numeric-ids` from loop-mounted BeaglePlay Debian image; `--filter='-x security.selinux'` needed on SELinux hosts
- **Debian image tweaks**: remove root and /boot/firmware from /etc/fstab; mask bbbio-set-sysconf.service dependency; handle zram (enable CONFIG_ZRAM or disable in rootfs)
- **Kernel built-ins required**: `NFS_FS`, `NFS_V3`, `ROOT_NFS`, `IP_PNP`, `IP_PNP_DHCP`, `TI_K3_AM65_CPSW_NUSS`, `TI_DAVINCI_MDIO` — all must be `=y`, not modules
- **U-Boot pxelinux.cfg**: `append` must be single line; keyword is `fdtoverlays` not `fdtoverlay`; overlays require explicit `fdt` entry; `vers=3` avoids NFSv4 ID mapping issues
- **Boot order matters**: `dhcp` overwrites `serverip`, so set `serverip` after `dhcp`; `saveenv` unavailable on this U-Boot build prevents persistent config

## Why it matters
The guide lowers the barrier for kernel hacking on ARM boards by replacing physical SD card iteration with a fast network loop, potentially benefiting other TI K3-based boards with similar U-Boot capabilities.