土地形状スキャン019 [FriendlyCore編]GNSS測位アプリの用意と常駐化

造成

FriendlyCore環境にてNanoPiNEOとGNSS測位ボードと接続。

測位データ取得を常駐アプリ化するための設定を行う。

SimpleRTK2Bとの接続

接続:

USB2.0 Conn(NanoPi NEO) – J1_MicroUSB(simpleRTK2B)

認識確認

$ lsusb

Bus 008 Device 003: ID 1546:01a9 U-Blox AG

シリアルポート名の確認

$ ls /dev/ | grep -e ttyUSB -e ttyACM

ttyACM0

※シリアルポート名はttyACM0であることを確認

str2strの実行

$ sudo str2str -in serial://ttyACM0:115200#ubx -out /home/share/`date +%Y%m%d%H%M%S`.ubx

armbianの時と違い、sudoが無いとエラー発生

ttyACM0へのアクセスにroot権限必要だがchmodしても起動やUSB再接続のたびに戻ってしまう。

対処方法

$ sudo vi /lib/udev/rules.d/50-udev-default.rules

viで下記修正

(修正前)KERNEL==”tty[A-Z]*[0-9]|pppox[0-9]*|ircomm[0-9]*|noz[0-9]*|rfcomm[0-9]*”, GROUP=”dialout”

(修正前)KERNEL==”tty[A-Z]*[0-9]|pppox[0-9]*|ircomm[0-9]*|noz[0-9]*|rfcomm[0-9]*”, GROUP=”dialout”, MODE=”0666″

この処理により再起動後も下記コマンドで正常動作を確認

$ str2str -in serial://ttyACM0:115200#ubx -out /home/share/`date +%Y%m%d%H%M%S`.ubx

str2strの常駐プログラム化

シェルスクリプト新規作成

$ sudo vi /usr/bin/str2str.sh

内容:

#!/bin/bash

str2str -in serial://ttyACM0:115200#ubx -out /home/share/`date +%Y%m%d%H%M%S`.ubx

シェルスクリプトファイルの実行権限付与

$ sudo chmod +x /usr/bin/str2str.sh

ユニットファイル作成

FriendlyCore環境ではsystemdをそのまま実行すると何故か認証を求められ、何を入力しても先へ進めない状態に。

ユーザー権限でサービス実行を行うための設定を行う。

ユニットファイルを置くフォルダを作成

$ mkdir -p ~/.config/systemd/user/

ユニットファイルの新規作成

$ sudo vi ~/.config/systemd/user/str2str.service

内容:

[Unit]

Description=RTKLIB str2str Service

[Service]

ExecStart=/usr/bin/str2str.sh

Restart=no

Type=simple

[Install]

WantedBy=multi-user.target

※注:ExecStartは絶対パスで指定しないとstart実行時にエラーとなる。

常駐開始

$ systemctl –user start str2str.service

常駐終了

$ systemctl –user stop str2str.service

サービス状態確認

$ systemctl –user status str2str.service

※上記の「–user」はハイフン2つ(表示が何故かハイフン1つに変換されてしまう)

上記コマンドで無事に共有フォルダに測位データが出力されていることを確認できた。

タイトルとURLをコピーしました