投稿

ラベル(Linux)が付いた投稿を表示しています

MQTTでIoT通信(4)受け取ったのデータでmunin プラグイン

 さてMQTTで受け取ったデータをmuninでグラフ化するためのプラグイン これでつまずいて1日パーにした。「 MQTTでIoT通信(3)受け取ったのデータのファイル保存 プログラムをサービスとして起動する 」2026/1/03です。muni-nodeから/tmpのファイルが読み込めなかった。munin-nodeが nobody権限なのを解決するための苦悩でした。 完全版では無いが取りあえず動くものをアップしておく  /usr/share/munin/plugins/ munin-mqtt-logger_ の作成 プラグインの作成 #!/bin/bash # シンボリックリンクから識別子を取得 # 例: munin-mqtt-logger_m1-tmp -> m1-tmp # mqtt-data-m1-tmp.txt ITEM=${0##*_} # キーワード判定による縦軸の設定 if [[ "$ITEM" == *"tmp"* ]]; then     VLABEL="Temperature (degree)"     ARGS = " –base 1024" elif [[ "$ITEM" == *"hum"* ]]; then     VLABEL="Humidity (%)"     ARGS = " --lower-limit 40 --upper-limit 70" elif [[ "$ITEM" == *"pres"* ]]; then     VLABEL="Barometric pressure (hPa - 900)"     ARGS = " --lower-limit 8 --upper-limit 12" elif [[ "$ITEM" == *"co2"* ]]; then     VLABEL="CO2 (ppm)"     ARGS = " --base 1024 -l 0" else     VLABEL=...

MQTTでIoT通信(3)受け取ったのデータのファイル保存 プログラムをサービスとして起動する

2026/1/3変更 当初ファイルをSDの寿命に考慮してtmpfsで作った/tmpに保存していたが、これがそれからの地獄のはじまりだった。munin-nodeが基本nobody権限で動作するのがこれの/tmpにあるファイルが見えない。tmpfs上に作ったファイルへのアクセスを禁じられている。まあ、セキュリティー的観点から正しい判断だろう。 とはいえSD上で頻繁に書き換えたくないのでメモリ上で保存したい。でGeminiに聞いたら/dev/shm使えば良いじゃんって返ってきた。/dev/shm ? ってなったので調べてみると いろいろなところで、以下のような内容を書かれている。「POSITシステムでのアプリケーション間の効率的なデータの受け渡しに使われる。」バッチリじゃん。ただ、使い方に関しては、世間全般として賛否両論なところがあるようだ。 とりあえず、 sudo mkdir -p /dev/shm/mqtt sudo chmod 777 /dev/shm/mqtt でディレクトリを作ってここでデータのやりとりをすることにする。 ------------------- 2026/1/3 さらに追記 x86用のRaspberry OSをインストールした仮想マシン上で当初プログラムしていたら、仮想マシン上のOSがDebian GNU/Linux 11 (bullseye) で実際のラズパイで動いているのでRaspbian GNU/Linux 13 (trixie) でバージョンそろってなかった。仮想マシン作った時期そんなに前では無いのがが古いバージョンだった。気付かんかった。結果logger.pyが動かず。サービスとしては動いているように見えるのに。。。。。。。 結果。仮想マシン python3-paho-mqtt                     1.5.1-1 実ラズパイ python3-paho-mqtt                    2.1.0-1  でpython3-paho-mqttが1系から2系になった時に結構かわっているらしいの...

