ここでは、武藤健志, "Debian GNU/Linux 徹底入門", 初版, 1999, 翔泳社付属CD-ROMから、Towns OSやフリコレなど一切使わずにFM TOWNSエミュレータ津軽にLinuxをインストールして、X-WindowとNetscape 4.06を使えるようにするまでの手順を説明します。
"Debian GNU/Linux 徹底入門"には、改訂版と第2版と第3版も出版されていますが、そのCD-ROMにもFM TOWNS用バイナリが入っているのかはわかりません。確認できているのは初版本だけです。
初版本付属CDにはFM TOWNS用バイナリがありますが、本文中にはほとんど記述が無く、インストールディスクの
debian/doc-jp/install-towns.txt
を参照するように、と書いてあるだけです。
そのファイルも、よほど急いで書いたのか、最後に「[U]pdate以降は通常のdselectでのインストールと同じです。(ここでは解説しません。)」とあるが、「何と同じなんじゃ、ゴルァ」と言いたくなってしまいます。実際、同じではありません。towns特有のパッケージをインストールしようとしたとき、パッケージの設定ファイルにエラーがあるため、kernel-doc-t, kernel-header, kernel-image, kernel-sourceなど、カーネル関係のパッケージをインストールしようとするとエラーが出て他のパッケージもインストールできなくなります。そのときは選択を解除すればいいだけですが、この説明では当然そんなことはわからず、なぜそのパッケージを選ぶとインストールが進まないのかと、かなり苦戦しました。
以下の手順に沿って行けば、確実にインストールできるはずです。1999年のLinuxをFM TOWNSエミュレータ津軽上で走らせてみたい人は試してみてください。
なお、Townsシステムソフトウェアは必要ありません。またTOWNS実機のROMも必要ありません。
必要なのは、
津軽ソースコード2026/06/06以降でないと、LEAVE命令の例外処理が正しくないのとFICOM(m32int)が未対応のためNetscapeが走りません。津軽ソースコード2026/06/02以降でないとLinuxドライバがREX3586認識しません。その前のバージョンだとREX3586のsignatureがバグってた影響です。津軽ソースコード2026/06/04以降でないと、-FASTSCSIオプションを使うとSCSIドライバがしません。次回リリースに反映されますが、それまでの間は自力でビルドしてください。
FreeTOWNSOS(津軽OS)はソースコード2026/05/31以降を使わないと、LinuxインストーラがXMSのBlock Copy機能を必要とするため動作しません。最新版のリリースを使ってください。
また、Linuxを使おうという人ならCommand User Interfaceに抵抗はないと思うので、全部Tsugaru_CUIを元に説明します。GUIじゃないと使えないというレベルの人はそもそも当時のDebian Linuxをインストールするのは無理なので、あきらめてください。1999年のLinuxなんてそんなもんです。
では、行ってみましょう! 多分かかる時間は3時間ぐらい。
まず、https://github.com/captainys/FreeTOWNSOS/tree/master/releaseからHDIMG.h0をダウンロードして、ファイル名をLinux1999.h0と変更する。
そして、サイズを640MBに引き伸ばす。Unixだったら、
truncate -s 640MB Linux1999.h0
Windowsだったら、
fsutil file setEOF Linux1999.h0 671088640
このコマンドで行ける。
以下のコマンドを実行。
Tsugaru_CUI C:\TOWNSROM -hd0 Linux1999.h0 -scsicd4 E:\ISOImage\ClassicLinux\DebianGNULinux徹底入門-Disc1-Install.iso -scsicd5 E:\ISOImage\ClassicLinux\DebianGNULinux徹底入門-Disc2-Binary.iso -scsicd6 E:\ISOImage\ClassicLinux\DebianGNULinux徹底入門-Disc4-Bonus.iso -highfidelity -fastscsi -keyboard trans -freq 80 -memsize 64 -usefpu -bootkey h0 -highrespcm -midi 1 -rex3586 -conscmd "echo e > TOWNS_CD" -conscmd "mkdir LINUX" -conscmd "cd LINUX" -conscmd "COPY Q:/TOWNS/LINUX" -conscmd "COPY Q:/TOWNS/LINUX.MAP" -conscmd "COPY Q:/TOWNS/*.BIN" -conscmd "COPY Q:/TOWNS/*.TBL" -conscmd "COPY Q:/TOWNS/*.BAT" -conscmd "mkdir DOSB5IR1" -conscmd "CD DOSB5IR1" -conscmd "COPY Q:/TOWNS/DOSB5IR1/DOSBOOT5.EXE" -conscmd "COPY Q:/TOWNS/DOSB5IR1/*.TBL" -conscmd "CD /LINUX" -conscmd "DINST"
それぞれのパラメータを説明すると、
Tsugaru_CUI
津軽実行ファイル。パスが通ってなかったらフルパスで指定する必要あり。
C:\TOWNSROM
互換ROMのファイルが置いてあるディレクトリ。https://github.com/captainys/TOWNSROM/tree/master/release/forTsugaruから全ファイルをダウンロードして置いておく。
-hd0 Linux1999.h0
手順(1)で作ったハードディスクイメージ。
-scsicd4 E:\ISOImage\ClassicLinux\DebianGNULinux徹底入門-Disc1-Install.iso
付属CD1をSCSI ID4にマウント。
-scsicd5 E:\ISOImage\ClassicLinux\DebianGNULinux徹底入門-Disc2-Binary.iso
付属CD2をSCSI ID5にマウント。
-scsicd6 E:\ISOImage\ClassicLinux\DebianGNULinux徹底入門-Disc4-Bonus.iso
付属CD4をSCSI ID6にマウント。
-highfidelity
CPUをHigh-FidelityモードにしておかないとLinuxカーネルが走らない。
-fastscsi
少しでも速度稼ぐ。
-keyboard trans
ゲームをプレイするのでなければ、キーボードはTranslation modeにしておいた方がタイプが楽。
-freq 80
津軽は2021年のCore i9で大体80486DX 80MHz相当は出てそうなので、このぐらいの周波数にしとく。
-memsize 64
メモリは64MBが大容量という時代だった。
-usefpu
浮動小数点演算コプロセッサ有効。
-bootkey h0
SCSI ID 0のディスクから起動。
-highrespcm
FM TOWNS II MX以降のPCM音源有効。
-midi 1
MIDIボード一枚
-rex3586
ネットワークアダプタREX3586有効
-conscmd "echo e > TOWNS_CD"
このコマンドは、津軽OSのTOWNS_CDドライバに最初のSCSI CDドライブをQドライブとして使わせる機能。
-conscmd "mkdir LINUX"
-conscmd "cd LINUX"
Linuxディレクトリを作って移動。
-conscmd "COPY Q:/TOWNS/LINUX"
-conscmd "COPY Q:/TOWNS/LINUX.MAP"
-conscmd "COPY Q:/TOWNS/*.BIN"
-conscmd "COPY Q:/TOWNS/*.TBL"
-conscmd "COPY Q:/TOWNS/*.BAT"
CDドライブのファイルをコピー。
-conscmd "mkdir DOSB5IR1"
-conscmd "CD DOSB5IR1"
DOSB5IR1ディレクトリを作って移動。
-conscmd "COPY Q:/TOWNS/DOSB5IR1/DOSBOOT5.EXE"
-conscmd "COPY Q:/TOWNS/DOSB5IR1/*.TBL"
CDドライブのファイルをコピー。
-conscmd "CD /LINUX"
/LINUXディレクトリに移動。
-conscmd "DINST"
DINST.BATでLinuxインストーラを起動。




