目录
前言
一、问题描述
二、问题解决
总结
前言
在使用 NVIDIA Jetson 系列开发板时,可能会遇到启动时的错误提示,例如 eeprom: Failed to read I2C slave device
。这个错误通常出现在设备启动日志中,可能会导致设备无法正常启动或功能受限。本文将探讨该错误的原因,并提供一些解决方法。
一、问题描述
在 NVIDIA Jetson 设备启动过程中,系统内核会尝试读取连接在 I2C 总线上的 EEPROM 设备,以获取板载配置信息。如果系统未能成功读取 EEPROM,则会出现如下错误消息:
eeprom: Failed to read I2C slave device
这通常意味着 I2C 总线上的 EEPROM 设备未能正确响应读取请求,可能导致启动过程中的一些硬件初始化失败。
二、问题解决
由于我使用的是官方AGX-Orin(32GB)模组套件,SDK板卡配置是jetson-agx-orin-devkit,由于模组本身没有带eeprom设备,所以怀疑是设备树哪个地方开启了eeprom,通过在sdk目录下搜索eeprom关键字眼,得到如下地方有这个定义:
把Linux_for_Tegra/bootloader目录下的tegra234-mb2-bct-common.dtsi设备树文件cvb_eeprom_read_size修改为0即可:
- cvb_eeprom_read_size = <0x100>
+ cvb_eeprom_read_size = <0x0>
nvidia官方说明如下:
MB2 如果定制载板没有 EEPROM,则需要更改 BCT 中的 BCT 配置。
-
修改不带EEPROM的载板
EEPROM是定制载板的可选组件。 如果载板设计没有EEPROM,则进行以下修改 在 MB2 BCT 文件上需要:Linux_for_Tegra/bootloader/tegra234-mb2-bct-common.dtsi
重新烧录板卡即可正常启动。
总结
"eeprom: Failed to read I2C slave device" 错误在 NVIDIA Jetson 开发板中较为常见,但通常可以通过硬件检查、设备树配置调整以及固件更新等方法解决。通过本文提供的步骤和建议,您应该能够有效地排查和解决这一问题,从而确保开发板能够正常启动和运行。
如果问题依然无法解决,建议查阅 NVIDIA 的官方文档,或者在相关社区中寻求支持。希望这篇教程对您有所帮助!