Unable to update device tree overlay file

In adding Audio Cape (BB-BONE-AUDI-02-00A0) to beaglebone black which also has LCD4 mounted I receive a GPIO 19 conflict error.

Looking at the dts file I see it has specified exclusive use for gpio1_18 and gpio1_19. In the past I circumvented this error by commenting these two pins out of the exclusive list and all works fine (doesn’t appear that these pwm pins are used by audio cape)

Now I upgraded debian to 3.8.13-bone70 and in performing upgrade and setting up new board I forgot to exclude these two pins from dts file before compiling, only to see the conflict error again.

My problem is that no matter what I do, (edit out pins, compile and copy new dtbo to /lib/firmware), I keep getting the same conflict error. If I edit the dts file and change the part number to something else and load it manually it works so I know the change and compile is valid.

It appears that my original compiled dtbo file is somehow being cached/persisted through power off/power on and my updated dtbo is not being ‘seen’.

I’d appreciate any suggestions on next steps.


Adding to this;

If I remove the compiled dtbo file from /lib/firmware directory and power-off/power-on the board running manual insert “echo BB-BONE-AUDI-02 > /sys/devices/bone_capemgr.9/slots” gives error write error: File Exists and dmesg shows BB-BONE-AUDI-02 conflict gpio1_19 (#3:BB-BONE-LCD4-01) where I expect it to throw error stating No such file or directory. I validated expected error by trying

echo BB-BONE-AUDI-03 > /sys/devices/bone_capemgr.9/slots which does give expected error of “write error: No such file or directory”

The issue is name collision… That dtbo is already built into the kernel. Also see


And search this list as we gone over it multiple times.

Thanks for your rapid response.

I did originally suspect it may already be included but a system wide search through folders did not reveal bb-bone-audi-02.dtbo file so I figured it wasn’t included - I guess it has a different file name.

Would suggested fix be creating by own cape based on original dts and giving it a different name?


Yeap, just call it "bb-bone-audi-03.dtbo" and it should load just fine..


Hello your problem solved?
I have this problem, but not done?
Can you help me in the end?

Robert’s suggestions/explanations worked for me and solved issue.

hi dear robert
i am farahani
we designed new pcb with base “begaleboneblack” siatara am3358
i run kernel version 3.8.x bone 80
bone 80 need for rtl8732 wifi
i run lcd 4.3" for 4dsystem company and run .dtbo " BB-BONE-LCD4-01-00A1" when use cat /sys/devices/bone_capemgr*/slots
run config file or dtbo in eeprom when startup.
and run , no problom,
in the my pcb place aic codec and run with echo BB-BONE-AUDI-02 > /sys/devices/bone_capemgr*/slots
run cound card and no problem.
when i use both.mean lcd with audio renamue BB-BONE-AUDI-02-00A0.DTS TO BB-BONE-AUDI-03-00A0.DTS

dtc -O dtb -o BB-BONE-AUDI-03-00A0.dtbo -b 0 -@ BB-BONE-AUDI-03-00A0.dts
mv BB-BONE-AUDI-02-00A0.dtbo /lib/firmware