20-Nov-2022
[なかなか受信できませんね]

毎月20/21日にJMHで放送される、電波予報。天気図はPNGでサイトに上げてくれるけどこの予報は上げてくれないし、予定が合わないと受信できないしということでなかなか見ることができません。とりあえず今回で二度目。

鹿児島までの距離はおよそ925km、春先と冬の入口では7/13MHzの伝搬状況はだいぶ変わるもんですねえ…

という訳で、書類書きで忙しくてbuildrootいじりどころではなかったという。56.8kg(16:45)

13-Nov-2022
[buildroot覚え書き]

折角なので、buildrootでx86_64向けの起動可能なHDDイメージを作ってみます。QEMUの-kernelオプションでカーネルを直接食わせて-hdaにrootfsのイメージを指定するというのはよく見かけるのですが、それだとQEMU以外のエミュレータでは動かせないので。

buildroot自体はこんな感じで。

make menuconfigにおいて、以下の設定は必要です(glibcとC++ supportは不要かもしれませんが)。その他必要に応じ、適当な設定をしてください。

Target options
Target Architecture(x86_64), Target Architecture Variant(x86-64)
Toolchain
C library(glibc), GCC compiler Version(gcc 11.x), Enable C++ support
Kernel
Linux Kernel, Defconfig name(x86_64)
Filesystem images
ext2/3/4 root filesystem, ext2/3/4 variant(ext4), exact size(必要に応じ)
Bootloaders
grub2, boot partition(hd0,msdos1), builtin modules(boot linux ext2 fat part_msdos normal biosdisk) ※squash4とpart_gptを削っています

ビルドが完了するとbuildroot-2022.08.1/output/images/{bzImage,grub-eltorito.img,grub.img,rootfs.ext2,rootfs.ext4,rootfs.tar}が作られるので、このディレクトリ内で

とすると、disk.imgが作成されます(容量削減のためqcow2化しています)。rootfs内に/bootディレクトリを作ってその中にLinuxカーネルを入れることもできるのかもしれませんが、多くの作業例ではVFAT区画内にカーネルとgrub.cfgを置いているので、これに倣っています。この実験では、FAT区画の使用量は10Mbyteを少し超える程度、ext4区画は15Mbyteくらいを使用しているようです。

作業の肝としては、GRUB2を使う場合はMBRにGRUB2由来のboot_hybrid.imgを使う必要があることです。MBRなら何でも良いのではないか…?ということで最初はsyslinux由来のmbr.binを使っていたのですが、動作中のDebian機のブートセクタをhexdumpしたところ、GRUB2本体(grub.img)を読み出すためにはそれ専用のMBRを用意しないといけないことに気付きました。

最低限の環境として使うにはもう少し調整が必要そうですが(例えばhaltコマンドを実行した際に自動的に仮想マシンが終了してほしいのですが、現状ではできません)、これに自分の動かしたいアプリケーションを放り込んで、仮想マシンとして配布できたら良いなと考えています。57.8kg(16:05)

23-Nov-2022補足:haltではなくpoweroffコマンドで電源を切れます。x86_64ではなくi386(32bit)の場合、Target Architecture(i386), Target Architecture Variant(pentium3…お好みのものを), Defconfig name(i386)にしてください。同じような手順で作ったdisk-i386.imgを上げておきます(容量削減のためこちらもqcow2化しています)。

06-Nov-2022
[Lichee Pi Nano覚え書き(2)]

08-Sep-2018から随分時間が経っていますが、Lichee Pi Nano Bootable Linux Image (Buildroot)なるものを見つけたので試してみることにしました。本当はNetBSDが動いてくれれば良いのですがね…

手順ではVagrant VMの使用がお勧めされていますが、それを使わなくてもできるらしいので使わずに挑戦してみます。ドキュメントに書かれた手順、ほぼ無視してるような…

使ったマシンがHDDを載せたA8-7600機と遅いものですが、make menuconfigの設定を何もいじらない状態でmakeすると1時間程度で終わるようです。

Debianでは/sbinにパスが通っていないためにgenimageがmkdosfsを呼ぼうとしてエラーを起こすので、PATH=$PATH:/sbinを入れています。また、apt-get install libssl-devを忘れているとエラーを起こします。出来上がったイメージはbuildroot-2020.02.12/output/images/sdcard.imgのような形で得られますが、動くかどうかは未確認です。

