Buildroot - missing i2c kernel modules

7,194

Solution 1

From what I understand, Target Package -> Hardware handling -> i2c-tools refers to user space i2c utilities.

What you miss is kernel space i2c modules, you need to add them in make linux-menuconfig.

Solution 2

As suggested by Mali, we need to enable the kernel support for SPI and I2C transmission protocol. I did it compiling the kernel separately but we can do it from the Buildroot folder runnning make linux-menuconfig

During the kernel 3.8.13 configuration, add:

linux-3.8.13$ make menuconfig    
  • Go to Device Drivers menu and check the I2C support pressing ‘Y’.

  • Enter the I2C menu, go to I2C device interface and Press ‘M’ for module support.

  • Enter the I2C Hardware Bus support menu and press ‘M’ BCM2708 BSC

  • Check the SPI support pressing ‘Y’ and enter the sub menu

  • Press ‘M’ near the BCM2708 SPI controller driver

Cross compile it and once done you can load the modules with

modprobe i2c-dev
modprobe i2c-bcm2708
modprobe spi-bcm2708
Share:
7,194

Related videos on Youtube

UserK
Author by

UserK

Updated on September 18, 2022

Comments

  • UserK
    UserK over 1 year

    I've used Buildroot to build a minimal operative system. During the configuration step with the menuconfig utility I specified to install I2C tools. The option was is

    Target Package -> Hardware handling -> i2c-tools
    

    But when I load the corresponding module I get the following error:

    $sudo modprobe i2c-dev
    modprobe: module i2c-dev not found in modules.dep
    

    Furthermore, the list in the modules.dep file is empty.

    $ cat /lib/modules/$(uname -r)/modules.dep
    $
    

    I have probably missed something important.

    Do I have to manually copy the kernel modules from the Buildroot installation folder to the target system? How to make the i2c tools working?