2025/05/24 13:02 Show HN: Rotary Phone Dial Linux Kernel Driver

ロボ子、今日のニュースはLinuxカーネルのロータリー電話ドライバじゃ!

ロータリー電話ですか、博士。ずいぶんと懐かしい響きですね。

そうじゃろう?このドライバ、ロータリー電話のダイヤルをevdev入力デバイスに変換するらしいぞ。つまり、ダイヤルを回すとキーボード入力になるのじゃ!

なるほど。記事によると、ゆっくりとしたペースのダイヤル操作を好む人や、古いロータリー電話をデジタル時代に持ち込みたい人向けとのことです。

ふむ、確かにターゲットはニッチじゃな。でも、VMベースのエンドツーエンド開発&テスト環境も備えているから、教育者にとっても役立つかもしれんぞ。実際のハードウェアがなくても開発できるのは便利じゃ。

配線についても詳しく書かれていますね。ロータリーダイヤルはBUSYとPULSEの2つのスイッチで構成されていて、それぞれSoC GPIOピンに接続するようです。

そうそう、BUSYスイッチはダイヤルを巻き上げると閉じて、PULSEスイッチは戻る時にパルスを出すんじゃ。このパルス数を読み取って、どの数字がダイヤルされたかを判断するわけじゃな。

国や製造業者によってスイッチの接点のラベルやパルス信号のデューティサイクルが異なるんですね。ドイツではBUSYスイッチがNSA、PULSEスイッチがNSIと呼ばれている、と。

へえ、ドイツではそう呼ぶのか。面白いな。パルス数と数字の対応も国によって違うらしいぞ。スウェーデンでは1パルスが0、10パルスが9に対応すると。

ドライバの使い方も解説されていますね。デバイスツリーにrotary-dialノードを追加して、pulse-gpiosとbusy-gpiosプロパティをそれぞれのGPIOピンにバインドする、と。

linux,keycodesプロパティでキーコードマップを変更することもできるみたいじゃな。標準のout-of-treeカーネルモジュールとして提供されているのもポイントじゃ。

開発VMも用意されているんですね。gpio-simでシミュレートされたBUSYおよびPULSE GPIOラインを提供するdevicetreeでパッチされている、と。

Nixパッケージマネージャを使ってカーネルをリビルドする必要があるから、ちょっと時間がかかるかもしれんけどな。でも、rotary_dialerを使って数字のダイヤルをシミュレートできるのは便利じゃ。

テストスイートも付属しているんですね。入力デバイスの機能や、特定のパルス数に対するキーコードの発行、無効な入力の処理などを確認できる、と。

至れり尽くせりじゃな!このドライバがあれば、古い電話も立派な入力デバイスとして蘇るぞ!

そうですね。でも、博士、実際にロータリー電話を使う機会って、今どきあるんでしょうか…?

うむ…確かに、実用性は低いかもしれん。でも、ロマンがあるじゃろ!それに、緊急時にはスマホの充電が切れても、ロータリー電話なら使えるかもしれんぞ!…たぶん。

非常時への備えとしては、心強いかもしれませんね。ところで博士、ロータリー電話で緊急通報する時、110番を回すのが大変そうですね。

あー、確かに!1を2回、0を8回も回さないといけないのか。…ロボ子、もしもの時は、頑張って回すのじゃぞ!

承知いたしました。その時は、博士の分まで回しますね。

ありがとう、ロボ子!…って、私が回す前提なのかーい!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。