MQTTでIoT通信(2)mosquittoの設定

 mosquittoの設定する。 /etc/mosquitto/mosquitto.confが設定ファイルで、初期設定では以下のようになっている。 #Place your local configuration in /etc/mosquitto/conf.d/ # # A full description of the configuration file is at # /usr/share/doc/mosquitto/examples/mosquitto.conf #pid_file /run/mosquitto/mosquitto.pid persistence true persistence_location /var/lib/mosquitto/ log_dest file /var/log/mosquitto/mosquitto.log include_dir /etc/mosquitto/conf.d 詳細は /etc/mosquitto/conf.d 以下からインクルードするようになっている。特にファイルは置かれていない(READMEだけ)。取りあえず最低限の記述をするために /etc/mosquitto/conf.d/01mosquitto.conf を作成 listener 1883 0.0.0.0 allow_anonymous true 全てのIPからポート1883で受信する パスワード認証とかは無し という設定です。   sudo systemctl restart mosquitto で再起動。 mosquitto_sub -d -t /client/abc を実行。別クライアントから mosquitto_pub -h [ IP address ] -p 1883  -t /client/abc -m "shee546978" で通信できる。 ユーザー認証 以下でユーザー作成1回目だけ -c をつける(ファイル pwfile が作成される) sudo mosquitto_passwd -c /etc/mosquitto/pwfile testuser パスワード入力を2回求められるので適当にいれると ファイル pwfile にハッシュ値?で保存される(違うユーザーで同じパスワードいれても違う値になるね)。...

MQTTでIoT通信(1)

  MQTTでIoT通信をしようと思う。まずはサーバーになるラズパイ(取りあえずはバーチャルマシンに構築したx64のRaspberry pi OSをインストールしたサーバー)にMQTT Broker(サーバーみたいなもの)をインストールソフトはmosquitto > sudo apt install mosquitto 次にパブリッシャーをインストール > sudo apt install mosquitto-clients ターミナルを2枚開いてAで受信状態にします。 mosquitto_sub -d -t /client/abc Bで送信コマンドを送る mosquitto_pub -d -t /client/abc -m "shee546978" A側で   Subscribed (mid: 1): 0 Client (null) received PUBLISH (d0, q0, r0, m0, '/client/abc', ... (10 bytes)) shee546978  と受信される。 取りあえず、これで動作確認ができる。 ただし現在はブローカーも、パブリッシャーもサブスクライパーも同じマシン上で動いていることに注意。 参考 https://qiita.com/sheep29/items/637f9f00e35cc707f681 https://elchika.com/article/ea67de45-ab62-4515-8a63-e9f83f056eed/ https://qiita.com/tsudaryo1715/items/da6092fecaa42f7d9b23

FreshRSSのアップデート1.28.0

  FreshRSSのアップデート1.28.0が出てた、バージョンアップは簡単簡単。昨日は特に欲しいものはなさそう、並び替えについて何件か強化とパフォーマンスの最適化。 取りあえず、バージョンアップ

Raspberry pi OS Raspbian GNU/Linux 13 (trixie) コマンド備忘録 3 python仮想環境 aptでuvインストール

 Raspberry pi OS  GNU/Linux 13 (trixie)などに搭載されている最近のpytthonはシステムとしてインストールされているpython環境を壊さないように?仮想環境で運用せよとなっている。いわゆるPEP668である。  システムに深く関わっているpythonを保護するという意味は理解できるが、手軽に使えるスクリプト言語としてのpythonの手軽さ、特にユーザーモードとして使わずにcronと組み合わせたりする場合どうすればいいのか面倒くささが際立つ。  さらに今回は一般的に資料のあるvenvではなく、最近はやりのuvを使ってやってみようという無謀な挑戦。 ちなみに回避策としては以下のページがまとまっている 俺流!PEP668とうまくやっていく方法 ちなみに「対策その1:余裕の無い人向け」で一瞬切り抜けようとしたが、今後決して戻ることは無いならいま勉強しようと思った。 まずはuvのインストール 参考: Debianでuvを安全にインストールする方法 参考の記事にあることは共感できる。 またaptでインストールする方法もある 参考: 【令和7年最新進化版】Debian 13 (Trixie) でKDEデスクトップ環境を使うための設定 こちらに外部リポジトリを便利に扱うextrepoというツールがあるらしい。2019年頃のBullseyeくらいから搭載されているらしい。Debianってapt使っている範囲だとすごく便利だけど、その他のものいれるときってその便利さがなくなるイメージだけど、結構便利になっているのね。サーバー構築が多いのでお世話になるのはwebminとuvくらいか。以下見ると対応ソフトがあるようだ。 https://extrepo-team.pages.debian.net/extrepo-data/debian/trixie/ リスト見ていると以下のものがある。もっといっぱいあるけど beagleboard-arm64.asc:こういうの有るんだ、beagleborad昔お世話になったな。 edge.asc github-cli.asc google_chrome.asc google_cloud.asc msteams.asc nvidia-cuda-sbsa.asc nvidia-cuda.asc protonvp...

