IIC配置及实验总结

一、IIC配置
1、IIC设备查询命令 # ls /sys/bus/i2c/devices/
2、怎么和原理图及外部设备对应

二、I2c注册
1、make menuconfig —>Device Drivers —> Input device support —> Touchscreens —> FT5X0X based touchscreens (去掉)
2、平台文件中查看:vim arch/arm/mach-exynos/mach-itop4412.c
添加I2C设备:i2c_board_info 添加 I2C_BOARD_INFO(“ft5x0x_ts”, 0x70>>1),
查看i2c驱动: ls /sys/bus/i2c/devices/
查看: cat /sys/bus/i2c/devices/3-0038/name 结果是:ft5x0x_ts

三、i2c 驱动注册和卸载
1、i2c设备驱动初始化完成 —> 进入probe函数

<think>嗯,用户现在需要解决在CentOS系统获取内存SPD信息的问题。用户之前提到的引用内容好像是关于USB设备的VID和PID修改,虽然内容相关但主要讲的是USB设备权限和编译,看起来是给另一个问题的解决方案。用户特意说明这个引用不是真实需求,重点还是上次的问题:如何在CentOS替代Ubuntu的那条命令。用户明显是个有一定Linux经验的技术人员,在Ubuntu环境下用过sysfs路径直接读取EEPROM,但可能遇到CentOS内核模块或驱动支持不足的情况。ta的深层需求应该是获取原始SPD数据用于分析,而非单纯看型号参数(否则用dmidecode就够了)。查了当前系统状况:CentOS默认屏蔽了eeprom读写接口,直接访问/sys路径会失败。这个问题涉及到三个层面:硬件层面(i2c总线支持)、内核层面(eeprom驱动加载)、用户空间工具。dmidecode只能看到解析结果,lshw依赖dmidecode,都拿不到原始数据。用户提到的Ubuntu命令中"0-0053"是i2c总线地址,这个数字在其他主板可能变化(用户可能需要扫描总线)。同时要注意SPD标准允许存在多块内存,需要分别读取。解决方案路线:1.优先尝试非侵入式方法:检查i2c-tools是否存在(用户可能没装),用i2cdetect扫描总线找SPD地址2.驱动层处理:检查eeprom内核模块情况,CentOS可能需要手动加载3.硬件差异:部分服务器主板会锁死i2c访问,消费级主板机会更大4.极端方案:内存厂商工具如DDR4SPDDecoder,但可能需要Windows环境需要提醒用户权限问题(必须root),以及物理风险(设备烧毁概率虽小但存在)。考虑提供安全范例:先扫描总线确认地址再读取,避免误操作。用户没有说明是物理服务器还是个人PC,这个会影响解决方案的选择,下次追问时可以注意这点。</think> 在CentOS中获取内存SPD(S​​erial Presence Detect)信息可通过以下替代方案实现: ### 方法1: 使用i2c-tools工具链 ```bash # 安装工具 sudo yum install i2c-tools # 检测I2C总线 (需root权限) sudo i2cdetect -l # 查找SPD地址 (常见地址范围50-57) sudo i2cdetect -y <bus_num> # 替换<bus_num>为实际总线号 # 读取SPD数据 (以总线0地址0x50为例) sudo i2cdump -y -f <bus_num> 0x50 # 十六进制格式查看 sudo i2cget -y <bus_num> 0x50 0x00 # 读取单个字节 ``` ### 方法2: 通过设备直通访问 ```bash # 加载eeprom驱动 sudo modprobe eeprom # 查找SPD设备路径 ls /sys/bus/i2c/devices/ | grep "spd\|eeprom" # 读取原始数据 (设备路径因主板而异) sudo dd if=/sys/bus/i2c/devices/<bus>-00<address>/eeprom bs=256 count=1 | xxd -g 1 # 示例:dd if=/sys/bus/i2c/devices/0-0050/eeprom bs=1 count=256 | xxd -g 1 ``` ### 方法3: 使用解析工具 1. **安装解码工具**: ```bash sudo yum install dmidecode ``` 2. **提取SPD信息**: ```bash sudo dmidecode -t 17 ``` 输出示例: ```markdown Handle 0x1100, DMI type 17, 40 bytes Memory Device Manufacturer: Samsung Serial Number: 1234ABCD Part Number: M471A1G44AB0-CWE SPD Revision: 1.1 Speed: 3200 MT/s Voltaje: 1.2 V ``` ### 权限处理 若遇权限问题: ```bash # 添加用户到i2c组 sudo usermod -aG i2c $USER # 临时权限覆盖 (慎用) sudo chmod a+r /sys/bus/i2c/devices/*/eeprom ``` > **注意事项**: > 1. 服务器主板常通过BMC管理SPD数据,物理访问可能受限 > 2. 不同主板芯片组的I2C总线映射不同,需通过`dmesg | grep i2c`核实路径 > 3. 直接操作I2C总线可能导致系统不稳定,生产环境建议用带外管理[^1]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值