【Raspberry Pi Zero 2 W】bluetooth ヘッドフォン接続不良

Raspberry Pi Zero 2 Wで以前、bluetooth ヘッドフォンを接続していたが、10→11にアップデートしてからは、接続が安定しない。

そういや、10の時に、sap server がどーたらで何か設定を変更した憶えがある。
次のページに解決法が書いてあったので実施。

情報源: Raspberry Pi 4のBluetoothから音を鳴らす呪い | hixの日記 | スラド

確か前にこういう設定をした憶えがあったけど、このブログに記録がねーんだよなあ。

bluetoothd を再起動して、接続テストしたら、切断されず、接続が維持できた。

bluetooth ヘッドフォンの接続をトリガーに、rx7pi の動体検知や、GPSの位置チェックを止めるという処理をしていたが、これで万事OK 🙂

【Raspberry Pi Zero2 W】通信カードで、iijmioに繋がった。

raspberry pi zero2 Wにて、NetworkManager のモバイルブロードバンド設定で iijmio 設定したら、無事、起動して即LTE回線接続するようにできた。

EM7430の通信カードで、povo2.0 のSIMだとダメだけど、iijmio の eSIMを eSIM.me の物理SIMカードに焼いた奴を挿したらいけた。

eSIMだから、月額440円で2GBまでの契約なんだが、もう一枚か……うーん。

eSIM.meのブランクカード余ってるから、もう一枚 eSIM契約でいけるし、今使ってる携帯電話の OPPO Reno7 Aは eSIM対応してるから、eSIM.me に焼かなくてもそれに使えばいいという話もある。

正直、通信速度が128kbpsでも事足りるから、iijmioのスペックは過剰で、povo2.0が使えていれば、丸く収まってたのに、色々と悩むなあ。

【Raspberry Pi Zero 2 W】Rasbian GNU/Linux 10 → 11 へ更新

RX7に車載している raspberry pi zero2 W(以下rx7pi)だが、通信にUSB接続の携帯電話を使っている。

携帯電話のセキュリティ上、必ずロック画面を解除してからでないとUSB接続してくれないので、時折ふと忘れる事があって、車載警報が鳴ったとしてもメール通知できない状態の時がある(笑)

そこで、通信カードに変えようと思った。

EM7430通信カード

これなら、rx7pi 電源投入時に自動で通信を確立できるはず。

ところが、dhcpcd で通信カードを使った設定例が探しても無い。

そこで、NetworkManager のモバイルブロードバンドで設定しようと、rx7piに NetworkManager をインストールしてみた所、dhcpcd とバッティングしてるのか、wi-fi接続毎にIPアドレスが変わって大層やりにくい。

ネットには、raspi-config で、dhcpcd か NetworkManagerのどちらを使うのか切り替えられるという記述を見たが、10 の buster のraspi-config にはそんな項目は無い。

とりあえず、NetworkManager の設定の為に、GUIを復活させてみたが、起動途上の画面は見えても最終的に GUIでも CUIでも「HDMI信号なし」となる。

つまり、rx7piにキーボードとマウスとモニタ繋いで操作ができず、ネットワーク接続できなくなったら、一切何もできなくなるから、迂闊に dhcpcdをアンインストールできない。

これは詰んだな。

後で気付いたが、raspi-config でGUI bootかCUI bootか選べるようになっていて、素人が知ってるLinuxの知識で、

とかやっちゃうと、多分、raspberry pi の設定と食い違いが出て不具合が出るのだろう。

という訳で、raspberry pi OS 11 の最新版を入れる事にする。 🙁

まずは、万が一の為に sdカードのバックアップ

32GBだから長いんだこれが 🙁

そしてバックアップが取れたら、今使ってる Ubuntu にSDカードを焼く環境を作る。

To install on Raspberry Pi OS, type
sudo apt install rpi-imager
in a Terminal window.

情報源: Raspberry Pi OS – Raspberry Pi

とあるので、その通りにする。

SD カード32GBをバックアップしてる間に、Raspberry Pi OS with desktopのイメージをダウンロードしていたので、次の様にして解凍して、OSのタブでカスタムイメージで設定。

しかし、OSのタブ見たら、ダウンロードも自動でしてくれるみたいで、別にダウンロードしなくても良かったが、その分、時間は節約できたから、まあヨシ。

