Debian GNU/Linux 徹底入門 初版付属CD-ROMからFM TOWNSエミュレータ津軽にLinuxをインストールする
by CaptainYS 2026/06/06

はじめに

ここでは、武藤健志, "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なんてそんなもんです。

Debian GNU/Linux 2.0.33をFM TOWNSエミュレータ津軽にインストールする手順

では、行ってみましょう! 多分かかる時間は3時間ぐらい。

(1) FreeTOWNSOS HD Imageからディスクイメージを作成

まず、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 このコマンドで行ける。

(2)津軽を起動、必要なファイルをCD-ROMからコピー、 Linuxインストーラを起動

以下のコマンドを実行。

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インストーラを起動。

(3) インストーラ起動



リターンキーを押して先に進む。

(4) HD0パーティション作成

/dev/sda1をSwap、/dev/sda1をRootパーティションにしよう。

リターンキーを押す。

プロンプトが現れる。

ここで出てくる数字は、セクタ数。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


(5) スワップパーティションの初期化と使用


リターンキーを押す。

リターンキーを押す。

Noを選んでリターンキーを押す。Yesでもいいけど時間がかかる。

リターンキーを押す。

(6) Linuxパーティションの初期化


リターンキーを押す。

リターンキーを押す。

Noを選んでリターンキーを押す。Yesでもいいけどものすごく時間がかかる。

リターンキーを押す。

ルートとしてマウントしますか?にはYes。

(7) OSカーネルとモジュールのインストール


リターンキーを押す。

メディアはCDROMを選んでリターンキーを押す。

ドライブは /dev/scd0 を選んでリターンキーを押す。

じゃあ、内蔵CDからインストールするにはどうするかというと、/dev/medamaを選べばいいことになっているのだが、これを選ぶとエラーが出て進まない。どうも、/dev/medamaが見えないらしい。
メニューから[シェルの実行]を選んでリターンキーを押して、
# cat /proc/devices
とすると、ブロックデバイス15番がCD-ROMドライブ、[TOWNS_CD]になっている。
# mknod /dev/medama b 15 0
とコマンドをタイプすると、/dev/medamaが内蔵CD-ROMドライブとして見えるようになる。が、SCSI CDドライブにマウントしてしまえばこの手順を実行しなくても/dev/scd0で見えるので気にしなくていい。

listを選んでリターンキーを押す。

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

(8) デバイスドライバモジュールの設定





ここは何もしなくてもいいらしい。そのままリターンキーを押す。

(9) ネットワークの設定


ホスト名は適当

リターンキーを押す。

ドメイン名も適当

リターンキーを押す。

IPは10.0.2.15

ネットマスクはそのまま255.255.255.0

リターンキーを押す。

Yesを選んでリターンキーを押す。

Gatewayが10.0.2.2
defaultは10.0.2.1となってるから、最後の数字を1に。

[別のシステムが...]を選んでリターンキーを押す。

DNSは10.0.2.2

リターンキーを押す。

接続はeth0

(10)基本システムのインストール



[cdrom]を選ぶ。

[/dev/scd0]を選ぶ。


[list]を選ぶ。

今度はbase2_0.tgzがどこにあるかとか聞いてきたんだが、これも/instmnt/TOWNSでいいらしい。
[/instmnt/TOWNS]を選ぶ。

(11) 基本システム設定



アメリカに住んでるけどとりあえずJapanにしとく。

(12) システム再起動



再起動すると、津軽OSのORICONのプロンプトが起動する。

ここでいったん津軽を終了してハードディスクイメージのバックアップを取ることを強く推奨。

今度は、インストールディスクとバイナリディスクが必要。Netscape 4.06をインストールしたかったらボーナスディスクも必要。昔だとCDドライブを3台も同じコンピュータにつなげるなんてことはしなかったけど、津軽だったらバーチャルにSCSI CDドライブを3台つなげることもぜんぜん可能。 インストールディスク、バイナリディスク、ボーナスディスクはSCSI CDとしてID 4,5,6にマウントしてしまえばいい。

(13)Linux起動

