Loading PRU overlay causes BBB to lock

I’m having problems with my PRU overlay, I think.

I updated my BBB to beaglebone 3.8.13-bone79, and am now getting very odd behavior. It used to work, but I’m embarrassed to say I can’t remember which version that was – it was quite a while ago.

After manually loading my overlay to activate the PRU, the BBB dramatically slows down, and responds to commands like this:

-bash: /sbin/reboot: Input/output error

I do not have much experience with Linux.
My basic question is where do I start looking for the problem?
What things should I check?


A couple of commands in a shell might help you get going:


The above command will tell you which kernel modules are loaded. If you are using PRU, you probably want to have one or more related modules.
Run this before you add the overlay. Do you know if you are using the RemoteProc or UIO framework?

Also the command


You probably want to use

dmesg | less

and with the above you can use the letter f (page forward) b (page backward) and q for quit, as this log file is quite long.

dmesg will show you the kernel log which will possibly help. Assuming you can look at it at all after loading the overlay!

I’m not sure if the 3.8 version distributions require a change to the Device Tree to get a particular PRU framework.
The newest version 8 Debian definitely do.

You need to provide more details for sure. What is it you were doing before which worked?


Hi Damon!

Kernel 3.8.13-bone79 is uio_pruss only (no remoteproc).

TJF, so what is the best way to update the dtc?

I’ve used this in the past:


More specifically the script:


However, I’m not sure this is the appropriate method in this case.
If not, what is? An apt-get install …?


The new version should come with your update. Just re-compile your source on the new kernel installation:

sudo dtc -@ -I dts -O dtb -o /lib/firmware/NAME_OF_YOUR_SOURCE.dtbo /PATH_TO_YOUR_SOURCE/NAME_OF_YOUR_SOURCE.dts




Sorry, I didn’t answer your question.

You should not have to upgrade the device tree compiler( dtc ). As each kernel version, as provided with the latest images have the proper device tree compiler. However, assuming, running Wheezy, then upgrading to a newer kernel( 3.8.x to 4.x ) the device tree compiler would have to be upgraded at this time. But it is also worth nothing that it’s not only easier, but better to just download and burn a new image at this time. As there can be multiple problems when upgrading from a 3.8.x kernel, to 4.x on older Wheezy images.