I'm attempting to enable all the UARTs on the Beaglebone Black (UART 1-5). I am running debian 9.3 and using the BeagleBone Black rev C. I am attempting to enable all UARTs by modifying the uEnv.txt file (I have been putting this file in the root directory and the /boot directory, with the same results either way).

This is my uEnv.txt file:



cmdline=coherent_pool=1M net.ifnames=0 quiet cape_universal=enable


I have tried this file on several BeagleBone Blacks. On two of them, this file works and does enable all 5 UART devices (all /dev/ttyO1-5 are shown). However, on some other BeagleBone Blacks, only UART 1-4 gets enabled (evidenced by /dev/ttyO1-O4 showing up and being usable, but not /dev/ttyO5); UART 5 does not get enabled.

Nothing else is different in the OS Images in my trials. I have been using a fresh debian 9.3 on the SD card with the only modification being this uEnv.txt. In fact, I have even taken the same SD card from one working BeagleBone, put it in one that won't enable all 5 UARTs, and booted with the same results; UART 5 will not enable. I suspect it may be a bootlaoder issue since it seems specific to the very specific BeagleBone black I am using, and not the OS.

Does anyone have any ideas on why this file will work on one beaglebone and not on another? Unfortunately, due to the application I am developing, this can't be solved by just using the beaglebone(s) that work; I need to find a reliable solution.

As I said previously, I suspect it may be a bootloader issue however I'm quite unsure. My next steps I'm thinking about involve updating the bootloader, or going to a different Debian version.

Thank you in advance for the help!

Edit: I think on further inspection this may be an issue with the HDMI. I tried to disable the HDMI in the uEnv.txt file, however when checking /sys/devices/platform/bone_capemgr/slots there doesn't appear to be a line disabling the HDMI. This would make sense since UART 5 is tied up with the HDMI interface if it is not disabled if I'm not mistaken. However, I'm not quite sure how to fix this.

  • First idea: If the BeagleBone models are slightly different, possibly the pins used by UART5 are already used for something else. Verify by (1) identifying the SoC in detail, (2) locating the data sheet, (3) looking at which pins are mapped to UART5, and what else uses them, (4) find out if that subdevice is enabled (e.g. in boot logs). – dirkt Jul 17 '18 at 6:08

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.