2019年2月20日水曜日

Linux:OpenRC でフツーのプログラムをバックグラウンドにまわすオプション

command_background=true

こちらより

あと、

pidfile="/xxx/$SVCNAME.pid"




も必要

たどり着くのに3時間以上かかった。長かった...

Linux:OpenRC のスクリプトの書き方

意外と情報が無かったのでメモ

 公式  OpenRC Service Script Writing Guide
AlpineLinux 公式 Writing Init Scripts
gentoo linux 公式(日本語) ハンドブック:X86/ワーキング/Initscripts
 萬由無事覚書 Gentoo Linux (OpenRC) でinitスクリプトを書くには [基本編]

参考:
OpenRC/Baselayout 1 to 2 migration


RPZ+Alpine Linux:WiFi AP になる方法

Raspberry Pi 3 - Configuring it as wireless access point -AP Mode

こちらをベースにして問題なく動いた

Linux:MAC アドレスを知る方法

(今更)Linux で HW(MAC)アドレスを取得する方法
より

> cat `find /sys/devices/ -name eth0`/address

これは助かる、ありがたい

2019年2月17日日曜日

RPZ+Alpine Linux:恐るべき地雷

好きなタイミングで Raspberry Pi の電源を切れるようにするために Alpine Linux を使っている。

Alipine Linux は、os を shutdown せずに電源が切られても SD カードの内容を壊さないために、
 ・OS のディスクとして RAM Disk を使い
 ・RAM Disk の内容はアーカイブを作って SD カードの保存する
ということしている。

このため、開発中は適当なタイミングでアーカイブを更新しなくてはならない。

----
ただ、時々、アーカイブの更新をするとアーカイブが無くなることがある。

  'hostname'apkovl.tar.gz

という名前のアーカイブが SD カード上に作成されるのだが、これがなくなることがある。更新されないだけでなく、古いのも消えている。

この状態で再起動すると、インストール直後の Alpine Linux が立ち上がっていままでの作業が水の泡...

これを防ぐためには、

・こまめなバックアップ
 SD カードは FAT32 でフォーマットしてあるので、Windwos で簡単にバックアップが取れる

・ アーカイブがあることを確認する
 アーカイブファイルは /media/mmcblk0p1/ にあるので、ls -la で存在することと更新時刻を確認する。無かったら、できるまでアーカイブ更新(lbu ci -d) を実行する

----
それどでもうっかりアーカイブを消してしまったら、Windows からファイル復活ソフトを使ってアーカイブファイルを復活させれば OK。

Recuva というソフトを使ったら、無事復活できた。ありがたやありがたや。

----
2019-06-15 追記
 "lbu ci -d" 実行中にアーカイブを構成するファイルに変更があると、アーカイブが作られないことがある(vim を閉じて *.swp が消えるとか)。

 アーカイブ作成中は、一休みして何もしないのが吉。

2019年2月16日土曜日

GitLab へのアクセス環境を作る

 GitHub とか GitLab のリポジトリを使おうとすると、毎回エラく苦労するのだが、幸い今回は小一時間でなんとかなった。

やったことは、

・GitHub からリポジトリをクローンしてきて
・プログラムを修正し、
・それを GitLab に作ったリポジトリに push

 リポジトリを GitHub から GitLab に変える方法
 ・git remote rename origin old-repos で古いリポジトリをリネームして
 ・git remote add origin git@gitlab.com:xxxx/ise-pynmea2.git で新しいリポジトリを追加
 ・.git/config を開いて

>[branch "master"]
>        remote = origin <- ここを old-repos から origin に変更
>        merge = refs/heads/master

 ・~/.ssh に秘密鍵をコピーして、パーミッションを 600 に変更
 ・~/.ssh/config を以下の内容で作成
>Host gitlab gitlab.com
>  HostName gitlab.com
>  IdentityFile ~/.ssh/gitlab_id_rsa <- 秘密鍵
>  User git

 ・ ssh -T gitlab を実行して、エラーが出なければ OK

参考サイト
リポジトリの変更
 git リポジトリの向き先 url を変更する
 こちらを参考にしたが、なぜかうまくいかず、結局 git remote の help 表示を参考にした。
ssh 系
GitHubでssh接続する手順~公開鍵・秘密鍵の生成から~
 鍵のパーミッションについての記述があれば完ぺきだった
SSH認証キーをGitLabに登録・設定手順 覚書
 'ssh -T gitlab' について書いてあればよかった

----
以前は新しいリポジトリを使うために、鍵を作り直すところから始まって半日ぐらいかかっていたことを思えば、リポジトリの切り替えを含めて小一時間で終わって、ブログを残せる気力も残っているのだから、だいぶ進歩した。古い鍵も見つかったし。

そういうことにしておこう。
 














2019年2月12日火曜日

Linux:環境変数関連

何度も同じことをしらべているので、まとめる

環境変数を見る   printenv  

環境変数を設定  export PAGER=less

シェル変数を削除  unset TRASH

ash 起動時に動作するスクリプト  ~/.profile

2019年2月5日火曜日

RPZ+Alpine Linux:SD カードへのアクセス

SD は '/media/mmcblk0p1' なマウントされている

以下を実行すると読み書き可能に

'mount -o remount,rw /dev/mmcblk0p1'

確認方法
'mount | grep "/media\/mmcblk0"' を実行して
'/dev/mmcblk0p1 on /media/mmcblk0p1 type vfat (rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,errors=remount-ro)'
となっていれば書き込み可能



以下を実行すると読み書き禁止に

'mount -o remount,ro /dev/mmcblk0p1'

確認方法
'mount | grep "/media\/mmcblk0"' を実行して
/dev/mmcblk0p1 on /media/mmcblk0p1 type vfat (ro,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,errors=remount-ro)
となっていれば書込み不可

海外メーカに要望を送ってみた

kickstarter 経由でモジュールを買ったメーカーさん

Please send us feedback! We received a lot of good inputs and ideas how to improve simpleRTK2B and everything around it. Don’t hesitate to send your suggestions, we will be happy to read them. We are working on our next launch and all your inputs are very welcome!

Feedback が欲しいと強く言ってきているので、下手な英語で要望を送ることにした(Google 翻訳、万歳!)

ものは F9P というモジュールを使うための Arduino シールド。F9P は UART x 2, USB, I2C, SPI の出力を持っているのに、I2C と SPI が外に出ていない。RaspPiZero とつないでいるのだが、二つつなぎたいときは、RPZ に UART が一つしかないので USB を使うしかないという事態に。これを避けるために I2C, SPI を使えるようにしてほしいと要望を出してみた。

次期バージョンで改善されると良いのだが...


追記:
 要望を送ってから、なんと一時間ほどで返事が来た。board's plug-and-play capability の問題で実現は難しそうだが、検討します!とのこと。スペインの会社だと思ったが、反応が早い!