Устройства I2 C в контейнере docker - PullRequest
0 голосов
/ 13 января 2020

Я использую контейнер docker на Raspberry Pi 3 и пытаюсь прочитать данные с устройства I2 C из контейнера. Когда я использую i2cdetect внутри docker, я вижу устройства. Опция запуска, которую я использую, - sudo docker run --device /dev/i2c-1 --name <name> <image>, но когда я пытаюсь прочитать с устройства I2 C, все проверки CR C завершаются неудачно, как если бы файл /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

Вывод из i2cdetect -y 1 в docker:

     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 -- -- -- -- -- -- --
...