vsergeev/c-periphery

BeagleBone Black + Yocto not working

Closed this issue · 9 comments

GPIO test failed at test_loopback.

Built with yocto for a BeagleBone Black.

Did you have a physical loopback installed between the two GPIOs?

Could you provide the log of the run?

Picture of the physical loopback:
bbb

Here's the log of the whole process, including steps used for Yocto's devtool:

bbb_log.txt

oops.. forgot to cat workspace/recipes/c-periphery/c-periphery_git.bb
c-periphery_recipe.txt

I bet your GPIO numbers are somehow mapped differently. What kernel are you using?

Surest way to check though is with a voltmeter on GPIO 38 (P8.3) and manually writing 1 or 0 /sys/class/gpio/gpio38/value, after writing out to /sys/class/gpio/gpio38/direction.

For example:

# echo 38 > /sys/class/gpio/export
# echo out > /sys/class/gpio/gpio38/direction
# echo 1 > /sys/class/gpio/gpio38/value
# echo 0 > /sys/class/gpio/gpio38/value
# echo 1 > /sys/class/gpio/gpio38/value
etc.

Indeed. Reproduced the commands, but the voltimeter reads only 3.3v, even after echoing 0.

root@beaglebone:~# uname -r
4.4.41-rt50-g15ae5cb78b

I'll try it with a non RT kernel. Which version do you suggest?

I've been running Arch Linux ARM, which is currently on 4.10.4. But the Linux package is the linux-am33x variant, which may have the GPIO mapping expected by the test.

I'm going to close this issue for now, as it's just a platform configuration issue, rather than a library issue. But feel free to follow up here on the GPIO mapping.