ホーム » コンピュータ (ページ 15)

コンピュータ」カテゴリーアーカイブ

システム

最近の投稿

アーカイブ

カテゴリー

Rapberry-Pi の更新で GPIO が動かない

64bit OS の arm64 で動かしている Raspberry-Pi で、rpi-update を実行したら、kernel が Linux 6.1.61-v8+ となり、自作スクリプトのいくつかが動かなくなった。原因は wiringPi や GPIO など絡んだ処理の中では、/proc/cpuinfo にアクセスして “Hardware” を取得しその値に合わせてアクセスするポートなどを切り替えているみたい。しかしながら、linux-6.x になったら /proc/cpuinfo で Hardware 情報が取れなくなったため、wiringPi, GPIO関連のプログラムが動かなくなった。

BME280 温湿度センサーを GPIO 経由から ioctl() から I2C を制御する処理に書き換え

$ ./bme280
Oops: Unable to determine board revision from /proc/cpuinfo
-> No "Hardware" line
->  You'd best google the error to find out why.

参考にしていたプログラムが wiringPi 経由で I2C 接続の温湿度センサー bme280 を使っていたけど、仕方がないのでプログラムを修正し、ioctl() 経由に修正。

bit 演算が多用されていて、unsigned char と char の宣言を手抜きしたら、異常値が出るようになった。char型の部分を unsigned char に修正したら、大きな値にずれる異常値はなくなった。でも、その後も時々小さな値となる異常値が発生した。どうも nagios やら munin で監視していると時々同じタイミングで bme280 の値取得の処理が起動されるようで、I2C デバイスの競合が発生していると思われた。このため、I2C デバイス /dev/i2c-* を開く際に flock() による、排他処理も追加した。

OLED ディスプレィ SSD1306 の処理を Adafruit_CircuitPython_SSD1306 に変更

Adafruit_Python_SSD1306 を使って表示させていた処理が動かなくなる。内部で WiringPi などを使っているのか “RuntimeError: Could not determine platform…” といったメッセージが出て動かなくなる。これも GPIO あたりのトラブル。調べていると Adafruit_CircuitPython_SSD1306 なら動きそう。

$ sudo pip3 install adafruit-circuitpython-ssd1306

若干のプログラム修正で動くようになった。

自宅PCに指紋認証USB

職場のノートに指紋認証ついてて便利だし、自宅のPCにもUSBドングルを付けてみた。

Windows付箋アプリを使い始める

仕事で締め切り仕事の対応漏れしちゃうことを防ぐために Google の ToDo アプリを使っていたが、Windows の重要メールのマークによる ToDo も便利だし職場アカウントを使っていれば簡単に確認できる。ただ、両方使っていると、Google の ToDo 側に記載していることを忘れてしまいがち。常にデスクトップに表示できるような ToDo が欲しいと考えていたけど、これはまさに Windows の付箋アプリ。ということで、付箋を使い始めた。

メールによる ToDo との統合という意味で、職場の Windows アカウントにて付箋を使い始めたけど、職場アカウントは自宅からの利用だと頻繁に認証がかかり、同期切れが簡単に発生する。常に参照できる状態が欲しいのでここは統合はあきらめて、live.jp の個人アカウントの付箋に移行する。

スマホでもこの付箋を参照するには…と思ったけど、iOS のメモアプリで、単純に live.jp のメモ機能を有効にするだけだった。

gcalcli が dpkg_resources is deprecated…の警告

gcalcli を使っている自作スクリプトが、以下のような警告メッセージを吐くようになった。

$ gcal.pl
/usr/bin/gcalcli:6: DeprecationWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html
from pkg_resources import load_entry_point

python で dpkg_resources が廃止されたことによる警告。調べてみたけど、現時点では他の python のプログラムでも同様のエラーが出てるみたい。ひとまずは標準エラーに出力される警告なので、自作スクリプトには、gcalcli を呼出す処理の後ろに “2>/dev/null” をつけて黙らせた。

debian trixie/testing

最近、aptitude safe-upgrade かけてもパッケージの更新が少ないなぁ…と思ってたけど、bookworm は 6 月に stable になってたのね。

気づかず半年間、寝かせていたからか testing/trixie で大量の更新がかかったけど、競合ですぐに更新されないパッケージもあったけど、半年の間に testing といえども安定していたのか、トラブル無しで更新が終わった。

debian trixie/testing

以前、apt/souces.list.d を stable と testing で記述してたけど、更新のタイミングを見逃すと、急に大量の更新がかかってびっくりしたので、bullseye とか bookworm とかで記述するようにしていた。