xubuntu 24.04でwine と フォント

 完全に  https://rasumus.hatenablog.com/entry/2025/02/10/061600 https://www.miraiserver.ne.jp/column/about_ubuntu-wine/  の内容、ありがとうございます。 $ sudo dpkg --add-architecture i386 $ sudo mkdir -pm755 /etc/apt/keyrings $ sudo wget -O /etc/apt/keyrings/winehq-archive.key https://dl.winehq.org/wine-builds/winehq.key $ sudo wget -NP /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/ubuntu/dists/jammy/winehq-jammy.sources $ sudo apt update $ sudo apt install --install-recommends winehq-stable $ wine --version $ sudo apt install --install-recommends wine winbind $ sudo apt install -s --install-recommends wine winbind $ sudo dpkg --add-architecture i386 $ sudo apt install --install-recommends wine32:i386 wine64 $ wineboot -u $ winecfg $ sudo apt install winetricks $ winetricks allfonts $ sudo apt install ttf-mscorefonts-installer $ winetricks fakejapanese_ipamona $ fc-cache -fv $ wineboot -u  linuxで使えるフリーフォント sudo apt-get install msttcorefonts 日本語の入力環境 $ sudo apt-get install language-...

FreshRSSのインストール3(User-agentかなにかではじかれるサイト対策)

 最近RSSをはじくサイトが何個か見られる。困ったので、対策を検討。 IPでけられているわけではなさそうなのでUser-Agentでけっていると推察。 Crul,Wgetはダメでaria2はダウンロードOK、あと、ブラウザもOKなので、確信 FreshRSSのユーザーエイジェントを変更の設定はうまくいかなかった。(もしかしたら設定したエージェントがまずかったかな。サンプルで書かれているのを使った) でaria2でrssをダウンロードしてFreshRSSをホストしているサーバーのローカルしかアクセスできないディレクトリに保存、RSSをそこに見に行く形にした。取りあえず避けれた。

FreshRSSのアップデート

 1.25.0が出ていたのでアップデートしてみた。方法は簡単、管理者でログイン. 右上の歯車の中の「更新」で「アップデートの確認」でアップデートすれば自動的にアップデートされる。簡単なものだった。

apt-cacher-ngでhttpsをスルーする

 apt-cacher-ngを導入 2022/10/10に導入したapt-cacher-ng。問題なくつかえていたが,最近リポジトリーにhttpsを使うサービスがちらほら見える。でarmbianで使おうとすると「armbian-config」がhttpsなので、エラーを出すので、httpsのをスルーする設定にすればいいらしい。 AptCacherNg https://wiki.debian.org/AptCacherNg#HTTPS_repositories AptCacher-Ngがうごいているマシンの/etc/apt-cacher-ng/acng.conf の PassThroughPatternを探して、以下を追加 PassThroughPattern: ^(.*):443$ これでOK。 だが、httpsが増えると、キャッシュできなくなるな。 

