電波時計校正に疑似JJY

わが家は鉄骨ラーメン構造で,屋根にも外壁にも鋼板が使われているので,屋内の電波環境はよくありません.いまではAMやFMをラジオの内蔵アンテナやロッドアンテナで聞くようなことはないのですが,昔もよく聞こえなかったと記憶しています.

電波時計の校正に使われる40kHzおよび60kHzのJJYも場所によって受信できたりできなかったりです.

特にシャックのメインの時計は定位置では全く校正ができず,放って置くとどんどん時間が進みます.一度無線クラブのオンエアミーティングで呼び出したとき,1分くらいフライングしてしまい,メンバーに少し早いんじゃないといわれたことがあります.実害といえばそのくらいなんですが,合っていない電波時計ってその存在意義が問われます.

電波時計.JJYと同期していると液晶の右上の角に同期のマークが表示される.

それで,週に一度くらい窓辺に置いて同期しますが,1か月くらい忘れることもしばしばですし,夏場の窓辺は高温になるのであまり時計に良くないです.

最近SNSのお仲間がM5ATOM Liteと専用基板を組み合わせた疑似JJY発信機を紹介してくださったので,早速真似しました.どちらもスイッチサイエンスから買えます.

ハードウェアは特に組み立てるというレベルの話ではなく,ピンヘッダーを合わせて差し込むだけです.

ソフトは結構手こずりました.Arduinoはかなり昔に少しいじりましたが,すっかりご無沙汰です.最初macOS用のArduino IDEをダウンロードして,ドライバーが要るとか要らないとか言うのでM5StackのサイトからCP210x用のドライバーをダウンロードしましたがどうもこれは違うようです.

次に一番得意なSlackware64に移り,どうもCP-210xでなく,FTDIのドライバーと当たりをつけ,とりあえずUSBポートにM5ATOM Liteを差し込むとKernel moduleがロードされUSBポートとして見えました.

ここまではそれほど時間はかかりませんでしたが,ここから先が長くて,シリアルポートは認識されましたが,なかなかボードが認識できません.というか,ボードのリストにM5Stackのシリーズが表示されません.あっちのPC,こっちのOSと移りいろいろためしました.

これは結局,ボードマネージャーにesp32を追加する必要がありました.ようやくそれがわかって最終的にmacOSでSketchを書き込み,動作させることができました

昨夜仕掛けて朝の段階で,電波を受信して同期しているマークが表示されています.

無事,JJYと同期しているマークが表示されている.

余談ですが,あっちのPCこっちのOSと移っている間に久しぶりにWindows 10 (32bit)も起動してみました.そしたら,Google Driveがもはや32bitはサポートしていないよと言って,自らをuninstallしてしまいました.また肝心なArduino IDEも32bit版はありませんでした.もう32bit OSは使えないですね.

Linux Kernel driverでは,ftdi_sio.ko.
“M5なんとか” ではないんです😅
Mac miniにはFTDIのUSBシリアルコンバータを2つつないで使っているので,敢えてドライバーの追加は不要ということが試行錯誤の過程で解りました.

Bochsメモ (3) dosemu以外だめな模様

結局,dosemu以外では動きませんでした.

なかなかFreeDOS/VをHDDにインストールできませんでした.FreeDOS/V 1.38のフロッピーイメージから起動して,空のディスクイメージファイルをHDSETUP.BATでフォーマットしようとしてもエラーが出ます.

そこで,FreeDOSの最新版(英語版)を当該のディスクイメージにインストールして,HDDイメージからブートできることを確認したうえで,FreeDOS/Vのフロッピーからブートして,

FORMAT C: /S

を実行したらエラーなくフォーマットできましたので,このあと手作業でFreeDOS/Vのファイルをコピーしました.

そうしたら,KVM/QEMUでもBochsでもこのディスクイメージからブートできるようになりました.

しかし,Control + Space を押しても鳳が起動しません.

macOS上のBochsにて,ディスクイメージにインストールできたFreeDOS/V 1.38を起動したところ.CNTL+Spaceを押しても半角スペースが入力されるだけで鳳が起動しない.

KVM/QEMUでも同じです.

一方dosemuで起動後に Control + Spaceを押すと,

dosemuが起動して, CNTL + Spaceを押して鳳を起動したところ.

このように,右下の隅に “鳳” の文字が表示され,単漢入力モードになります.

残念ながらFreeDOS/V + 鳳をインストールしても,dosemu以外(Bochs, KVM/QEMU)では単漢入力ができない,というのが現時点での結論です.

Bochsメモ (2) KVM/QEMUでやってみる

Isn’t Wayback Machine Great!

しばらく直接は取り組んでいませんでしたが,段取りを考えたり,若干の調べものはしてました.

まず,現在,Bochsを中心に進めていく方針に対して大きな懸念材料があります.それはDOSのコンソールから “:” が入力できないことです.これは,とてもプリミティブな問題で解決方法があるはずと思い調べたり心当たりを試しましたが,解決できていません. “:” をキーボードから入力できないというのは, DOSの作業においては致命的です.

そこで,代替案として,KVM/QEMUでやってみよう,ということを考えています.