Raspberry Piの入手難/高騰化を考えるに、Pi-StarのようなものをLichee Pi Nanoで構築できたら安価にできるんでしょうかね…?TWI(I2C)があるのでOLEDは繋がりそうですし、UARTも3系統あるのでシリアルコンソールを潰さずにJumboSPOTを繋げられますし、ネットワークはUSBかSPIで繋げれば良い訳ですから。57.3kg(07:10)

12-Nov-2022補足:https://github.com/mclewell/licheepi-nano-lcdの方が良いかもしれません。手順についてはリンク先を参照してください…ではあるのですが、boysenboard_spi_defconfigはlicheepi_nano_lcd_sd_defconfigに読み替える必要はあります。

03-Nov-2022
[Pentium G4600機、運用開始]

distributed.net clientによる負荷試験も問題なくパスしたので、Windows10の再インストールを行ったものの、これが結構大変でした。システムのバックアップも含めた回復用USBメモリからインストールできることになっているはずなのに、インストール終了間際で何かの問題が起こるらしく、インストールに失敗してしまうのです。

という訳でWindows10のディスクイメージ(ISOファイル)を使ったインストールを行うことになるのですが、DebianのようにディスクイメージファイルがDVD/USBメモリ兼用とはなっておらず、Windows10機にイメージファイルをマウントして別途USBメモリを作成するという手順を要します。なので他に利用可能なWindows10機が無い状態ではどうにもならずに詰み…ということはなく、UbuntuでWindows 10インストールメディアを作成するといった記事のおかげで、WoeUSB-ngを使ってLinux機上でインストール用USBメモリを作成してインストールを無事終えることができました。

今回の組み換え/OSのクリーンインストールにより、Windows11絡みでGPT化→MBRに戻してちょっと気持ち悪い状態が解消したり、システムに溜まったゴミがなくなったり、Hyper-V無しのVMware Playerで超漢字が快適に動くようになったのはありがたいです。CPUの都合でAVX対応アプリの動作に支障が出る可能性はありそうですが。

なお、Hyper-Vを使わない以上、WSL2ではなくWSLを使うことになります。bashやsshといったコマンドラインツールでWindows上のファイルを操作できれば十分と考えているので、今回はWSL上でDebianではなくAlpine WSLを入れています。今までAlpineを使うことを考えたこともなかったのですが、ちょっと使えれば十分という用途ならこれで良いような気がします。

ブラウザ(Firefox)のブックマークやパスワード等の情報のバックアップ/リストアが一番大変そうだと考えていたものの、クラウドの向こうに預けていればログインするだけで回復できるのは非常に助かりました。今の時代においては、マシンが壊れるよりもこれらの情報が飛ぶ方がダメージが大きいはずですので。

必要最低限の環境は回復できているので、あとは使いながら不足した部分を補っていけば良さそうです。Windows10の終焉はこのマシンで見届けることにして、お金があればWindows11(もしくはこれから出るであろう12?)の動くマシンを手に入れたいところですねえ…57.5kg(11:45)

01-Nov-2022
[Pentium G4600機、組立中]

DOSPARAでASUSのH110-Kが売られていたので、これと16GB分のDDR4メモリで組むことにしました。Windows機はPentium4 2.8GHz+BIOSTAR P4M900-M4AthlonX2 5050e+FOXCONN A7GM-SA8-3850+ASRock A75 Pro4A8-7670K(A8-6500)+ASRock A88M-G/3.1という変遷なので、先日運用を開始したi7機も含めて本当に久しぶりのIntel機ということになります。OpenBSD機はPentium E6700+Intel DG41TYを使っていた時期がありましたが、こちらもその後はA8-3820+ASRock A75 Pro4/MVPA10-7860+ASRock A88M-G/3.1とAMDが続いています。

5月の連休に散々悩まされたハードウェアのトラブルの反省を活かし、購入したら直ちに動作確認(memtest86+を12時間、その後distributed.net clientを12時間)を行うようにしています。memtest86+はパスし、現在distributed.net clientでCPUコアをフルに回しているところです…おそらく、問題なく終わると期待しています。

動作確認前に、冗談半分でWindows10の入ったSSDを新しいマザーに取り付けてみました。ユーザの再認証を必要とした以外は、何事もなく動いてしまった点に驚いています。マザーボードを交換したらWindowsの再インストールは必須、という時代はいつ終わったのでしょうか…良い時代になったものです。57.1kg(21:55)