Я пытаюсь настроить модуль, который будет взаимодействовать с /dev/serial0
на Raspberry Pi B + с Raspian Stretch.Я использовал dtoverlay=pi3-miniuart-bt
в /boot/config.txt
, чтобы восстановить UART0 / ttyAMA0 для GPIO 14 и 15 (именно этого и требует мой HW на основе Raspi).
Я попытался сделать это устройство доступнымк модулю, используя следующие параметры создания контейнера:
{
"HostConfig": {
"PortBindings": {
"1880/tcp": [
{
"HostPort": "1880"
}
]
},
"Privileged": true,
"Devices": [
{
"PathOnHost": "/dev/serial0",
"PathInContainer": "/dev/serial0",
"CgroupPermissions": "rwm"
},
{
"PathOnHost": "/dev/ttyAMA0",
"PathInContainer": "/dev/ttyAMA0",
"CgroupPermissions": "rwm"
},
{
"PathOnHost": "/dev/ttyS0",
"PathInContainer": "/dev/ttyS0",
"CgroupPermissions": "rwm"
}
]
}
}
Я вижу /dev/serial0
при входе в ssh, но не вижу его в работающем модуле:
pi@azure-iot-test:~ $ ls -l /dev/ser*
lrwxrwxrwx 1 root root 7 Sep 24 21:17 /dev/serial0 -> ttyAMA0
lrwxrwxrwx 1 root root 5 Sep 24 21:17 /dev/serial1 -> ttyS0
pi@azure-iot-test:~ $ sudo docker exec hub-nodered ls -l /dev/ser*
ls: /dev/serial0: No such file or directory
ls: /dev/serial1: No such file or directory
Есть идеи?
Продолжение:
Дополнительные вещи Я попробовал следующие идеи, полученные из здесь :
- Добавление
"User": "node-red"
в корень опций создания контейнера - Добавление
"User": "root"
в корень опций создания контейнера - Добавление
"GroupAdd": "dialout"
в "HostConfig": {...}
в создании контейнераОпции
Followup # 2
Хотя я все еще не могу взаимодействовать с /dev/serial0
, я могу взаимодействовать с /dev/ttyAMA0
с использованием следующих опций создания контейнера:
{
"HostConfig": {
"GroupAdd": [
"dialout"
],
"PortBindings": {
"1880/tcp": [
{
"HostPort": "80"
}
]
},
"Devices": [
{
"PathOnHost": "/dev/serial0",
"PathInContainer": "/dev/serial0",
"CgroupPermissions": "rwm"
},
{
"PathOnHost": "/dev/ttyAMA0",
"PathInContainer": "/dev/ttyAMA0",
"CgroupPermissions": "rwm"
}
]
}
}
Примечательные элементы выглядят так:
- Мне не нужно
"Privileged": true
in"HostConfig"
- Мне, кажется, не нужен добавленный "пользователь"
- Мне нужно
"GroupAdd": ["dialout"]
в "HostConfig"
Итак, пока это удовлетворительночто я могу взаимодействовать с последовательным устройством так, как я хотел, кажется странным, что я не могу взаимодействовать с /dev/serial0
, что, похоже, является "рекомендуемым способом" из прочитанного мною чтения.