Duo Arduino root build process / burnd source code

Is it possible to rebuild the root fs for arduino by myself and how to do it? Is any documentation available for the process?
Checking linux OS running on main CPU core I find burnd process, but unfortunately I cannot find source code for burnd executable anywhere ( the source code for the burnd executable is something really interesting for me).
Regards, Tadeusz

Yes, check out the arduino branch of duo-buildroot-sdk and build as normal.

Thank you for the information. Unfortunately burnd is a binary addon in /device/common/overlay/usr/bin/burnd so I didn’t find source code there anyway. It is a pity, that in the source hierarchy are included binary blobs. Maybe it is possible for milk-v to open the source code for at least burnd?

Regards, Tadeusz

This is slightly disappointing, since the milkv-duo platform is generally well-opened, well-documented and devoid of blobs: and I’ve been trying to boost it to a journalist friend who I’m inducting into the intricacies of realtime systems.

However applying the unix strings command to the burnd binary suggests that the technique shown at It is possible to burn Arduino remotely? is applicable, possibly with the addition of arduino.elf as a “magic” name in /lib/firmware.

xref here to Seeing Arduino loader device on a Linux x86_64 host · Issue #81 · milkv-duo/duo-buildroot-sdk · GitHub which describes my current problem of being unable to see the target serial download device from a Linux host.

Updated: my experience so far is that the name /has/ to be arduino.elf, and I’ve not yet managed to get serial output working.


I’ve managed to crash the main processor using questionable Arduino-style code, and was not able to recover by remotely echo stop > /sys/class/remoteproc/remoteproc0/state since I suspect that is only created immediately before the small-core firmware is loaded from /lib firmware.

The only way I was able to recover was by putting the SD-Card in a PC and removing the defective /lib/firmware/arduino.elf. This would obviously a highly-undesirable situation if the target system were inaccessible, and even though this could be blamed on inadequate testing on the part of the developer (i.e. in this case me) anybody who’s been in this game for any length of time knows that stuff happens.

If I had access to the burnd sources I would modify them with a delay between creating remoteproc0 and trying to start the firmware. Since I haven’t got access to them, I can’t.