以下のコマンドを実行。 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起動コマンドが書いてある。

(14)パッケージのインストール


root でログイン。

適当なパスワードを設定。


Normal user accountを作るかどうかは、あとで決めればいいんじゃないかな。
Shadow passwordもなくてもいいと思う。
というか、1999年のLinuxなんだからセキュリティは無いものと思って使わないといかん。大事なファイルをセーブしたり、人に見られると困る情報を入力したりは絶対しないこと。


パッケージは、とりあえずスキップしようと思うんだが、yでもNでも強制的にdselectが起動してしまう。

dselect起動。

CD-ROMをマウントしないといかんのでいったん [Q]uit

さっき作ったパスワードでログイン。

以下のコマンドをタイプ。
# 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起動。

[A]ccessを選ぶ。


Do you wish to change it? にはy
URL:file:/cdrom0/debian
Distribution:hamm-jp/main/binary-towns/
(この最後のスラッシュが必要。つけないとComponentsを聞いてくる。)
Would you like to add another source? には y

URL: file:/cdrom1/debian
Distribution: hamm
Components: local main non-US
Would you like to add another source? には N

メニューで[U]pdateを選ぶとパッケージがアップデートされる。このステップは省略不可。

[S]electを選ぶと、

インストールするパッケージの選択画面の説明。これがよくわからない。これを全部おぼえろだと?
仕方ないのでスペースキーを押す。

とりあえず、TOWNS関係のバイナリをインストールした方がいい。
/キーを押してキーワード TOWNS を検索。(なお、\キーで次のマッチする項目に移動らしい)

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

そういう場合は、まずスペースを押して選択画面に移動。

そして、何を変更したのかを表示してくれるので、ここは単にリターンキーを押す。変更をAcceptするという意味らしい。
なお、リターンキーを押してから戻るまで数秒待つ。キーが反応無いと思って連打しないように。

選ぶと*がつく。

全部選んだら次は、xfntを探す。/を押して、xfntを検索。

xfnt100, xfnt75, xfntbase を選ぶ。
余計なフォントを選ぶと/etc/X11/XF86Configを編集して使わないフォントを削除してもdselectを実行するたびに復活させられて面倒(多分削除を選べばいいんだろうけど)なのでこの3個だけ選ぶ。



あとa12k12を探して追加。
そして、リターンキー。

[I]nstallを選ぶ。
どうやってもdependency errorは出るが無視。

Do you want to continue? [Y/n]にY
xtowns選ぶだけでおそるべき数のモジュールがインストールされるんですけどー。
長いインストールが始まる。

(15)長いインストール

このステップが長い!全自動で進んでくれればいいのに、途中でYes/Noを聞いてきたり、リターンキーを押さないと先に進まないところがあったり。

LILOをルートパーティション(/dev/sda1)にインストールしますか? [Yes]にYes
起動時の画面は、80x30
他にも OS (TOWNS-OS等)を登録しますか? [No] は No
津軽OSのパーティションが/dev/sd?になってなかったから指定のしようがない。

ルートパーティションを起動可能にしますか? [Yes] は No にしておく。
津軽OSから起動できるし、どうもLILOの挙動が不審で原因が不明なので。
起動ドライブはルートパーティションのあるドライブになっていますか? [Yes] は Yes

Towns システムソフトウェアCD-ROMから漢字フォントを変換してインストールしますか? (y/n) [N] は N
このフォント無くてもX-Window起動できる。
コンセプトとしては、完全フリーの互換ROM、フリーの津軽OS、DebianのCDだけでセットアップするということなんで。

smail設定ってどうすりゃいいのかわからん。とりあえずリターンキーを押すとデフォルトが選ばれるようだ。
わからんからとりあえずデフォルト、デフォルトで進めて行く。
What is the 'visible' mail name of your system?
これもリターンキー押しておく。
Does this system have any other names?
これもリターンキー押しておく。

If a smarthost is available please enter its name.
これはnoneをタイプしないと先に進めないようだ。

Which user account(s) should system administrator mail go to?
rootとタイプ。

もういいよ。y

