Falconの思うままに

PASCAL好きが、気ままにマニアックなネタを

ラズパイ起動せずから復旧

さて、やらかしました。NodeRedでDHTセンサのピン配置の

設定を間違えたばかりにラズパイフリーズです。

 

簡単にやらかせますね。 NodeRedだけを使って遊んでいる

ライトユーザーじゃ手に負えませんなあ。

 

結局起動してログインする前にNodeRedが起動してハングする

NodeRedが走るので、止めるタイミングがありません。

 

原因が見えているので、手がでない状態です。

 

まあこういう時はシングルユーザーモードに落とすのがセオリですね。

Linux歴30年の私が昔から覚えている常識です。

が最近のLinuxわからんし、ラズパイ上のUbuntuなんでどうするんだ~~

ということでSolaris以来のシングルユーザーモードへの変更方法

を調べます。

容易にcmdline.txtを編集して init=/bin/sh

とする情報が得られます。

これだと思ってやると、なんとカーネルパニックを引き起こします。

いろいろ調べてもこの方法で正しいのですが.....

と詰みになりかけたのですが、海外の情報を調べました。

 

それで正解は

cmdline.txtに

systemd.unit=emergency.target rw

とするのがいいらしい。

rwは再マウントしなくていいので入れときます。

systemd.unit=rescure.target

を試してもどうかとのこと

つまり

init=/bin/sh

は使えないです。

 

非常モードがシングルユーザーモードと同一か知らないですが

Rootのシェルが起動します。

Ctrl+D でもbashが起動するので

systemctl disable nodered

で起動を止めます。これで何とかなります。

 

この情報、レアな情報なので、どなたかの役に立てば幸いです。

Raspi 4B  Ubuntu 20.04.3 LTSです。

 

 

 

 

 

 

 

 

 

 

RPCの勧め

みなさんDelphiでPC間のやり取りはどうしてますか?

 

Socket通信だろ?

はい、まあ正論です。ごりごりやるならこれですね。

 

でもRTC (Real Thin Client)のコンポを使ってみてください。

 

これいいですよ。

用途は、データを相手PCに飛ばすときにRecord(構造体)の

表現のまま飛ばせます。

プロトコル的にはRemote Procedure Callと呼ばれる

ものになります。

あたかも関数でコールして値が返ってくる感覚で

コーディングできます。

裏ではhttpでXMLで送信です。

 

最近のおすすめは構造体にせず

JSONにしてシリアライズ、デシリアライズ

するのが便利です。

 

JSONはテキストなので、まあ文字列型

になるわけですが、その中に構造を作れるので

便利ですね。

 

先日はWindows compact 7用の業務用

端末ソフトの開発をしましたが、

シリアライズが面倒なので返り値は

カンマ区切りという手抜きをしました(笑)

 

プロトコルというのは両者が一致していれば

いいのでなんでもありです。

 

 

 

 

 

 

 

 

 

 

 

音声案内端末を作る

さて、NodeRedでスピーカーをつけて音声案内端末にしようという話です。

 

ラズパイUbuntuCUI環境です。

音声はスピーカー(1000円程度)で電源はUSB端子からとるやつです。

音量はボリューム調整式ですが、大きくしてもホワイトノイズが聞こえないので

うるさくありません。

 

素のラズパイubuntuではそれでALSA関係のツールが入っていないので入れます。

sudo apt-get install libasound2 alsa-utils

これくらいだったかな

aplayとかでみると

カード0 デバイス0 でいいようだ。

 

aplay -Dhw:0,0 sampla.wav

 

でwavファイルの再生で音がでた。

OKだが毎回これではめんどくさい(笑)

 

ということでNodeRedから鳴らしたい。

node-red-contrib-play-soundfile

というノードを入れてください。

wavファイルを指定して鳴らしてくれます。

これだけです!!

 

なのでこれをキックしてやる方法を確立しればいいので

URLでコールするようにhttp-inノードで

URLを作って外部からコールでいいですね。

http://host:1880/VOICE1

という感じで呼びます。

これでどこからでも呼べるのであなたの好き放題となります。

 

実はAlexaにテキストを送ってしゃべらして呼出し

アプリを作っているのですが、もう一台買うと

お金がかかるのでラズパイで音を鳴らすことにしました。

f:id:deimos_falcon:20220116092048p:plain

音声再生

 

こんな感じでAPIコールしてあげます。Amazon Echoへの指令は

シェルスクリプトのコールです。

voiceは単純に2回コールで案内のリピート実現しています。

(ただ2回書くだけですが...)

 

NodeRedばマルチタスクシーケンサ(順序動作装置)

としてとても優秀だと思います。

 

PLCのラダーを書いて改造してもらえるのと同じで

別の人にメンテをしてもらえるのはとてもありがたい。

 

さくっと実用になります。

 

自分も人からコードを見られて勉強になったと

いわれるようになりたいですな。

 

 

 

 

 

 

 

 

 

 

ラズパイでUbuntu

さて、ラズパイでUbuntuの人いますか?

 

ラズパイ3とラズパイ4でUbuntuをいれました。

2台同時起動させてますが、やはり処理速度が

違いますね。

体感できます。

 

まあそれはいいですが、GUIなしで運用です。