ギアのボタン押したら、SDカードに焼く前に中身をカスタマイズできるようになっていて、今まで業者から買った時に付いてくるSDカードをそのまま使用していたから知らんかった。

pi ユーザー作らないし、結構便利だな。 🙂

焼き上がったので、早速 rx7pi にセットして起動……。
GUIで起動したけど、やたら重いなと思ったら、こいつメモリ500MBしか無かったんだった orz

お、あるね。という事で、NetworkManager を有効化して、デスクトップのWi-Fiアイコンを右クリックして、モバイルブロードバンドを設定……。

うーん、Ubuntu とかだと、「日本」とか選択できるんだが、選択肢が空だし、APN記入してても設定ファイルに記録されないし、完成度が低いぞ?

通信カードテストの為、Windows11 仮想マシンで色々やったが、donedone は接続できても、povo2.0 のSIMは「圏外」となって接続できない。

同じ KDDIの MVNOなのに、povo はダメってのがよく分からんが、楽天モバイルでも、古い携帯電話で使えないってのがあったし、EM7430って結構古いから、ダメなのかもしれんね。

という訳で、通信カード計画は断念 🙁

あと、 CUI起動にして、NetworkManager は、Wi-Fi の設定ファイルで、permissions=user:noizumi;: とかになってると、わしがログインするまでネットワーク接続されないので、permissions= と空にしてやった。

カメラはソケットが壊れたので、motion は入れてないけど、車が移動したら通知する為に、gpsd はインストール。ver.3.22 だったので、野良ビルドしなくて済んだ。 🙂

あと、メール飛ばすのに exim4 入れて、

「スマートホストでメール送信: ローカルメールなし」で設定。

設定した内容は次のファイルに記録される。

そして passwd.client にプロバイダのサーバーの認証情報を記述。

VPNの wireguard は、家のサーバーとのみ接続してたけど、家帰ってきて、家のLANに繋がると、VPNが応答しなくなるので、Kagoya VPSのサーバーをメインとして、家のサーバーと rx7pi はクライアントにした。

これでも、同じ家のLANに接続してるクライアント同士は通信できないのだが、少なくとも、Kagoya VPS経由でやり取り可能だから、一切rx7piと接続できない自体は減るはず。

いやあ、夏季休暇を満喫してるなあ 🙂

【Kagoya VPS】Ubuntu 20.04 LTS → 22.04 LTSへアップグレード

Kagoya VPSで、OSのテンプレートにUbuntu 22.04LTSが追加されているので、新しくインスタンスを起こして、セットアップする事も考えたが、新しいインスタンスだと、IPアドレス変わるだろうし、面倒臭いので、OSアップグレードにした。

sshで入って、次のコマンドを実行。

$ sudo do-release-upgrade

大体、30分も掛からずに\(^o^)/オワタ

しかし、postfix が cron-apt インストール時のおまけでインストールされていた為、アップグレード時に削除されてしまったので、再インストール

【作業記録】cron-aptインストール、postfix設定

これを参考にした。

irc.noizumi.org → プロバイダのメールサーバー でメール投げるので、例によって、サテライトシステム。

まあ、これはそのままで。

リレーホストはプロバイダのサーバーとポートを指定。

普通に、irc.noizumi.org でメールサーバー運用してもいいけど、他のサーバーの運営の経験上、ポート25番や587番を開けておくと、パスワード破りが頻繁にやってくるようになるので、外部からのメールを一切受け付けないって方式の方が楽。

sshにしても、VPN接続してない場合は、publicキー認証だけ有効にしているので、パスワード破りはできないようになっているが、それでも接続してくる奴が多い。

fail2ban で頻繁に認証失敗する奴を ban するようにしたら、1時間に1〜2回に減ったが、それまでは1分に1回とか、それはもうウザい数の接続が来ていた。

・postfixの設定編集

Xサーバーのホスト名だけど、TLS認証する場合、SSL証明書のホスト名じゃないとエラーになるので、noizumi.org では無く、sv13449.xserver.jp という正式名称を指定する。

プロバイダのメールアカウントの認証を通す為に末尾に設定を追加。

・中間証明書の取得

TLS接続に中間証明書が無いとエラーになる事があるので、例によって、goddadyから頂いて /etc/postfix/cert ディレクトリに設置する。

・パスワード認証ファイルの用意

postmap を実行すると、/etc/postfix/smtp_sasl_password.db ができる。

・postfixの再起動

・テストメール送信

ちゃんと届いた。

