我使用 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