なお,今回FreeDOS/V + 鳳のインストールイメージを発見できました.Wayback Machineに当該のページを見つけました.

フロッピーイメージも収録されています.ただ,自己展開のexeとかLHA形式とか今更どうするんだって思いましたが,このファイル名から自分のSSDのどこかにあるだろうと,

locate fdos0138

で探すと,展開済みのfdos0138.imgが見つかりました.タイムスタンプは,2006年1月2日なので,間違いなくオリジナルを展開したものとわかります.Wayback Machineを参照しなかったら,ここまでの進展はなかったです.

このイメージをフロッピーイメージとして,新しく仕立てるKVM/QEMUの仮想マシンにつなぎ,bximageで用意した仮想ディスクもつないで,ああだこうだしてみようと思います.

結局,最初のKVM/QEMUに戻るわけですが,うまく行かなかったら,第二案としてBochsでなんとかならないかやってみます.

xzにsshのバックドア

久しぶりにセキュリティー界騒然の事態ですね.劇場型のやり取りなどで3年がかりでxzのメインテナーに加わった人物がxzにsshのバックドアを仕組んだそうで,スパイ映画さながらです.

問題になるのは,xz (liblzma) 5.6.0と5.6.1だそうです.日常的なファイルの圧縮展開に利用されるばかりでなく,圧縮効率が高いため多くのdistroがパッケージをxzで圧縮して配布していてます.

手元のMac miniではMacPortsを使っているのでxzが入っているはずです.調べてみると(注意: xzコマンドを発行してバージョンを調べるのは危険かもしれません),

まさにドンピシャのものが入ってました.早速,

port selfupdate
port upgrade outdated

をかけたら,安全とされる古いバージョンに戻りました.

ちなみに,手元のいくつかのdistroで調べたところ,Slackware64とARM (32bit)の15.0は5.2.5で問題なし,Debian BookwormとRaspberry Pi OS Bookwormも5.4.1で問題なしですが,ManjaroはAMD64, ARM64とも5.6.1で今のところupdateは来てません(2024年4月4日09:35JST現在)

圧縮のスピードはかなり遅いですが😅
ただし,Slackware AArch64 currentは5.6.1です.他のアーキテクチャーのcurrentも5.6.1の可能性が高いです.
Manjaroは配布パッケージの圧縮にgzipを使っているようなので.ユーザーがxzをなにかの目的で使わなければ大丈夫なのかもしれません.

Bochsメモ (1) Slackware64 15.0

PC/DOSエミュレーター遊びの続きというかリブート版ですが,最終的に使うエミュレーターはBochsにすることにしたので,このような表題にしました.

さて,DebianがBochsについては解りにくくて使いにくいので,実マシンから仮想マシンへ退避させ,開けたパーティションに仮想マシンでupdateを続けてきたSlackware64 15.0をコピーして実マシン化しました.

久しぶりの作業で多少手間取りましたが,最終的に仮想化したDebianは問題なくブートできるようになりましたし,Slackware64はManjaroのGRUBのメニューからも,自前のEFIを仕込んだ別のディスクからもブートできるようになりました.

これで下準備(の下準備かも)は完了です.dosemuはすでにインストール済みで動作を確認しました.

次は,Bochsのインストールです.これもsbopkgで簡単にできました.

Freedosのお仕着せの設定のままです.CD-ROMドライブを設定していないのでエラーになっています.

Slackware64 15.0には,いつインストールしたか定かでありませんが,qemu-nbdも入ってました.

一通り準備ができてたようなので,明日から続きをします.

DOS/PCエミュレーターのインストールと動作

Tested DOS/PC Emulators Update

PCOSDosemuDOSBoxDOSBox-XBochs
Mac mini 2018 (Core i7)macOS Sonoma 14.4.1 (w/ MacPorts)N/ABuild failsInstalled and RunningInstalled and Running
Macbook Retina 12" 2017 (Core i7)macOS Ventura 13.6.6 (w/ MacPorts)N/ABuild failsInstalled and RunningInstalled and Running
PC Core i7-4790SManjaro AMD64Installed and RunningInstalled and RunningN/A *2N/A
Debian AMD64 Bookworm 12.5N/AInstalled and Ran *3N/A *2Installed but NOT working *5
Slackware64 15.0Installed and RunningNot TestedNot TestedInstalled and Running
Raspberry Pi 4 Model BSlackware ARM (32bit) 15.0N/A *1N/AN/A *2 *4Installed and Running
Raspberry Pi 5 Model BRaspberry Pi OS Bookworm 12.5N/A *1Installed and RunningN/A *2Installed but NOT working *5
Slackware AArch64 currentN/A *1N/AN/A *2 *4Installed and Running
Manjaro ARM (64bit)N/A *1Installed and RunningN/A *2N/A
Notes
*1 Dosemu requires x86/AMD CPU.
*2 Maybe available via Flatpak
*3 No longer installed for certain reasons.
*4 Flatpak installation fails on the respective environment.
*5 Drops into the debugger at every start-up.
すべて当社調べ.
いつどういう経緯でインストールしたかは不明.