Problems with the Navio2 kernel modules

The kernel module names seem to be “spi-bcm2835” “i2c-dev” “spidev” and a few other modules, but the documentation lists incorrect names on the EMLID site (2708 rather than 2835). After adding modules to boot config.txt file, we were able to modprobe and lsmod SPI modules; but I2C is not showing up anymore. We tried a few RPI utilities like wiringPI and GPIO, but that didn’t help, not listed in /etc/modprobe.d/*blacklist.conf.

We did rpi-udpate and raspi-config, but we get errors about spi_bcm2708 which seems to be the wrong kernel name (not sure why there is an error in raspi-config). Looking at /lib/modules//kernel/drivers/spi and i2c, found names and modules, tried modprobing different modules, i2c devices still not showing up at /dev/i2c, i2cdetect fails. We also tried rebuilding the kernel images, wiped everything and went back to original emlid navio2 image (4.1.6-v7+, had upgraded to 4.1.18-v7+), but it didn’t work.

In the current state, SPI devices show up, but we can’t open them. I2C kernel modules are loaded, but not showing up in /dev; only show up before we load SPI modules and disappear after. The example apps AccelGyroMag returns errors since that sensor is not enabled for MPU and can’t open SPI device for lsm. Barometer doesn’t work after loading spi modules.

Has anyone been able to resolve these issues?

@Al_B

Firstly, could you elaborate on what you are trying to achieve, please?

Secondly, the image did work, didn’t it?

rpi-update is not really applicable to the customized distro we provide. It can break things.

4.1.6-v7+, had upgraded to 4.1.18-v7+

Correct me if I’m wrong but I guess the problem is indeed in the raspi-update tool. The kernel we ship is not the same as the Foundation’s one. The tool on the other hand doesn’t know anything about that and wipes the device tree blobs and kernel we’d been making away.

After adding modules to boot config.txt file

Why? The Device Tree mechanism saves the hustle of configuring these things yourself.

The kernel module names seem to be “spi-bcm2835” “i2c-dev” “spidev” and a few other modules, but the documentation lists incorrect names on the EMLID site (2708 rather than 2835)

Thanks for the information. We’ll fix it right away. But I do not really understand what is the problem you’re trying to solve. So I’m in the dark. Is the upstream driver (spi-bcm2835) is not applicable in any way spi-bcm2708 is?

Either way, you can look into this post which can be of help.

@staroselskiy

We’re basically trying to connect multiple sensors to the Navio2 (see pic below), but we are facing problems with the SPI and I2C buses. Same vehicle configuration works fine with the Navio+ though.

We’ll try again tomorrow with a fresh image and without rpi-udpate and raspi-config, and post back here.