Rock5B(9)I2Cを有効に

 Rock5BにArmbianをインストールI2Cなどを使おうと思うので、有効化・・・・・ 最初から有効になっているらしい。 で sudo /sbin/i2cdetect 1 で確認? WARNING! This program can confuse your I2C bus, cause data loss and worse! I will probe file /dev/i2c-1. I will probe address range 0x08-0x77. Continue? [Y/n]  ってでる。 ラズパイの時こんなん出たっけ?とおもったら、スイッチ忘れていた sudo /sbin/i2cdetect -y 1 でした。       0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f 00: -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: -- -- UU -- -- -- -- -- -- -- -- -- -- -- -- -- 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- -- って表示された。取りあえずOKか   

Rock5B(8)本格的に環境構築

 Rock5Bに本格的に環境構築、取りあえず、SDと電源の相性が厳しい。 前回書いたように、結果として Ankerの65WとSundiskのA1のSD で起動。 M.2SSDにarmbianのイメージを書き込んでおいて、SDからarmbianを起動し ここ にあるように sudo armbian-install を実行、  Install/Update the bootloader on MTD Flash をして、シャットダウン、SDを抜いてM.2から起動。 ちなみに起動用のユーザー名は root 1234 初回ログイン時に変更を求められる。 ---------------------- 1. aptをprox経由に変更 2.webminのインストール webminのubutuへの新しいインストール方法 /usr/share/keyrings/jcameron-key.gpgが作れないので sudo touch /usr/share/keyrings/jcameron-key.gpgでファイル作って 777にしてから644にもどす ubuntu 18.04 webmin Webminstats 3.固定IPの設定 標準が分からんがwebminで設定できるが、どこに設定されているか不明。 コマンドとしては以下でGUI間隔で設定できる。 sudo nmtui 最近のlinuxのIPアドレスの設定は面倒くさい  4.NTPの設定 apt install ntp /etc/ntp.confを編集 pool 0.jp.pool.ntp.org pool 1.jp.pool.ntp.org pool 2.jp.pool.ntp.org pool 3.jp.pool.ntp.org poolをコメントアウト restrict 192.168.3.0 mask 255.255.255.0 nomodify notrap  #アクセスを許可するIP 5.muninのインストール https://ysa256.blogspot.com/2022/05/munin_26.html

FreshRSSのインストール2(自動更新)

フィードの自動更新の方法は以下に書かれている。 https://freshrss.github.io/FreshRSS/en/admins/08_FeedUpdates.html コピペすると /etc/crontabを編集して以下を編集して追加せよ。 意味は毎時10分にwww-dataが php以下のファイルを実行せよ。ログは/tmp/FreshRSS.logに書き出せ。です。 10 * * * * www-data php -f /usr/share/FreshRSS/app/actualize_script.php > /tmp/FreshRSS.log 2>&1 /usr/share/FreshRSS/app/actualize_script.phpは環境によって異なり。実際にインストールしたフォルダーに変更です。例えば/ver/html/www/FreshRSS/app/actualize_script.phpとかです。 これで、実行されます。実際にはwebminのcronで登録した。

Rock5B(5)SSD,SDから起動できなくってlinuxから修復

armbianのインストールでうまくいかなくって、その過程でSPIフラッシュを消して、そのままにした結果、何も起動できなくなった。 修復は  https://iothonpo.com/rock5b-maskrom-reset/  を参考にした。こちらの記事windowsがメインなのでlinuxでのやり方は  https://wiki.radxa.com/Rock5/install/rockchip-flash-tools  の記事の Option two: rkdeveloptool on Linux (X86 or ARM)の部分。 sudo apt-get install libudev-dev libusb-1.0-0-dev dh-autoreconf 環境によっては git やc++のコンパイル環境が無いので適時追加  sudo apt-get install git g++   git clone https://github.com/radxa/rkdeveloptool.git  cd rkdeveloptool  autoreconf -i  ./configure  make  公式でここでエラーが出たら、必要な物をaptでインストールせよとある。 sudo cp rkdeveloptool /usr/local/bin/  sudo ldconfig  で、コンパイルとインストールが完了.コマンドを入力してバージョン確認。  rkdeveloptool -v   rkdeveloptool ver 1.32 WindowsのようなGUIではなくコマンドのみ。使い方は  https://wiki.radxa.com/Rock5/install/spi  ここの 4) Write u-boot images to SPI NOR flash or erase SPI NOR flash Option 1: Flash with Linux PC/Mac マスクROMモードでlinuxに接続。 sudo rkdeveloptool ld DevNo=1 Vid=0x2207,Pid=0x350b,LocationID=106 ...

