I'm seeing a curious problem when trying to load device tree overlays on a Beaglebone black. The loader fails to load the .dtbo file because it is looking for a file with a name different to the one it has been told to load. The .dts file was compiled on the same device using the command:
dtc -O dtb -o TEST-DT-00A0.dtbo -b 0 -@ TEST-DT-00A0.dts
The compilation completed without errors but when I attempt to load the binary using:
echo TEST-DT-00A0.dtbo > /sys/devices/bone_capemgr.9/slots
I see the error:
-bash: echo: write error: No such file or directory
Examining the reason for the failure using dmesg reveals that the loader was attempting to load a file with the name (-0 inserted into the file name):
TEST-DT-0-00A0.dtbo
Sure enough, if I rename the .dtbo file to the name expected by the loader it loads correctly and works just fine.
Does anyone have any idea why the extra '-0' was added to the name by the device tree loader? On a second Beaglebone, the loader was expecting the file to be named TEST-DT-00-00A0.dtbo (-00 added to the name).
If it helps, here's the output from uname:
Linux beaglebone 3.8.13-bone79 #1 SMP Tue Oct 13 20:44:55 UTC 2015 armv7l GNU/Linux
Thanks for any help!