・TLS用SSL証明書指定

別に外部からメール投げる訳でも無いので、この設定は要らんのだけど、irc.noizumi.org はSSLの証明書を取ってるので、指定だけはしておく。

今の所、ircサーバーも、softether-vpnserver も fail2ban も問題なく動いているようである。

Kagoya VPSは、1 Core、 1GBメモリ、25GB SSDで、550円/月だけど、IRCとVPN動かすなら、これで充分なスペックだな。

NTT docomoから抜ける為に、mopera U からびわこインターネットへ鞍替えしようと考えているが、IPv6が使えるクロスパスの場合、ユーザーに割り当てられるのがグローバルIPじゃないので、外から家のマシンに直接繋げない。

SoftEther で Kagoya VPSに仮想HUBを接続してるので、クロスパスにした場合でも、Kagoya VPSの仮想HUBに繋いだら、家のマシンへプライベートアドレスで繋げるようになるから、契約しといて良かったな 🙂

EM7430通信カード

ノートPCのOneMix3 用にEM7430 M.2(技適あり)をaliexpress で調達していたのだが、結局、OneMix3 は本体にSIMスロットが付いて無いので、SIMスロットを別途調達して半田付けするとか凄く面倒だったので、放置していた。

OneMix3はキーボードがイカれていて、起動すると、押して無いキーの文字が連打されるという感じで、実質、ジャンクと化している。

EM7430は一回も使ってなくて、車載のRaspberry Pi Zero 2W に接続したら、今やってる携帯電話接続よりは電気喰わないんじゃ無かろうか? と思った。

※商品画像紹介にアフィリエイト使ってます。

で、Amazon で、「M.2-USB 3.0アダプター M2ネジ付きプッシュコネクター デュアルSIMカードスロットコンピューター用ドライバー3G / 4G / 5Gモジュール」なんてのが売っていて、デュアルSIMのスロット付きだったので、買ってPCへ接続してみた。

ちなみに、EM7430の通信カードと、それに接続するLTEアンテナを事前に調達しておいた。
最初、アンテナを繋がずに、「繋がらねえ!」とか言ってたのは秘密だ 😀

先に、Windows11 の仮想マシンに繋ぐと、あっさりとピクトのモバイル接続設定が出てきて、簡単に繋がった。

そして、Ubuntu 20.04 へ繋いでみると、

donedone のAPN設定のページに書かれている APN: biglobe.jp と設定したら、あっさり繋がった。

wwan0 つーデバイスになるのね。

ちょっと失敗したなと思ったのが、この手の製品って Windows のドライバでハードウェアの初期化する事を前提にしている場合があって、Windowsを持ってない人は Linux でいくらやっても使えないという可能性があるという事。

まあ、人柱になれんですまんけど、とりあえず、わしの環境だと、Windows があるので、EM7430のカードは Linux で使えるので、問題なし。 🙂

しかし、 GUIで設定できるらしいというのは分かっていたが、Raspberry Pi Zero 2Wは、CUI環境なので、どうやって設定すんのかよく分からんというのが問題だな。

【Raspberry Pi Zero 2 W】u-centerでGN803GのGNSS設定

前の投稿でGALILEOが補足されないと書いていたが、Windows 10環境で、u-centerで見た時に、GALILEOがenableになってなかったってのがある。

確認の為に、再び u-center で見てみると……

やっぱりGALILEOが有効じゃない。

このモジュールは、GLONASS か Beidou の排他選択が可能なので、GALILEO、Beidouを有効にして、GLONASS を無効にした。

あと、QZSS の L1S 信号にチェックが入ってなかったので、入れた。
これで、精度上がるのかな?

Receiver > Action > Save config で保存して、車載のRaspberri Pi Zero 2 Wに接続してみた。

GPがGPS、QZがQZSS,GAがGALILEO、BDがBeidouね。

衛星捕捉数が増えて、28個の衛星を使ってるな。よしよし。
しかし、初期状態で、GALILEO無効の場合もあるのか。油断ならないな。

【Raspberry Pi Zero 2 W】gpsd-3.24入れた。

GPS補足状況を確認しようと思ったので、取り敢えず、2ウインドウ表示して比較。

右がRaspberry Pi Zero 2 W(以下rx7pi)のGPSで、左が、ホームサーバーのRaspberry Pi 4のGPS。