ここで出てくる数字は、セクタ数。1セクタあたり512バイト (0.5KB)。2で割ると大体キロバイト。2048で割ると大体メガバイト。
1294335セクタだと、大体631MB使えることになる。スワップは、実メモリの半分ぐらいがよいとも、実メモリと同じぐらいがよいとも言われた。まあ、実メモリと仮想メモリを合わせただけメモリが使えるわけだから、32MBのスワップを作れば合計96MB使えることになる。なるって言ったって当時のスピードのハードディスクじゃ実メモリ使い切ってスワップが始まったら何もできなくなったけどね。
32MBはセクタ数にすると、65536。
|----All disk-----| | 1924335 | |---root---|-swap-| | 1228799 |65536 |
rootパーティションとswapパーティションを合わせたのが合計セクタ数。そのうち65536セクタをswapにするなら、(合計セクタ数-65536)がrootパーティションのセクタ数。
1294335-65536=1228799で、これをrootパーティションのセクタ数にしよう。
タイプするコマンドは以下の通り。nコマンドは新パーティション作成。tコマンドはパーティションタイプ変更。タイプ21がスワップパーティション。pでパーティションのリストが見れるので確認できる。最後にwでパーティション情報をディスクに書き込んで終了。
Command (m for help): n Size (0-1294335): 1228799 Command (m for help): n Size (0-65536): 65536 Command (m for help): t Partition number (1-3): 3 Hex code (type L to list codes): 21 Command (m for help): p Command (m for help): w














