10年ぶりくらいでFreeBSD/i386をインストールしてみた

使われなくなったWindows MeなマシンにFreeBSD 12.2Rをインストールしてみました。以前の会社でFreeBSD/i386には大変大変お世話になりました。(\_o_)

ターゲットは2001年に発売されたNECの[VALUESTAR VT300/0](https://www.inversenet.co.jp/pclist/product/NEC-desk/PC%252DVT3000D.html)です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104066/1fcb5ab7-dcfd-34f2-729b-f92a3893424c.png)

NECは独自アーキテクチャのPC-9801シリーズ、PC-9821シリーズを経て1997年にPC/AT系のPC98-NX(VALUESTARなど)シリーズを発売していたようです。当初のモデルは微妙にPC/ATと違うところもあったようですが、2001年のモデルはほぼほぼPC/ATです。

BIOSはPhoenixで古いマシンなのでUSB Flashからのブートはできません。100均ショップで二枚ワンセットのCD-Rを買ってきてWindows 10のisoburn.exeでFreeBSD-12.2-RELEASE-i386-bootonly.isoを焼きます。Windows 10でオペレーションを間違えるとメディアがつぶれますので注意してください。

CD-ROMから起動できるようにBIOSの設定を変更します。

焼いたCD-Rをターゲットのマシンに入れてブートしてみましたが起動できましたがloader.luaが見つからずこけます。FreeBSDのインストーラーがCDドライブを認識できないようです。ネットで検索したらBIOSの設定を変えて解決しているケースもありましたが、うまくいきません。ちなみにDebianのインストーラは認識できました。

このマシンは一本のIDEバスにHDDがマスターでCD-ROMドライブがスレーブでぶら下がっているのが原因かもしれません。

結構古い機種にもかかわらずキーボードがUSBのためかbootloaderのプロンプトで入力ができません。

PXE bootしてインストールする方法もありますが、環境を用意するのが面倒です。

いろいろ考えてHDDを外して、他のマシンにつないでインストールしてそれを戻す事にしました。昔はプロダクションとかテスト環境のマシンのインストールでもそうやってたことがあったような気がします。

たまたま使わなくなったIDEなCeleron Dがあったので、それでインストールしてみました。

できました。

https://dmesgd.nycbug.org/index.cgi?do=view&id=5783

i386の12.2Rは一番乗りでした。

消費電力も小さめでファンも静かでたまに使うのはよさそうです。

もともと入っていたモデムボード(PCtel)とPCIのBT878を外して、Ethernetのカードを2枚入れてあります。

OS起動後はCDドライブはmountできました。

ACPIはまともなようで電源ボタンやshowdown -p nowで電源をオフにできました。昔VAIO C1にFreeBSDをインストールして使っていたのですがACPIがぐちゃぐちゃでいろいろいろいろいじった記憶があります。ACPIはWin98で採用されてMeの頃になるとほぼ安定していたのかもしれません。

dmesgにありますが、13Rで削除されるPCMCIA/CardBusも使えていて12Rは永久に不滅だと思います。:)

pciconf -l -vvで確認するとサウンドチップはヤマハのDS-1Eというチップのようで、/boot/loader.confにsnd_ds1_load="YES"を入れました。

firewire_load="YES"もloader.confに入れました。

BIOSでS.M.A.R.Tを有効にしてsmartmontoolsをpkgで入れてみました。

このマシンはシリアル・パラレル・PCMCIA/CardBus・USB 1・Firewire・S/PDIF-OUTとインターフェースがいろいろあり、ちょっと楽しいです。

USBは1(1.5M,12M)で、本体にあるコネクタとLCDのコネクタから変換してUSBにするケーブルが付属していました。USBキーボードが接続されてないと起動できないようです。製品ではUSBの赤外線リモコン受信機がセットになっていたが、今は手元ありません。

[蟹さん](https://qiita.com/yamori813/items/bf3cb113b2b9c121c0b7)の環境を作ってみました。pkgでruby,bison,gitとrubygem_rakeを入れました。[不慣れなWindows](https://qiita.com/yamori813/items/8581a9086f875e94caf0)よりも使い勝手がよいです。

etherchipのPCIはレビジョン2.2なのですが、2.1のWOLなコネクタがあります。マザー側が2.1の場合に利用するためのものと思われます。

![IMG_20201115_183755.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104066/8d518eef-3a24-87c4-08be-ec1c43011571.jpeg)

PCIボードとモデムボードのドーターボードで、この基板はMADE IN JAPANですが、PCIコネクタはFOXCONN製です。3ピンのコネクタがWOLでPC98-NXタイプなのではないかと思われますがピンアサインは不明です。1-VCC,2-GND,3-WOLかな？NECのマニュアルにも一切記載がありません。

![IMG_20201115_183811.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104066/47b04257-4470-a6e4-2127-62000a1e6846.jpeg)

chipset(82810)もetherchip(82559)もPCI 2.2なので、ケーブルの接続しなくてもWOLできるはずです。いろいろ試したところ、ACを一旦切った後にマジックパケットを投げると起動して、FreeBSDでpoweroffしたあとにマジックパケットを投げても起動しないようです。WOLケーブルのコネクタのピンの電圧を確認したところマジックパケットを送ると3.3Vになるので、LANカードはパケットを受信しているようです。acpiがらみのFreeBSDの問題かもしれません。

iperf3で確認したところfxp,vrの両方のインターフェースともに90Mbits/sec以上のパフォーマンスが出ました。

2000年位にはインターネットのサービスはPentiumIIIのDL360などでやっていたわけで、ネットのパフォーマンスはあの当時のサービスレベルで出るのは当たり前です。DL360でも10万TCPセッションとか張れたんじゃないかな。

思いのほか、きっちりデバイスが認識されていて気に入っています。

PC98由来の作りこみで、結構良くできたマシンだと思います。

メイン基板のコンデンサーはとくに傷んでなさそうです。電源は分解してません。

ときどきCD-ROMが勝手に開きます。

FreeBSDは13Rに向けていろいろデバイスを消しているので、リアルなi386なマシンで使えるのは12Rが最後になりそうな雰囲気です。

やはりCDドライブが不安定です。debianが正常にインストールできた事を考えると、FreeBSDと相性が悪いのかもしれません。(2021/02/18)

このマシンは1本のIDEにHDとCD-ROMがマスターとスレーブでぶら下がっていて、それが影響しているのかもしれません。

このマシンにはちょっとしゃれた形のスピーカーが付属していましたが、スピーカー本体のウレタンのエッジが切れて、音がビビルので使えませんでした。

HaddOffでUSB2のPCIカードを330円で買ってきて入れてみました。USB Flashの読み出しで内蔵より14倍くらい早いです。

https://dmesgd.nycbug.org/index.cgi?do=view&id=6208

buildkernelはCorei5のjailでやってたのですが、Corei5が起動しなくなったので、ローカルでカーネルをビルドしてみました。

make buildkernel -> 5時間29分

buildkernelはオブジェクトをクリアするので、毎回この時間がかかります。これではさすがに辛いので、オブジェクトをクリーンしないようにします。

make buildkernel NO_CLEAN=YES -> 12分

デフォルトではすべてのモジュールを作るのでkernelだけ作りたいのであれば、以下でいけます。

make buildkernel NO_CLEAN=YES MODULES_OVERRIDE="" -> 7分