もういい加減にしてほしい。リターンキーを押す。

Send a test message now? には n
Noだ。No!

Do you want to change anything? には n
もういいです。

american or british。
どっちでもよすぎる。

Would you like english to be the default dictionary? [y/N] y

Would you like xdm to be started at boot time? (y/n) [n] n

Do you want to make the Towns X server the default? (y/n) [y] y

lynxのインストールでエラーがあるらしい。
Press enter to continue.

もうDefaultでいいです。

リターンキーを押すしかない。

ついに終了!
[Q]uitを選ぶ。

X-Window起動するか?

しない。実は、原因は、TownsのX serverは、pcf.gz形式に対応していない。pcf.Zかpcfにしなくてはならない。
が、ここまで長かったので、一度シャットダウンしてバックアップを取ることを強く推奨。

# shutdown -h now
何度か試したとき、lilo-townsを/dev/sda1にインストールして、それを起動パーティションにしたはずなんだが、なぜか起動パーティションが変わって無かったことがあった。バグってるのかもしれない。
だとしても津軽OSパーティションとCDから起動できるので問題ない。

(16)パッケージディレクトリの全指定

バックアップを取ったらふたたび同じコマンドで起動。以後はこのコマンドで起動できる。
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"
xinitを実行したときに出るエラーは、
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/"
ソースコードがあったので、津軽のデバッガで大立ち回りで原因を究明したところ、xtownsのxserverは.pcf.gz形式に対応していない。直そうと思ったら自力でビルドしなくてはならないらしいが、どう修正していいかわからないし、どうビルドすればいいかわからないから、ここはフォントを展開してしまう。

rootでログインしたら、まずはCD-ROMのマウント
# mount /dev/scd0 /cdrom0
# mount /dev/scd1 /cdrom1
# mount /dev/scd2 /cdrom2
この後、いくつかパッケージをインストールする必要があるが、当時はDVD-ROMなどというものは無く、CD3枚の複数のディレクトリにパッケージが分かれてしまっている。dselectのインターフェースでは、ひとつタイプミスがあると全部最初からやりなおし。たくさんあるパッケージソースを全部dselectのインターフェースで入力していくのは非人間的過ぎる。
そこで、非人間的度がやや低いemacsエディタを使って直接設定ファイルを編集してしまった方が、少なくとも一文字間違えたら最初から全部タイプしなおしという拷問は回避できる。僕の世代はこういう苦行をいくつもくぐりぬけてきたんだけどな。
# emacs /etc/apt/sources.list

手順(12)で基本的なパッケージをインストールするために、既にふたつのディレクトリを追加したので、開くと二つのソースが既にある。
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というパッケージディレクトリがありそうなのだが、書くとエラーになる。

タイプしたら、Ctrlキーを押しながら、
X, S, X, C
の順にキーを押す。Ctrlは押したまま。Ctrl-X,Sでセーブ。Ctrl-X,Cでemacs終了。
1991年、大学に入学した当時、既にFM TOWNSのWINK2でばりばりCプログラミングに慣れていた僕は、大学の授業でこのテキストエディタを教えられたとき、UNIXの世界はなんとFM TOWNS界から遅れているのか、と思ったものだった。
入学前は、大学のWorkstationはさぞかし先進的なシステムなんだろうと思ってたら、FM TOWNSの方がずっと良かった。
あの頃UNIXやってる人たちってコンピュータゲームとかコンピュータ音楽なんてくだらないと思ってたみたいだもんね。
しかも傲慢!一度、メディアセンター(図書館)にうちからモデムで大学のターミナルに接続する方法を聞きに行ったら「あのね、君たちみたいな人には言ってもわからないの。わかる?」と言われた。メディアセンターに聞きに来いというから行ったのに。きっとその後もつまんない人生を歩んだんだろうな、あの人は。
UNIXの人に何か聞きに行くと怒られるという記憶しか残ってないんだが。
ああいう人にはならないようにしようと思った。はっ、ということは教育的効果はあったということか。

セーブしたら、
# deselect
としてdselect起動。