FreshRSSのインストール1

 今更ながら、FreshRSSについて検討、 Google Reader難民 -2013/04/05 から10年以上ずっとnetvibesを使ってきた。結構お世話になってきたのだが、最近RSSを発行しないサイトや、保存したfeedの検索できないのが気になっていた。 移行先考えていたが、ためしにFreshRSSを試してみようっともった。特徴して、 多くがあげられていた が Raspberry Pi 1でも十分に動作するぐらい軽量 XPathを利用したウェブスクレイピング機能も持っているためRSS非対応のサイトも情報収集可能 データベースもSQLiteを含めて好みのものを選択できる がきになった。あまりリッチでないvpsでうごかしたいので、軽い目なのは絶対。mysqlやPostgreSQLのような本格的なDB管理ソフトはリソース食いそうですからね。SQLliteはうれしい。(どうせ1人しか使わないし。) とりあえず、ためしに使うのに、仮想マシンにubuntu24.04をインストール。SSHを有効にして sudo apt -y install apache2  sudo apt install php php-curl php-gmp php-intl php-mbstring php-sqlite3 php-xml php-zip unzip  libapache2-mod-php  で下準備。FreshRSSの最新版をダウンロードして、展開 wget https://github.com/FreshRSS/FreshRSS/archive/latest.zip  unzip latest.zip FreshRSS-latest/に展開されるのでディレクトリ名をfreshrssに変更 mv FreshRSS-latest/ freshrss/ 試験環境用なのでセキュリティーとかは配慮していません、日運用時はちゃんと対応してね。 webのrootディレクトリに移動 sudo mv freshrss/ /var/www/html/ cd /var/www/html/ sudo chown www-data:www-data freshrss/ -R cd  /var/www/html/freshrss 設定...

Windows11に移行できないPCのLinuxでの再生で困ったこと(1)ネットワーク設定

 Windows11に移行できないPCを使っているのだが、データの移動とブラウザでフォームに入力するくらいだけのために新しい端末にするのは気が乗らないので、Ubuntuにでも移行しようかと思っていたが、思わぬところで引っかかった。 無線LANの接続だ、接続自体はできるのだが、挙動がしてほしい状態と異なる。 Windowsだと、無線LANのWPA2エンタープライズで接続するとき、ユーザー名も、パスワードも自由にいれることができるが、Linuxだと、ユーザー名がこていになってしまう。 具体に書くの面倒くさいので、省くが、これは困った。 参考 https://progrunner.hatenablog.jp/entry/2019/11/13/145603

USB/IPでドングル共有はできるのか(1)

起動用にドングルがセットされているソフトウェアがある。 これ複数台のPCで利用するときにドングルの移動が面倒くさい。 これをネットワーク共有できるようにしたら、つかいたいPCでネットワークUSBで接続すればいいので楽になるのではと考えた。 取りあえず、ラズパイ2にUSB/IPをインストール USB/IPをインストール sudo apt-get install usbip sudo apt install hwdata USB/ipのバージョン確認 usbip (usbip-utils 2.0) ってでた。ラズパイで usbipを有効にし、接続されているUSB機器をリストアップ sudo modprobe usbip_host usbip list -l usbip list -lを実行すると - busid 1-1.1 (9999:xx00) Microchip Technology, Inc. (formerly SMSC) : SMSC9512/9514 Fast Ethernet Adapter (xxxx:xxxx) - busid 1-1.4 (8888:00xx) BUFFALO INC. (formerly MelCo., Inc.) : unknow って、表示されるので、busidを使って接続 sudo usbip bind -b 1-1.4 usbip: info: bind device on busid 1-1.4: complete  ← 表示される sudo usbipd -D 1-1.4をしていする。 ---------------- クライアントのWindowsでの作業 https://github.com/cezanne/usbip-win/releases からusbip-win 0.3.6.devをダウンロードする。 ダウンロードしたファイルを展開する。 展開したフォルダーで usbip_test.pfx を右クリックし、インストールを選択 このとき Certificate should be installed into "Trusted Root Certification Authority" in "Local Computer" (not current u...

