首页 > 解决方案 > docker 容器上的 I2C 设备

问题描述

我在 Raspberry Pi 3 上运行一个 docker 容器,我试图从容器中的 I2C 设备中读取数据。当我i2cdetect在 docker 内部使用时,我可以看到这些设备。我使用的运行选项是sudo docker run --device /dev/i2c-1 --name <name> <image>,但是当我尝试从 I2C 设备读取时,所有 CRC 检查都失败,就好像文件/dev/i2c-1没有正确安装一样。看起来该目录刚刚在运行时被复制并且没有绑定。有没有其他人经历过这个?

我也尝试了该--privileged选项并绑定文件夹-v -v /dev:/dev

我不能i2cget用来测试设备,因为它使用 16 位寻址

我将 WiringPi 库用于 C https://github.com/WiringPi/WiringPi

在运行时,我收到以下消息:

backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin
irc:x:39:39:ircd:/var/run/ircd:/usr/sbin/nologin
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin
nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
systemd-timesync:x:100:103:systemd Time Synchronization,,,:/run/systemd:/bin/false
systemd-network:x:101:104:systemd Network Management,,,:/run/systemd/netif:/bin/false
systemd-resolve:x:102:105:systemd Resolver,,,:/run/systemd/resolve:/bin/false
systemd-bus-proxy:x:103:106:systemd Bus Proxy,,,:/run/systemd:/bin/false
_apt:x:104:65534::/nonexistent:/bin/false

docker中的输出i2cdetect -y 1

     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- 68 -- -- -- -- -- -- -- 
70: 70 -- -- -- -- -- -- --

标签: dockerraspberry-pii2c

解决方案


推荐阅读