If you're still around and looking for how to do this... I'm in the process of working on that, and am half-way there
I also have a dnsmasq (proxyDHCP) PXE setup, and have gotten my rock64 to start booting from it.
You basically need the following in your pxe boot menu, and the matching files -
As I noticed once the rock64 started it's PXE requests that it was requesting via it's MAC, I created it's own config file with menu containing that, so that once I'm done it will have both a boot menu and auto-boot config.
I then created (I'm still trying to piece how this goes together so I can transfer this over to the clusterboard... so could be way off the mark here...)
boot.scr.uimg - empty - Becase uboot keeps looking for it. I suspect it allows for custom uboot commands, so it merely existing allowed things to continue
Image -> /boot/vmlinuz-4.4.114-rockchip-ayufan-193 (ln -s'd from running system but copying would be more better in the long term due to upgrades)
initrd.img -> /boot/initrd.img-4.4.114-rockchip-ayufan-193 (ln -s'd from running system - above applies)
dtb -> /boot/dtb
and it essentially works now... rock64 will pull down the kernel via the network and boots. And it also now pulls down its root filesystem over the network via NFS. After going back and editing the /etc/fstab as distributed and commenting out the /boot mount point which was now completely wrong, it seems to be booting up to a usable system just fine so far.
You can also extract those files from the boot.img contained within any of ayufan's minimal images, etc... just keep unpacking the file
One oddity in my setup so far though... it doesn't get the serverip for the TFTP/PXE server automatically like it should... remains 0.0.0.0, although a laptop and VMs on my desktop boot just fine (so I know dnsmasq IS working)... so I have to set it manually until I manage to lock it into the uboot environment properly or work out why the rock64 is misbehaving - just need to work out how to save it to the SPI since it's also booting from that... that plus the PXE menu doesn't autoselect, but that could be because I have to manually intervene atm... work in progress!
Edit (a little while later...):
After frittering around with the settings and it seems to be behaving itself now with the exception of the need to set the serverip at boot... i.e. doing the following on a boot/reboot:
In pursuing an issue which appeared to be resulting from the network interface being disabled before everything was properly written, and thus poweroff/reboot just grinding to a halt... I
I also have a dnsmasq (proxyDHCP) PXE setup, and have gotten my rock64 to start booting from it.
You basically need the following in your pxe boot menu, and the matching files -
Code:
default rock64-kernel-4.4
prompt 0
timeout 3
menu title Boot options
label rock64-kernel-4.4
kernel /Image
initrd /initrd.img
fdt /dtb
append earlycon=uart8250,mmio32,0xff130000 rw root=/dev/nfs nfsroot=${serverip}:/data/rootfs/rock64-1 rootwait init=/sbin/init mtdparts=spi32766.0:32k(system),4064k(loader),3840k(reserved),256k(vendor),4M(uboot),4M(atf)
As I noticed once the rock64 started it's PXE requests that it was requesting via it's MAC, I created it's own config file with menu containing that, so that once I'm done it will have both a boot menu and auto-boot config.
I then created (I'm still trying to piece how this goes together so I can transfer this over to the clusterboard... so could be way off the mark here...)
boot.scr.uimg - empty - Becase uboot keeps looking for it. I suspect it allows for custom uboot commands, so it merely existing allowed things to continue
Image -> /boot/vmlinuz-4.4.114-rockchip-ayufan-193 (ln -s'd from running system but copying would be more better in the long term due to upgrades)
initrd.img -> /boot/initrd.img-4.4.114-rockchip-ayufan-193 (ln -s'd from running system - above applies)
dtb -> /boot/dtb
and it essentially works now... rock64 will pull down the kernel via the network and boots. And it also now pulls down its root filesystem over the network via NFS. After going back and editing the /etc/fstab as distributed and commenting out the /boot mount point which was now completely wrong, it seems to be booting up to a usable system just fine so far.
You can also extract those files from the boot.img contained within any of ayufan's minimal images, etc... just keep unpacking the file
One oddity in my setup so far though... it doesn't get the serverip for the TFTP/PXE server automatically like it should... remains 0.0.0.0, although a laptop and VMs on my desktop boot just fine (so I know dnsmasq IS working)... so I have to set it manually until I manage to lock it into the uboot environment properly or work out why the rock64 is misbehaving - just need to work out how to save it to the SPI since it's also booting from that... that plus the PXE menu doesn't autoselect, but that could be because I have to manually intervene atm... work in progress!
Edit (a little while later...):
After frittering around with the settings and it seems to be behaving itself now with the exception of the need to set the serverip at boot... i.e. doing the following on a boot/reboot:
Code:
set serverip 192.168.0.210
boot
In pursuing an issue which appeared to be resulting from the network interface being disabled before everything was properly written, and thus poweroff/reboot just grinding to a halt... I
- added "ASYNCMOUNTNFS=no" to /etc/default/rcS, and
- commented out both lines of "eth0" in /etc/network/interfaces.d/eth0