ks0319
2024年4月1日 10時53分
Armadillo IoT A6Eを用いてコンテナ内のNode-RED上でBluetoothを使用しようとしています。
このプロセスの一環として、以下のブログを参考にコンテナ上でBluetoothを動作させることまでは確認できました。
https://armadillo.atmark-techno.com/blog/10899/17582
docker.io/debian:latestイメージをベースにしていますが、
nobleライブラリの要件を満たすため、特定の権限設定に苦労しています。
具体的には、setcap cap_net_raw+eip $(eval readlink -f \which node`)` コマンドを実行して、
Node.jsに必要な権限を付与しようとした際、権限エラーによりNode.jsが起動しなくなる問題に直面しています。
そこで、Armadilloで使用できるsudo権限のあるコンテナがあるかどうか、
またはこの問題に対処するための推奨されるアプローチがあれば教えていただけますか?
※apt-get install sudoを試みましたが、問題は解決しませんでした。
以下は私が使用しているコンテナの設定です-------------
armadillo:~# cat /etc/atmark/containers/mynodered.conf
set_image localhost/mynodered:latest
add_devices /dev/ttyUSB*
add_devices /dev/ttymxc*
add_devices /dev/gpiochip5
add_devices /dev/gpiochip6
add_volumes /var/app/volumes:/root/volumes
#add_volumes /etc/localtime:/etc/localtime:ro
add_ports 1880:1880
set_network host
add_args --cap-add=NET_ADMIN
set_command node-red
set_autostart no
#add_args -it
#set_command /bin/bash
コメント
ks0319
at_shinya.koga
2024年4月1日 14時09分
アットマークテクノの古賀です。
ks0319さん:
>Armadillo IoT A6Eを用いてコンテナ内のNode-RED上でBluetoothを使用しようとしています。
>このプロセスの一環として、以下のブログを参考にコンテナ上でBluetoothを動作させることまでは確認できました。
>https://armadillo.atmark-techno.com/blog/10899/17582
>
>docker.io/debian:latestイメージをベースにしていますが、
>nobleライブラリの要件を満たすため、特定の権限設定に苦労しています。
>具体的には、setcap cap_net_raw+eip $(eval readlink -f \which node`)` コマンドを実行して、
>Node.jsに必要な権限を付与しようとした際、権限エラーによりNode.jsが起動しなくなる問題に直面しています。
Bluetooth をコンテナから使用できるようにして、そのコンテナで Node-RED を動かそうとしていらっしゃるのですね。
そのことと、上記のコマンドからすると、「node ライブラリ」というのは、node-red-contrib-beacon-scanner だろうかと思いましたが、合っているでしょうか?
https://flows.nodered.org/node/node-red-contrib-beacon-scanner
# 後述する Howto を作成する際に、node-red-contrib-beacon-scanner も評価してみたことがあり、それで、上のコマンドに見覚えがありました。
>以下は私が使用しているコンテナの設定です-------------
以下の mynodered.conf で、次の二ヵ所を変更してみてください。
>armadillo:~# cat /etc/atmark/containers/mynodered.conf
…
>add_ports 1880:1880
>set_network host
1.) add_ports の行を削除またはコメントアウトしてください。
add_ports による、コンテナのネットワークインタフェースに対する設定と、set_network host による、コンテナのネットワークインタフェースをホスト OS と共通にする設定は、共存できません。この二行が両方あると、エラーします。
>add_args --cap-add=NET_ADMIN
--cap-add で与える権限として、NET_ADMIN に加えて NET_RAW も指定してみてください:
以下、余談です。
お使いになろうとしていらっしゃるノードが、Node-RED での BLE 受信用のものである場合、以下の Howto で提供しているインストールディスクイメージや SWU イメージに収録した Noxe-RED フローをご覧になって頂くと、もしかすると参考になるところがあるかも知れません:
Armadillo-IoT A6E: 漏水監視システムをNode-REDとソラコムプラットフォームで構築する
https://armadillo.atmark-techno.com/howto/iotg_a6e-water-leakage-sense
なお、この Howto で作成した Node-RED フローでは、node-red-contrib-beacon-scanner とは違うノード(node-red-contrib-blebeacon-scanner)を使用しています。
違うノードではありますが、どちらも @abandonware/noble を利用しており、使い勝手は大きく変わらないと思います。
以上、参考になりましたら幸いです。