/etc/apt/preferences が邪魔をしているかと思って消して更新かかったけど、大した量じゃなかったし。

linux 6.1 to 6.5

testing を追いかけていなかったから、linux-image も 6.1.0-13 から 6.5.0-2 にジャンプアップ。

postfixの設定見直し

自宅サーバに届く迷惑メールの設定はそれなりにやってるつもりだけど、相変わらず届く。

迷惑メールの送信側も、DKIM や SPF といった迷惑メールに誤認されない対策をして送ってきている。そこで改めて postfix の設定を見直す。

RBLサイトの整理, 正引き・逆引きチェック

迷惑メール送信者のデータベース(RBL)の設定をしていたけど、all.rbl.jp, zen.spamhaus.org はサービスを停止しているようで、nslookup all.rbl.jp とかも失敗するし設定を削除。

Dynamic DNS サイトのような迷惑メールサイトからのメールを拒否するために、reject_unknown_reverse_client_hostname を設定していたけど、DKIM, SPF まで設定した迷惑メールサーバも多いので、設定をさらに厳しく reject_unknown_client_hostname に変更。

この設定を変更すると、逆引きと正引きが一致しない Dynamic DNS サイト(まさに自サイト tsaitoh.net はこの状態)からのメールを拒否することになる。しかし、迷惑メールの制限を強化したいし、身の回りの 逆引きと正引きが一致しない所からのメールは、smtpd_client_regexp で受信許可するようにしよう。

  ((( /etc/postfix/main.cf )))
  smtpd_client_restrictions = permit_mynetworks,
                  check_client_access regexp:/etc/postfix/smtpd_client_regexp
-                 reject_rbl_client all.rbl.jp,           # サービス停止
-                 reject_rbl_client zen.spamhaus.org,     # サービス停止
                  reject_rbl_client bl.spamcop.net,
-                 reject_unknown_reverse_client_hostname, # 逆引きだけをチェック
+                 reject_unknown_client_hostname,         # IP->name->IPのチェックあり
                permit

 

nodejs の更新方法の”更新”と hb-service

自宅で動かしている HomeBridge 、定期的に node-js の更新のために、”hb-service update-node” を実行しているけど、途中に警告メッセージがでるようになった。どうも https://deb.nodesource.com/setup_X での更新は非推奨で https://deb.nodesource.com/node_XX.x での更新に変更となったらしい。単純に警告で表示された URL にアクセスし、新しいインストール方法に従って、下記を実行する。

$ sudo apt-get update
$ sudo apt-get install -y ca-certificates curl gnupg
$ sudo mkdir -p /etc/apt/keyrings
$ sudo curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key \
  | sudo gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
$ NODE_MAJOR=18
$ echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" \
  | sudo tee /etc/apt/sources.list.d/nodesource.list
$ sudo apt-get update
$ sudo apt-get install nodejs -y

HomePod 17 更新終わらない…

iOS17 や watchOS 10 などが公開され、同じく HomePod 17 も公開された。ホームアプリから更新を開始させたが、以下の画面のまま一晩たったけど、相変わらずの画面。
{CAPTION}しかたがないので、こちらに記載されている手順で、HomePod をリセット(Power Resetで起動後、10秒ほどおいて白表示から、HomePod 上部を10秒以上タッチ(赤表示になるまで)して再起動を行い、初期化後の登録作業を行う。ひとまず無事にHomePod 17 に直ってる。

iOS17更新

iOS 17 が 9/19(朝)に公開されたけど、実は気が短いので一時的にベータアップデートにて先に更新をかけていた。
9/19の正式更新が公開されて改めて更新を確認したけど、更新はされなかった。
でも iPhone12 では最新の機能で操作性が激変というほどではない。NameDrop ぐらいかな(使う相手がいないけど)。watchOS 10 の更新も行ったけど、これまた最新機種じゃないと驚くような機能というほどではないな。
{CAPTION}

あ〜のスマホ機種変

娘のスマホがガラス割れで4年目なので機種変。古い端末は、ZenFone Max Pro(M2) だったけど、今回は mineo で買える端末からということで、Xperia 10 v となった。
mineo から端末が届いて、早速ヤマダ電機で、保護フィルムとスマホケースを購入。売れ筋なのか簡単に見つかった。データ移行も、micro USB-Type-C ケーブルでスムーズに完了。まだまだ細かい移行作業はあるけど、自分でできるだろう。
{CAPTION}

Google 検索

My Google   Yahoo

Microsoft

ファンサイト

メタ情報