/dev/medamaを選べばいいことになっているのだが、これを選ぶとエラーが出て進まない。どうも、/dev/medamaが見えないらしい。# cat /proc/devices# mknod /dev/medama b 15 0/dev/medamaが内蔵CD-ROMドライブとして見えるようになる。が、SCSI CDドライブにマウントしてしまえばこの手順を実行しなくても/dev/scd0で見えるので気にしなくていい。


/instmnt/TOWNSを選んでリターンキーを押す。







10.0.2.15
255.255.255.0


10.0.2.210.0.2.1となってるから、最後の数字を1に。

10.0.2.2

eth0


[/dev/scd0]を選ぶ。

[list]を選ぶ。





Tsugaru_CUI C:\Users\soji\development\FreeTOWNSOS\CompROM -hd0 Linux1999.h0 -scsicd4 E:\ISOImage\ClassicLinux\DebianGNULinux徹底入門-Disc1-Install.iso -scsicd5 E:\ISOImage\ClassicLinux\DebianGNULinux徹底入門-Disc2-Binary.iso -scsicd6 E:\ISOImage\ClassicLinux\DebianGNULinux徹底入門-Disc4-Bonus.iso -highfidelity -fastscsi -keyboard trans -freq 80 -memsize 64 -usefpu -bootkey h0 -highrespcm -midi 1 -rex3586 -conscmd "CD LINUX" -conscmd "dosb5ir1\dosboot5 -i linux -v -1 root=/dev/sda1 < nul"
既にファイルのコピーは終わってるので、そのコマンドは無くてもよくて、最後のところ、DINSTコマンドの代わりにLinux起動コマンドが書いてある。









# mkdir -p /cdrom0 # mkdir -p /cdrom1 # mkdir -p /cdrom2 # mount /dev/scd0 /cdrom0 # mount /dev/scd1 /cdrom1 # mount /dev/scd2 /cdrom2/cdrom0にインストールディスク、/cdrom1にバイナリディスク、/cdrom2にボーナスディスクがマウントされる。
/dev/scd0は最も番号の若いSCSI CDドライブの意味だそうだ。
# dselect続いて、dselect起動。









kernel-doc-t, kernel-header, kernel-image, kernel-sourceを選んではいけない。これを選ぶと、エラーが出て何もインストールできなくなるので、うっかり選んでしまった場合はdselectで-キーを押して選択を解除する。ちなみに、選んだ状態だとこのエラーが出て他のパッケージもインストールしてくれない。これ解明するのにかなり時間かかった。kfont, mtools-towns, nas-towns, padctl, twsndkit, wavtool, xfreshtv, xpadtrans, xtowns, xtownscd






























Tsugaru_CUI C:\Users\soji\development\FreeTOWNSOS\CompROM -hd0 Linux1999.h0 -scsicd4 E:\ISOImage\ClassicLinux\DebianGNULinux徹底入門-Disc1-Install.iso -scsicd5 E:\ISOImage\ClassicLinux\DebianGNULinux徹底入門-Disc2-Binary.iso -scsicd6 E:\ISOImage\ClassicLinux\DebianGNULinux徹底入門-Disc4-Bonus.iso -highfidelity -fastscsi -keyboard trans -freq 80 -memsize 64 -usefpu -bootkey h0 -highrespcm -midi 1 -rex3586 -conscmd "CD LINUX" -conscmd "dosb5ir1\dosboot5 -i linux -v -1 root=/dev/sda1 < nul"
failed to set default font path "/usr/X11R6/lib/X11/fonts/misc,/usr/X11R6/lib/X11/fonts/75dpi/:unscaled,/usr/X11R6/lib/X11/fonts/100dpi/:unscaled,/usr/X11R6/lib/X11/fonts/75dpi,/usr/X11R6/lib/X11/fonts/100dpi/"