windows linux macで使える暗号ドライブって無いね(標準で)とMacのpython環境どうしよう

 windows linux macで使える暗号ドライブって無いね Windowsとlinuxだとbitlockerが読み書きできた。linux無理かと思っていたら、なんかあんまり苦労せずに取り付けられたラッキーと思った。 さてMacだ。非常に楽観的に考えていたが、いきなり打ち砕かれた。bitlockerは読めなかった。読み込むためのソフトがあるようだが、標準ではないアプリをさけたいというところで一旦パス。 なんか、これらのOSで共通の暗号化形式あるといいんだけどね。 さらに、MACのPython環境何で作るのが正解か?Homebrewで作るのが良さそうだが、これも標準では無いのか。困ったもんだ。 メディアプレイヤーは「IINA」にした。

aptエラー対策 ハッシュサムが適合しません

 エラー:21 http://jp.archive.ubuntu.com/ubuntu jammy-updates/universe amd64 c-n-f Metadata   ハッシュサムが適合しません   Hashes of expected file:    - Filesize:22004 [weak]    - SHA256:68d7bebea14bed6ad445d997741f58e4f6cbd1f89cd245ff8a1808471cdd55c0    - SHA1:6b97942e6ba78694d39107e256837d5a7faebb41 [weak]    - MD5Sum:15df5d48f31e2b951118c4cf56ed54cd [weak]   Hashes of received file:    - SHA256:6dbe8b008a51b3c031bf6160979e0819c6a2c348d864104281880b83e3cad4f2    - SHA1:e60ec600ee5d5c7e26235b3e9bf9fb130b7485a4 [weak]    - MD5Sum:eef0e851f56c952cdb73d3d7861201b3 [weak]    - Filesize:22004 [weak]   Last modification reported: Wed, 11 Oct 2023 07:28:51 +0000   Release file created at: Sat, 14 Oct 2023 05:14:37 +0000 ------------------- って出るので  sudo rm -r /var/lib/apt/lists/* 参照のファイルを消すとaptできるようになった。 

さらばESXi、Proxmox VEへの道9 CPUの省電力

イメージ
 まずは、cpufrequtilsをインストールして、省電力状態を確認。 # apt install cpufrequtils # cpufreq-info Ryzen 2600を使っているんのでCPU0-11まで表示されるが、ざっくりとみると analyzing CPU 0:   driver: acpi-cpufreq   CPUs which run at the same hardware frequency: 0   CPUs which need to have their frequency coordinated by software: 0   maximum transition latency: 4294.55 ms.   hardware limits: 1.55 GHz - 3.40 GHz   available frequency steps: 3.40 GHz, 2.80 GHz, 1.55 GHz   available cpufreq governors: conservative, ondemand, userspace, powersave, performance, schedutil   current policy: frequency should be within 1.55 GHz and 3.40 GHz.                   The governor "ondemand" may decide which speed to use                   within this range.   current CPU frequency is 1.55 GHz (asserted by call to hardware).   cpufreq stats: 3.40 GHz:100.00%, 2.80 GHz:0.00%, 1.55 GHz:0.00%  (1) 一往1.55まで...