我已经重新编译了Linux Yocto的新版本,因为我需要一些其他的python库。仅现在才识别出所连接的I2C摄像机模块(VM-009 phyTEC)。驱动程序位于板上(phyBOARD-Nunki),但似乎未连接至设备。如何将该I2C设备与相应的驱动程序一起加载/连接/关联?
我当前正在使用的phyBOARD带有完整的嵌入式Linux映像,其中包括用于测试不同功能的示例代码。这些示例包括一些gstreamer示例,可用于测试相机连接/输出。使用此代码,图像实际上能够与相机模块通信。这表明该问题很可能与硬件无关。
因此,我想应该将工作映像与自制的非工作Linux映像进行比较,看看是否可以找到一些区别。首先,我在config-expansion中添加了新行,该行应启用与摄像头模块连接的端口(并行端口0):
of_camera_selection -a 0x48 -p 0 -b phyCAM-S+ VM-009
这两个Linux映像都必须手动更改。所提供的Linux映像实际上确认此代码正确,因为摄像机模块(VM-009)使用地址0x48注册为I2C设备。
下一步是确认是否存在正确的驱动程序。该相机模块使用mt9m111驱动程序。该驱动程序实际上可以在/ sys / bus / i2c / drivers /下找到,因此该驱动程序已经存在并可以使用(我假设)。
在/ sys / bus / i2c / devices /中可以找到I2C总线(0到2)。我尝试通过在./devices/i2c-0中调用new_device将摄像头模块添加为I2C设备:
new_device 0-0048 0x48
我使用了与初始Linux映像相同的命名约定(0-0048)。实际上,这会将一个名为0-0048的新设备添加到i2c-0 bank中。这将为0-0048设备启动一些新功能,包括绑定。我认为必须使用此命令将驱动程序绑定到设备。
我尝试使用以下命令:
bind 0-0048
或
bind 0-0048 0x48
但是它们都不起作用,并返回以下错误:
readline: 0-0048: no key sequence terminator
或
readline: 0x48: no key sequence terminator
我还尝试在驱动程序位置(./drivers/mt9m111/)中使用绑定功能,但这导致了与以前相同的错误。
我已经使用i2cdetect来检测相机设备。但是没有找到使用0x48作为其地址的设备,它仅在该地址上显示“-”。
自然,我已经进行了大量的google搜索,并且大多数都引用“设备树”。这可能是一个合适的解决方案。但是我找不到这棵树,也无法使用命令调用它。 Yocto的可用命令似乎非常有限,并且肯定没有帮助。
有人有这个任务/问题的经验吗?
预先感谢:)