[U]pdateを選ぶ。
終わったらとりあえず[Q]uitでいったんdselect終了。

(17)X-Windowが使えるようにする

次にX-Windowが使えるようにする。X-Windowが起動しなかった原因は、xtownsがなぜか.pcf.gzフォーマットのフォントに対応していなかったから。.pcf形式には対応しているから、圧縮を解除してしまえばいい。

以下のコマンドをタイプ。最初のmiscをやってしまったら、↑キーを4回押すと前のコマンドのサイクルのヒストリに戻るので、タイプを短くできる。
# 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起動。

ついにX-Window起動!
Linux JE4のFM TOWNS用XFree86ではハードウェアマウスカーソルを使っていたからそのままマウスインテグレーションが使えたのだが、なぜかこのバージョンではソフトウェアでマウスカーソルを書いている。それだと津軽がマウスカーソル位置を把握できなくてそのままではマウスが使えないので、マウスの中ボタンを押して、Differential Mouse Integrationモードにすると使える。

とりあえず、起動まで確認したら、コンソールモードに戻る。
戻るには、画面の背景部分で左ボタンを押し、押したままExitを選んで、ボタンを放す。

なお、ここも一度バックアップを取るにはいいタイミングなので、シャットダウンしてバックアップしてもいいけど、 シャットダウンしたら再起動後は、
# mount /dev/scd0 /cdrom0
# mount /dev/scd1 /cdrom1
# mount /dev/scd2 /cdrom2
を忘れないこと。

(18)Netscape Communicator 4.06のインストール

Debian GNU/Linux 徹底入門の初版本CD-ROMには、Netscape Communicator 4.06バイナリが収録されている。本文の説明309ページを見ると、
「4. netscape4パッケージをインストールします (libc5、libg++27、xlib6、xpm4.7といった古いバージョンのパッケージも同時にインストールします)。」
とある。だが、パッケージって、
/cdrom2/special/communicator-v406-export.x86-unknown-linux2.0.tar.gz
じゃないの? .deb形式になってない。
それに、netscape4-jpというパッケージもあるというのだが、同じディレクトリには入ってない。
試しに展開してみると、ns-installというスクリプトがあったんでこれを実行してみると、なんか始まって終わった。が、起動しようとすると、あのパッケージが無い、このパッケージが無いと言ってくる。
すべて入れてみたのだが、クラッシュする。津軽は限定的にgdbも使えるので、調べたところ PR_Yield という関数でクラッシュしているらしい。
ひょっとするとxtownsではnetscape非対応なのかもしれない。1999年の本だし、チェックが甘くて何か欠けているのかもしれない。
ほぼあきらめたのだが、ん? パッケージ? 実は、この圧縮されたnetscapeと、dpkgのパッケージを組み合わせるということか。と、気が付くのにほぼ丸二日。
インストールできたが、Page Faultでクラッシュする。やはりだめか、と、思ったが、試しにハードディスクイメージをSDカードに焼いて、SCSI2SDを使って実機FM TOWNS MXで実行したところ、netscapeが起動してしまったので、なんてこった、これは津軽のCPUコアの問題だ、と気が付いてからは早かった。
津軽のCPUコアが、LEAVE命令の例外を処理してなかったので、それに対応して、FICOM(m32int)命令に対応して、無事津軽でもNetscapeが起動できるようになった。

まず、
# cp /cdrom2/special/netscape/communicator-v406-export.x86-unknown-linux2.0.tar.gz /tmp
として、圧縮ファイルを/tmpにコピー。
カットバッファを共有できてないんで、ファイル名はタイプミスしてるかもしれないので、スクリーンショットの方が正しい。TABキーを使って補間しないと絶対スペルを間違える。
そして、dselect起動。
# dselect

[S]electを選んで、

キーの説明はスペースで飛ばして、

/キーを押して、netscapeキーワードでパッケージ検索。

+キーでnetscape4, netscape4-ja を選ぶ。なお、netscape4を追加するとき、Dependency言ってくるけど、単にリターンキーでacceptすればok。netscape3を選ばないように。
選んだらリターンキーで戻る。

