Buildroot - 缺少 i2c 内核模块

Buildroot - 缺少 i2c 内核模块

我使用 Buildroot 构建了一个最小的操作系统。在使用实用程序的配置步骤中,menuconfig我指定安装 I2C 工具。选项是

Target Package -> Hardware handling -> i2c-tools

但是当我加载相应的模块时,出现以下错误:

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

此外,文件中的列表modules.dep是空的。

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

我可能错过了一些重要的事情。

我是否必须手动将内核模块从 Buildroot 安装文件夹复制到目标系统?如何使 i2c 工具正常工作?

答案1

据我了解,Target Package -> Hardware handling -> i2c-tools指的是用户空间 i2c 实用程序。

你缺少的是内核空间 i2c 模块,你需要将它们添加到make linux-menuconfig.

答案2

按照Mali的建议,我们需要启用内核对SPI和I2C传输协议的支持。我是单独编译内核的,但我们可以从运行的 Buildroot 文件夹中进行make linux-menuconfig

在内核3.8.13配置过程中,添加:

linux-3.8.13$ make menuconfig    
  • 设备驱动程序菜单并检查I2C支持按“Y”。

  • 进入I2C菜单,进入I2C设备接口并按 '中号' 用于模块支持。

  • 输入I2C 硬件总线支持菜单并按“M”BCM2708 平衡计分卡

  • 检查SPI支持按“Y”并进入子菜单

  • 在附近按“M”BCM2708 SPI 控制器驱动程序

交叉编译它,完成后你可以加载模块

modprobe i2c-dev
modprobe i2c-bcm2708
modprobe spi-bcm2708

相关内容