Laravel Eloquent: повторное использование модели & amp; сбор ресурсов

На хосте Linux есть три возможных способа получить доступ к контактам GPIO из контейнера Docker.

1. Запуск Docker с опцией «--privileged»

Запуск такого контейнера даст контейнеру полный доступ к устройствам хоста, включая GPIO:

$ docker run --privileged -d whatever

Проверьте Документация Docker по этой опции . Это может быть не лучший выбор в зависимости от того, насколько жесткими ваши требования безопасности.

2. Добавление устройства / dev / gpiomem

Вместо того, чтобы отображать все устройства хоста в контейнере, вы можете быть конкретным и только показывать устройство / dev / gpiomem в контейнер во время выполнения. Имейте в виду, что этому устройству требуется поддержка драйверов ядра в дистрибутиве Linux хоста. Последние выпуски Raspbian должны иметь это. Ваш пробег с другими распределениями может отличаться.

$ docker run --device /dev/gpiomem -d whatever

3. Использование файловой системы sysfs на хосте

GPIO Pi представлен в файловой системе хоста под / sys / class / gpio. Доступ к ним можно получить с помощью прав пользователя через виртуальные файлы в этой файловой системе. Используйте тома Docker, чтобы выставить это в свой контейнер:

$ docker run -v /sys:/sys -d whatever

Учтите, что использование sysfs для GPIO, вероятно, будет медленнее, чем подход к устройству.

Библиотеки GPIO

Какой из этих трех подходов соответствует вашим потребностям, также будет зависеть от библиотек, которые вы используете при доступе к GPIO. Не все библиотеки поддерживают все три этих параметра.

0
задан M. Ko 16 January 2019 в 08:38
поделиться