それが一番効率がいいからですが、文句はないです。

 

VPNのクライアントにしてますが、安定してます。

外部から(会社から)普通にアクセスできています。

今時はSambaでどうのという人はすくないので

クラウドストレージになりますが、容量を食わないという点では

SambaもVPN上なら有ですね。

今度やろうかな。

 

DBも入れられるし、Sambaも有りで困ることはないですが、

やる気を出すかどうかかなと思っています。

 

のんびりやってます。

 

環境構築で詰まる

NodeRedを入れたいなと思い、

OCI Always Free for ARMでもう手詰まりです。

ラズパイの場合、Gitから持ってきていい感じに入れる

インストールコマンドを唱えるとあっという間に入ります。

 

Armの場合はリソースが豊かなので、Dockerで入れようと

思いました。

 

記事はいろいろあるので、Docker Composeでやろうと

したのですが、YAMLで引っ掛かり、Docker Composeで

エラーがでて挫折です。

 

この辺り、ど素人なので、詰みになってます。

記事は特定の環境で行ってうまくいくので、

自分の環境でアレンジ、適用する力が求められます。

なので、いったん引いて冷静な目で見ることが必要かなと

思います。

 

まあ、たいしたところじゃないんですよね、きっと!!

 

各社クラウド無料枠

さて、いまさらですがCloudを無料で体験したいという人

いますよね?

 

でも課金が怖い~~~~

そうです。怖いです。お遊びで使う分で

請求がきたら、しがないサラリーマンのおやじは

怖くて眠れません(笑)

 

それでも手を出さないと先に進まないので、がんばって設定をするのでした。

 

という訳で体験したクラウドOracle,IBM,Googleです。

Microsoft,Amazonは除外です。

AWSは主流ですが、無料枠がAlways Freeではありませんので除外。

Azureも制限きつめで結局OCIかGCPになるのですが、

軍配はOCIになります。スペックが段違いですので。

 

IBM CloudですがVMが持てないので、アプリケーションサーバーとして

NodeRedを運用できるというところに落ち着きました。

 

ライトアカウントになりますが、NodeRedを立ててあるだけなのですが、

今のところサービス停止になりません。

これは不思議ですが、ありがたく使わせてもらっています。

 

いろいろ試して、完全無料はOCIにおちつきました。

すきなVMを立ち上げて、VPNで接続して継続的に使っています。

 

あまり記事がないですが、まあ手を動かせばできてしまうので

記事にするまでもないのかもしれません。

 

まあ最初はみな苦労しますが、成果は満足なものが得られますので

がんばりましょう。

 

DNSだけは独自ドメインをFreeNOMで取得して、

これだけは1年1度お金を払いますが、これで理想的な

クラウド運用ができています。

(完全無料でもできますが、障害がでました。)

 

素人レベルではこれで十分でしょう。

1.自分だけのVMが欲しい

2.VMは制限なくいじり倒したい

3.費用は極力0円で。

4.自宅サーバーを外部公開したい。

 

ということが実現できています。

インフラは2年かけて納得いく環境を整備しました。

 

これは

OCI Always Free + 自宅Raspi

で実現できますよ。

家では無音サーバーが稼働し、クラウドにも自前サーバーを

持てます。

 

まさに理想な環境です。

現在クラウドは複数サーバーを立て、自宅にはラズパイ

Arduinoで家庭内サーバーを構築、クラウド連携まで

いっています。

 

まさにDIYのPC版ソフトウェアDIYですな。

長いトンネルを通った先の極楽ですが、

知りたい人メールください。

 

相談のります。

 

 

 

 

 

 

 

 

 

 

 

Armサーバーの使い道

OCIのAlways Freeを使って早3年目です。

 

トラブルもなくありがたく使わせていただいています。

これまでJugemでつぶやいていましたが、誰もみないので

はてなに引っ越してみます。

一回WiXにしたが、あれはちょっとビジネスっぽいので

放置にしてあります。

 

さて本題ですが、OCIもAWSに比べるとマイナーですが、

無料枠は太っ腹です。比べればわかるこの違いなのですが、

常時お金をかけられない、趣味の範囲の人はこちらを

お勧めします。

自前のサーバーを1アカウントで複数持っています。

 

これは1アカウントで2サーバーx86タイプを持て、

Armタイプも持てますので、最小3サーバーを完全無料で24時間稼働のサーバーを

持てます。

 

クラウドは課金が怖いイメージがあるので、失敗できないのですが、

もう3年の間無料でやらせてもらっています。

おひとり様サーバーですので、世間からばんばんアクセスが来るものでは

ないですが、まあこの程度なら、いろいろ遊べますよ。

 

ArmサーバーはRAMが24Gという、2度見してしまう

VMのスペックを持てます。

さすがに怖くて恐る恐る稼働しましたが、それでも半年は動いていますよ。

 

格段にスペックがいいので、もっとはやるのではと思いましたが

土地に制限があるみたいですね。(それはそうだ)

一定枠のリソースだけ提供されているような気がします。(確証なし)

大阪リージョンで取りましたが東京は失敗しています。

 

そんな訳で今年もOCIのお世話になります。

もはや構築したインフラは私には欠かせなくなっております。