そして[I]nstall。

Do you want to continue? には Y
こうすると、netscape4パッケージは、/tmpにある圧縮ファイルを勝手に見つけて適切なディレクトリにNetscapeをインストールしてくれる。
今のなんでも簡単にオンラインでダウンロードできてインストールできる時代の人にしてみると、なんでこんな難しいのかと思うだろうけど、これでも昔のUNIXよりはよくなった。
昔のUNIXはソースコードをダウンロードしてmakeするという苦行があったんだけど、下手にコンパイラのバージョンに依存するような書き方をする人がいたり、UNIXにもBSDとかSolarisとか微妙な違いがあったりして、まず滅多にmakeがそのまま成功することは無かった。
今でこそLinuxが広まったし、macOSやiOSは背後でFree BSDが走っているわけだけど、当時UNIXやってた人たちは、広く一般に普及させないと駆逐されるという危機感がまったく無かったね。
あ、そうか。結局駆逐されなかったわけか。何事も一喜一憂してもしょうがないということだな。
Solarisだけは絶滅しちゃったかな。あれってまだあるのかな? まったく興味がないもんだからよく知らないんだけど。


いろいろ言ってくるんだが、
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.
リターンキーを押して先に進む。。

終わったら[Q]uitして、

今度はハイレゾモードでX-Windowを起動。
# startx -- -dname hireso

rootだとnetscape実行させてくれないので、ユーザを作る。

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

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


起動に成功!


Window右上のアイコンでサイズを変更できる。

無事、俳優の阿部寛さんのWebサイト表示に成功。なんでも今月(2026年6月)いっぱいでhttpsになってしまうということで、以後は古いWeb Browserからは見れない。
残念だったのは、Power 9000対応版xtownsが無かったこと。このソースコードを見れば、TOWNS用Power 9000がどこのI/Oにマップされているのか、どこのメモリブロックにマップされているのか解明できるかと思ったのに。
1995年のLinux JE4のドキュメントによるとTOWNSのPower 9000対応版XFree86が存在したことになっている。一応なぜか手元に一枚あるから本当かどうか試せないこともないんだけど。
Debian LinuxにはTOWNS用XFree86のソースコードがついているから見ればわかる。しかしPower 9000に対応してない。
Linux JE4にはPower 9000対応TOWNS用XFree86がついてきた。しかしソースコードは無かった。
うまくいかんもんだね。
PC/AT用のPower 9000ドライバはあるからそれを調べればある程度わかるのかもしれないけど。いずれは津軽でサポートしたいところなんだが。
なお、↑の手順で作ったHDイメージをSCSI2SDを使って実機で起動したらそのまま起動した。他のSCSIエミュレータ(Blue SCSIとかZulu SCSIとか)でも使えると思う。ネットワークの設定とかは変更しないとだめだけど。

6/7追記1 DHCP Client Daemonのインストール

実機に持って行ってしまうとCDドライブ3台はつながってないと思うので、実機に持って行くなら、DHCP Client Daemonをインストールしておいた方が多分いい。
まず、dselectでdhcpdcを選んで+キーで追加。

そして、戻って[I]nstall。途中interfaceの選択では、デフォルトの[eth0]を選ぶ。

こうしておくと、作ったHDイメージで実機MX + 実REX3586でDHCPが使えてネットワークに接続できることを確認した。
あるいは、実機に持って行くことを考えている場合は、大きなディスクイメージにして、パッケージをすべてハードディスクイメージに書いておいた方がいい鴨しれない。

6/7追記2 ハードウェアマウスカーソル

なんでJE4より新しいバージョンのはずなのにハードウェアマウスカーソルが使えないんだろう?と思ったら、どうも実機だと機種によって動かない場合があるらしい。そのため、デフォルトでハードウェアマウスカーソルを無効化したらしい。ハードウェアマウスカーソルの使い方は富士通は公開しなかったから、解析して対応せざるを得なかったので解析しきらなかったんだろう。そりゃ仕方ない。
ただ、デフォルトオフになっているだけで、/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