# mount /dev/scd0 /cdrom0 # mount /dev/scd1 /cdrom1 # mount /dev/scd2 /cdrom2この後、いくつかパッケージをインストールする必要があるが、当時はDVD-ROMなどというものは無く、CD3枚の複数のディレクトリにパッケージが分かれてしまっている。dselectのインターフェースでは、ひとつタイプミスがあると全部最初からやりなおし。たくさんあるパッケージソースを全部dselectのインターフェースで入力していくのは非人間的過ぎる。
# emacs /etc/apt/sources.list

deb file:/cdrom0/debian hamm-jp/main/binary-towns/ deb file:/cdrom1/debian hamm local main non-USこれに以下の行を追加する。
deb file:/cdrom0/debian hamm contrib deb file:/cdrom0/debian hamm-jp contrib main deb file:/cdrom1/debian hamm-jp main deb file:/cdrom2/debian hamm main non-US non-free deb file:/cdrom2/debian hamm-jp contrib main non-freeなお、cdrom0のhammには、mainとnon-USというパッケージディレクトリがありそうなのだが、書くとエラーになる。


# deselectとしてdselect起動。


# cd /usr/X11R6/lib/X11/fonts/misc # gzip -d *.gz # rm -r fonts.dir # mkfontdir # cd /usr/X11R6/lib/X11/fonts/75dpi # gzip -d *.gz # rm -r fonts.dir # mkfontdir # cd /usr/X11R6/lib/X11/fonts/100dpi # gzip -d *.gz # rm -r fonts.dir # mkfontdir # cd /usr/X11R6/lib/X11/fonts/a12k12 # gzip -d *.gz # rm -r fonts.dir # mkfontdirあるいは、代わりに
# cd /usr/X11R6/lib/X11/fonts/misc # gzip -d *.gz # rm -r fonts.dir # mkfontdir # cd ../75dpi # !g # !r # !m # cd ../100dpi # !g # !r # !m # cd ../a12k12 # !g # !r # !mとかやってヒストリと相対パスを活用してもいい。

# startxとして、X-Window起動。



# mount /dev/scd0 /cdrom0 # mount /dev/scd1 /cdrom1 # mount /dev/scd2 /cdrom2を忘れないこと。
/cdrom2/special/communicator-v406-export.x86-unknown-linux2.0.tar.gzじゃないの? .deb形式になってない。

# cp /cdrom2/special/netscape/communicator-v406-export.x86-unknown-linux2.0.tar.gz /tmpとして、圧縮ファイルを/tmpにコピー。
# dselect








Press \ltreturn\rt to continue. You may need to set your XNLSPATH environment variable to "/usr/X11R6/lib/X11/nls" in order for some Motif applications to work. Press enter to continue.リターンキーを押して先に進む。。


# startx -- -dname hireso


# adduser townsuser(パスワードとか電話番号などは適当)

# xhost +localhost # su - townsuser # export DISPLAY=:0.0 # netscape &







/etc/X11/XF86Configを編集して、Option "sw_cursor"という行の先頭に#をつけてコメントアウトすることでハイレゾモードでハードウェアマウスカーソルを有効にできるらしい。ハードウェアマウスカーソルが有効になると、津軽はスムーズなマウスインテグレーションができるので、使いやすくなる。
startx -- -dname に続けて書く画面モードは、以下のオプションがあるとのこと。xtownsのソース内にXtowns.docというドキュメントを発見して、その中に書いてあった。
画面タイプ名 内容
normal 256色、640x480, 768x512, 320x240, 640x480(15KHz) 等
hireso 256色、1024x768, 768x512, 640x480, 320x240, 320x200
hireso2 256色、1152x864, 384x288
m32k 32K色、512x480
h32k 32K色、800x600
h32k2 32K色、640x480, 768x512
fc 16M色、640x480
fc2 16M色、684x511
quake 256色、320x200,640x480
viw16 VIW、 16色、1024x768
viw256 VIW、256色、800x600
viw256m VIW、256色、640x480