0

在我的 qt 程序中,我包含了 i2c/smbus 的标头(就像我为其他项目所做的那样,也使用 yocto 但不同的 SoC 供应商)。

内核 4.14.24

extern "C"
{
#include <linux/i2c.h>
#include <linux/i2c-dev.h>
#include <i2c/smbus.h>       << FAIL: i2c/smbus.h: No such file or directory
#include <fcntl.h>
#include <sys/ioctl.h>
}

在 conf/local.conf 文件中,我添加了 i2c-tools

IMAGE_INSTALL_append = " i2c-tools "

构建工具链并检查 i2c/smbus.h 的 rootfs。没运气。
i2cdetect/get/set 有效(在添加 i2c-tools 之前也做过)。

Functionalities implemented by /dev/i2c-0:
I2C                              yes
SMBus Quick Command              yes
SMBus Send Byte                  yes
SMBus Receive Byte               yes
SMBus Write Byte                 yes
SMBus Read Byte                  yes
SMBus Write Word                 yes
SMBus Read Word                  yes
SMBus Process Call               yes
SMBus Block Write                yes
SMBus Block Read                 yes
SMBus Block Process Call         no
SMBus PEC                        yes
I2C Block Write                  yes
I2C Block Read                   yes

我在 rootfs 中看不到 smbus.h:/usr/include/i2c/ 有一个 i2c-core-smbus.c,其中功能 i2c_smbus_... ... () 位于但没有 h 文件。

编辑:添加内核版本。

4

0 回答 0