Accessing SPI in userspace (spidev permission errors)

I was able to fix it.

First of all, something I didn’t mention that I believe is needed is using the SPIDEV0 overlay. So in uEnv.txt I have:

uboot_overlay_addr5=BB-SPIDEV0-00A0.dtbo

Once rebooted, I modprobe’d spidev as Robert suggested. This oneliner checks if spidev module is loaded, and if not, it loads it:

lsmod | grep ^spidev || sudo modprobe spidev || true

Then to fix the permissions:

sudo chgrp gpio /dev/spidev*
sudo chmod 660 /dev/spidev*

Now I can successfully run spidev_test in /opt/source/spidev_test. My SPI0 pins show up like so:

debian@BeagleBone:~$ show-pins | sort | grep spi
P9.17 / spi boot cs               87 fast rx      0 spi 0 cs 0       spi@48030000 (pinmux_bb_spi0_pins)
P9.18 / spi boot out              86 fast rx      0 spi 0 d1 mosi    spi@48030000 (pinmux_bb_spi0_pins)
P9.21 / spi boot in               85 fast rx      0 spi 0 d0 miso    spi@48030000 (pinmux_bb_spi0_pins)
P9.22 / spi boot clk              84 fast rx      0 spi 0 clk        spi@48030000 (pinmux_bb_spi0_pins)
2 Likes