GPSは、TOPGNSS GN803Gという製品で、2つ共同じなのだが、車載のrx7pi の方は、PRN194〜196のQZSSと、PRN300番台のGALILEOが表示されてない。

Ubuntu 20.04の gpsd-3.21 だと、QZSSが表示されているのは確認できているので、rasbian の gpsd-3.17だと対応していない疑惑。

Raspberry Pi 4の方は野良ビルドで、gpsd-3.24 を入れてあるので、rx7pi の方にも入れてやろう。

Building GPSD from source」を参考にして、

If ‘scons’ fails, it is possible that your target system has moved to Python 3 and removed the program ‘python’. Python.org says that if you have an installed Python, there should be a program in your path called ‘python’. This is specified in PEP 394. This rule is not always followed. You can work around this by linking python3 to python like this

python3 のシンボリックリンクを作成しろとの事だが、要はPATHが通ってる所なら良いので次のようにする。

なぜか、 ln -s /usr/bin/python3 /home/noizumi/bin/python で作成できなかったので、ちょっとまだるっこしい事をやっている。

必要な開発用パッケージを入れるけど、gtk3 とか入れるとアホみたいにパッケージが入っちゃうし、gpsd と gpsmon、 cgps のテキストベースで使えれば良いので、次のものを入れた。

python のライブラリのPATHは存在しないので、シンボリックリンクを張っておく。

そしてインストール

gpsd のビルドのページには、sudo scons udev-install とやれって書いてあるけど、既に gpsd-3.17のパッケージ入ってるし、そのままにしたいので、 install にしている。

一応、念の為、ちゃんと入ってるか確認。

既定は prefix=/usr/local なので、全てそこにインストールされている。

ExecStartのPATHを変更。

GALILEOは補足できてないけど、QZSSが補足できるようになった。

やっぱ、gpsd-3.17はQZSSに対応してなかったんだな。

【Raspberry Pi Zero 2 W】駐車中カメラ調整した。

これは結構いいな。

 

動体検知すると、こんな感じ。
車内監視用だから、外の景色は余り見えなくていい。

今、HDMIケーブルからカメラまでのケーブルが短くて、HDMIケーブルが動いたら、カメラスタンドが動いてしまう。

カメラケーブル長くして、HDMIケーブル繋いでる基盤とカメラにちょっと遊びを持たせるのと、HDMIケーブルを固定しよう。

【Raspberry Pi Zero 2 W】カメラ上向き

天井しか映ってねーし(笑)
HDMIケーブルが重いから、車の振動で、カメラスタンドが動いちゃうんだな。

空模様で動体検知しまくっちゃうけど、まだ、こっちの方がマシだな。

HDMIケーブル固定するか。

【Raspberry Pi Zero 2 W】カメラケーブル延長

Arducam CSI HDMIケーブル拡張モジュール(2pk) – RobotShop

これの続き。

ちょいとピンぼけだが(笑)、普通にZero用カメラケーブルで接続したら、「使えますし、動作する事を確認しました」(笑)。

このHDMIケーブルは、多分、Raspberry Pi 3のセット買った時に付いてきたヤツだけど、やたら太いな(笑)

motion の映像も全く問題無い。

という事で、

また接続端子のピン数が少ないRaspberry Pi Zero系統のモデルでは使えません。実際にRaspberry Pi Zero WHでは動作しないことを確認しました。

情報源: Raspberry PiのカメラモジュールをHDMIケーブルで接続する | ガジェライブ!

ここに書かれてるのは、製品付属のケーブルだと、Zero系本体のピン数が少なくて物理的に接続できないから、「使えません」だし、「動作しないことを確認しました。」なんだろうな。

しかし、Zero系用カメラケーブルを使うという、物理的接続する方法を思い付けなかったんだから、接続できない事を確認したのみで、動作しない事は確認できてないよなあ。

フラットケーブルをHDMIケーブルの電線に置き換えてるだけだから、ピン数の合う部分で物理的に接続さえできれば、Raspberry Piの本体要因で、動かないなんて事は有り得ねえだろうに。

Zero系のケーブル延長しようと思ってる奴が、これ、見て買うのやめたら、店にとって、えらい風評被害だわ。事実、わしも諦めかけたけど、書いてる事がおかしいから、実際に買って、自分の仮説を確かめようと思ったんだな。

これで、車載した時のカメラ映像を上に上げられるので、motion で監視状態の時に、空ばっかり写ってるのが、フロントガラスからの景色にできるな。 🙂