NetBSD/amd64上でNetBSD/amigaを動かす (ver 0.03)

1.     対象機種

対象はA1200です。A4000modelkickstartのファイル名を変更すればたぶん動きます。A500も実機で動作が経験ありますがそういう難易度高めが好きな人は自力で頑張ってください。

A1200Kickstartのイメージが必須です。自分で全部やりたい人はWorkbench(AmigaOSのインストールFD)のイメージも必要です。

 

2.     謝辞

このページの内容は以下を参考にさせて頂きました。

https://blog.onodera.asia/2019/12/netbsdamiga-current-on.html

 

また旧ページを見た小野寺さんがqemu-uaeNetBSDで動くようにしてpkgsrccommitしてくださいましたので、Ethernetも使えるようになりました。

これで使い勝手が格段に上がりました。大変感謝いたします。

 

3.     所持機

  Amiga500

1台所持、押入れの奥に入れたまま

NBUG 第2回例会報告を参照

68000を引っこ抜いて刺すCSA DerringerGVP InpactというSCSIを接続していました。

MegaDemoのためにDKB MultiStartというのも持っていました。

  Amiga4000

2台所持、両方とも故障中

これにはいろんなものをのせました。

定番ものではMacroSystem Warp EngineMacroSystem Retina Z3Village Tronic Ariadone、それ以外にもGVP T-RexPhase5 Fastlane Z3Ingenieurbüro Helfrich PiccoloASDG LAN Roverを使っていました。

  Amiga1200

2台所持、ときどき動かしている

オープンソースのつどい2002 in 名大の報告を参照

外に持ち出すのはDCE Typhoon Mk2という68030をのせています。

映像出力にはGVP G-Lockを使ってテレビに映していますが、最近はS端子がなくて困っています。

EthernetPCMCIANE2000互換が使えます。

もう1台にはPhase5 Blizzard 1260がのっていますが、強制冷却しないとすぐに熱暴走します。

 

4.     実施環境

Windows11 ProHyper-V上のNetBSD 9.3_STABLEDynabook R63/D上のNetBSD 10.0_RC2になります。Hyper-Vにはオーディオデバイスがないので音がでません。

このページの画像はHyper-V上で動作しているものをキャプチャしました。

どちらの環境もfs-uae3.1.66nb4fs-uae-qemu-uae3.8.6です。

 

5.     準備

l  fs-uaeのインストール

pkgsrc/emulators/fs-uaepkgsrc/emulators/fs-uae-qemu-uaeをインストールしましょう。

 

l  プラグインのパス設定

以下の内容で$HOME/.config/fs-uae/plugins-dirを作成します。$HOME/.config/fs-uaeがない場合は作成してください。

ディレクトリはfs-uaeを起動しても作成されませんが、fs-uae-launcherを起動したことがあれば作成されていると思います。

/usr/pkg/share/fs-uae/plugins

 

l  ディレクトリの作成

まずは1度起動しましょう。そうすると必要なディレクトリが作成されます。

% fs-uae

 

何か画面が表示されたらF12を押してカーソルキーで×まで移動してリターンキーを押してFS-UAEを終了します。

 

l  Kickstartのコピー

% cp ROM_image $HOME/FS-UAE/Kickstarts/A1200_3.1.rom

ROM_imageは入手したKickstartROMイメージファイル名

 

l  CyberStorm PPCROMイメージ作成

実機では拡張スロットの形状が異なるため不可能なことを行ないます。

この作業はAmigaOSのインストール前に行なってください。

もしインストール後に行なう場合はFlashUpdates-26042002.lhaに含まれているHOW_TO_INSTALL_THE_FLASH.txtに書かれている手順になります。

(マウスの左ボタンと右ボタンを同時に押しながら電源を入れて、Boot With No Startup-Sequenceを選択して起動する)

 

A4000CPUアクセラレータPhase5 CyberStorm PPCROMファイルとアップデータを置くディレクトリを作成します。

% touch $HOME/FS-UAE/Kickstarts/cyberstormppc.rom

% mkdir -p $HOME/FS-UAE/Hard\ Drives/AmigaOS/AmiNet

% mkdir $HOME/FS-UAE/Hard\ Drives/ENV

 

以下のファイルをダウンロードして$HOME/FS-UAE/Hard\ Drives/AmigaOS/AmiNetに置きます。

(AmigaOSの事実上の標準アーカイバーはlhaです)

http://aminet.net/util/arc/lha.run

http://aminet.net/driver/other/FlashUpdates-26042002.lha

 

l  コンフィグ作成

以下の内容で$HOME/FS-UAE/Configurations/cyberstorm.fs-uaeを作成します。

amiga_model = A1200

kickstart_file = A1200_3.1.rom

cpu = 68060

accelerator = cyberstorm-ppc

accelerator_rom = cyberstormppc.rom

accuracy = -1

chip_memory = 2048

zorro_iii_memory = 16384

save_disk = 0

floppy_drive_speed = 0

hard_drive_0 = AmigaOS/AmiNet

hard_drive_1 = ENV

CyberStorm PPC68060が搭載されているので、cpuには68060を指定します。

 

l  起動

% fs-uae $HOME/FS-UAE/Configurations/cyberstorm.fs-uae

 

CLI画面が起動します。

 

以下をAmigaOSShellで実行します。AmigaOS起動後のShellでこの作業はできません。

lha.run

 

 

lha_68020 x FlashUpdates-26042002.lha

 

 

PPCUpdate

 

これで$HOME/FS-UAE/Kickstarts/cyberstormppc.romの中身が作成されてA1200でもSCSIが使えるようになります。

 

l  停止

F12を押してカーソルキーで×まで移動してリターンキーを押してFS-UAEを終了します。

(Ctrl-Cで停止すると中断状態になりcyberstormppc.romの中身が保存されないことがあります)

 

Workbench Floppyを持っていない人は一番下のNetBSD起動に進んでください。

 

l  AmigaOSのインストール準備

% mkdir $HOME/FS-UAE/ Floppies/wb3.1

% cp install_image $HOME/Floppies/wb3.1/install.adf

% cp workbench_image $HOME/Floppies/wb3.1/workbench.adf

% cp locale_image $HOME/Floppies/wb3.1/locale.adf

% cp extras_image $HOME/Floppies/wb3.1/extras.adf

% cp fonts_image $HOME/Floppies/wb3.1/fonts.adf

% cp strage_image $HOME/Floppies/wb3.1/storage.adf

install_image, workbench_image, locale_image, extras_image, fonts_image, storage_imageは入手したWorkbenchFloppyイメージファイル名(私の手元にあるのは6枚組)

 

以下のファイルをダウンロードして$HOME/FS-UAE/Hard\ Drives/AmigaOS/AmiNetに置きます。

http://aminet.net/disk/misc/clicknot373.lha

http://aminet.net/driver/other/040_060Libs.lha

http://aminet.net/util/libs/ixemul-020s.lha

 

6.     AmigaOSのインストール

l  コンフィグ作成

以下の内容で$HOME/FS-UAE/Configurations/AmigaOS-install.fs-uaeを作成します。

amiga_model = A1200

kickstart_file = A1200_3.1.rom

cpu = 68040

accuracy = -1

chip_memory = 2048

zorro_iii_memory = 16384

save_disk = 0

floppy_drive_speed = 0

floppy_drive_count = 4

floppy_drive_0 = wb3.1/install.adf

floppy_drive_1 = wb3.1/workbench.adf

floppy_drive_2 = wb3.1/locale.adf

floppy_drive_3 = wb3.1/extras.adf

floppy_image_0 = wb3.1/install.adf

floppy_image_1 = wb3.1/workbench.adf

floppy_image_2 = wb3.1/locale.adf

floppy_image_3 = wb3.1/extras.adf

floppy_image_4 = wb3.1/fonts.adf

floppy_image_5 = wb3.1/storage.adf

hard_drive_0 = AmigaOS

AmigaOS 3.1をインストールした状態では68060に対応していないので68040を指定します。

 

l  起動

% fs-uae $HOME/FS-UAE/Configurations/ AmigaOS-install.fs-uae

 

l  AmigaOSのインストール

Install3.1をダブルクリック

 

Installをダブルクリック

 

Englishをダブルクリック

 

Proceedをクリック

 

Install Release 3.1をクリック

 

選択済みのNovice UserのままでProceed with Installをクリック

 

選択済みのEnglishのままでProceedをクリック

 

プリンタは使わないので全部未選択の状態でProceedをクリック

 

日本語配列は未対応なので全部未選択の状態でProceedをクリック

 

Fonts diskを要求されたらF12を押してFS-UAEのメニューを開いて、

カーソルキーでLOCALE.ADFまで移動してリターンキーを押します。

フロッピーイメージの選択が表示されるのでFONTS.ADFまでカーソルキーで移動してリターンキーを押します。

AmigaOSはフロッピーの交換を自動的に認識するので、Proceedをクリックしなくても勝手にインストールが再開します。

待っていると同様にStorage diskを要求されるのでEXTRAS.ADFSTORAGE.ADFに交換する。要求される前に交換しても問題ありません。

 

インストールが完了したら、

INSTALL.ADFEJECTして、Proceedをクリック

 

再起動してこの画面になればAmigaOSのインストールは完了です。

そのまま続けてツールをインストールします。

 

l  ツールのインストール

AmigaOSをダブルクリック

 

Systemをダブルクリック

 

Shellをダブルクリック

 

以下をAmigaOSShellで実行します。

cd AmiNet

copy lha_68020 C:lha

lha x 040_060Libs.lha

copy 68040new.library Libs:68040.library

copy 68060.library Libs:

lha x clicknot373.lha

copy ClickNot /WBStartup

copy ClickNot.info /WBStartup

lha x ixemul-020s.lha

copy Sys/libs/ixemul020.library Libs:ixemul.library

copy Sys/libs/ixnet020.library Libs:ixnet.library

 

l  停止

F12を押してカーソルキーで×まで移動してリターンキーを押してFS-UAEを終了します。

 

7.     NetBSD/amigaのインストール準備

起動後はINSTALLに記載されている作業です。

 

l  インストーラ準備

インストーラ用のディレクトリを作成します。

% mkdir $HOME/FS-UAE/Hard\ Drives/AmigaOS/NetBSD

 

インストールしたいバージョン(1.3以降)の以下のファイルをダウンロードして上記ディレクトリに置きます。

amiga/installation/miniroot/miniroot.fs

amiga/installation/misc/xstreamtodev

amiga/binary/sets/base.tgz

amiga/binary/sets/etc.tgz

amiga/binary/sets/kern-GENERIC.tgz

(他にもインストールしたいdistribution setsがあれば一緒に置きます)

 

l  ディスクイメージ作成

NetBSDroot+swap用ディスクイメージを作成します。(以下の例では4000MB)

% echo -n "rdsk" > $HOME/FS-UAE/Hard\ Drives/NetBSD-root+swap.hdf

% dd if=/dev/zero of=$HOME/FS-UAE/Hard\ Drives/NetBSD-root+swap.hdf oseek=4 bs=1m count=4000

Kickstartの制限で起動ディスクは4GB未満にしましょう。

 

distribution setsをコピーするディスクイメージを作成します。(以下の例では400MB)

% echo -n "rdsk" > $HOME/FS-UAE/Hard\ Drives/work.hdf

% dd if=/dev/zero of=$HOME/FS-UAE/Hard\ Drives/work.hdf oseek=4 bs=1m count=400

 

l  コンフィグ作成

以下の内容で$HOME/FS-UAE/Configurations/NetBSD-prepare.fs-uaeを作成します。

amiga_model = A1200

kickstart_file = A1200_3.1.rom

cpu = 68060

accelerator = cyberstorm-ppc

accelerator_rom = cyberstormppc.rom

accuracy = -1

chip_memory = 2048

zorro_iii_memory = 1048576

save_disk = 0

floppy_drive_speed = 0

hard_drive_0 = AmigaOS

hard_drive_1_controller = scsi

hard_drive_1_type = rdb

hard_drive_1 = NetBSD-root+swap.hdf

hard_drive_2_controller = scsi

hard_drive_2_type = rdb

hard_drive_2 = work.hdf

 

l  起動

% fs-uae $HOME/FS-UAE/Configurations/NetBSD-prepare.fs-uae

 

l  パーティション作成

AmigaOSをダブルクリック

 

Toolsをダブルクリック

 

水平スクロールバーで右方向へ移動

 

HDToolBoxをクリックしてマウス右ボタンを押しながらプルダウンメニューのIconsからInformation...を選択

 

SCSI_DEVICE_NAME=scsi.deviceの行をクリックすると下の欄で編集できるようになります。

 

scsi.devicecybppc.deviceに変更してSaveをクリック

 

HDToolBoxをダブルクリック

 

ひとつ目のディスクが選択されている状態でChange Drive Typeをクリック

 

Define New...をクリック

 

設定は何も変更せずにRead Configurationをクリック

 

Continueをクリック

 

設定は何も変更せずにOkをクリック

 

Okをクリック

 

Continueをクリック

 

同じ手順をふたつ目とみっつ目のディスクにも行ないます。

 

ひとつ目のディスクが選択されている状態でPartition Driveをクリック

 

Advanced Optionsをチェックします。

後ろ側のパーティションをサイズが小さいほうをswapにします。(上記の例では約1GB)

swapにインストーラのminirootを書き込んで起動するので、Bootableにチェックを入れます。インストーラを起動しないのであればチェックを外します。

Partition Device Nameswapにます。慣れれば好きな名称にしても問題ありません。

AmigaOSは入力したあとにリターンキーを押さないと確定されないので、リターンキーの入力を忘れないようにしてください。

設定が完了したらChange...をクリック

 

File SystemCustom File System

インストーラを起動するためにAutomount this partitionをチェック(インストーラを起動しないのであればチェックを外す)

Identifier0x4e425301

Reserved blocks atbeginning0

インストーラを起動するためにUse custom boot codeをチェック、

Number of custom boot blocks16を入力します。

全部入力が終わったらOkをクリック

 

先頭のパーティションをswapの手前まで拡張してrootパーティションにします。

Bootableにチェックを入れます。

Partition Device Namerootにます。慣れれば好きな名称にしても問題ありません。

設定が完了したらChange...をクリック

 

File SystemCustom File System

Automount this partitionをチェック、

Identifier0x4e425207(swapとは違うので注意)

Reserved blocks atbeginning0

Use custom boot codeをチェック、

Number of custom boot blocks16を入力します。

全部入力が終わったらOkをクリック

 

Okをクリック

 

ふたつ目のディスクが選択されている状態でPartition Driveをクリック

 

パーティションをひとつだけ作成するのでDelete Partitionでひとつ削除します。

 

全体を指定します。

Bootableのチェックを外します。

Partition Device Nameworkにします。慣れれば好きな名称にしても問題ありません。

設定が完了したらOkをクリック

 

ディスクを順番に選択してSave Changes to Driveをクリック

 

保存されればSave Changes to Driveが網掛け状態になります。

全部のStatusNot Changedになっていることを確認してExitをクリック

 

l  再起動

F12を押してカーソルキーでRESET AMIGAまで移動してリターンキーを押します。

 

カーソルキーでHARD RESETまで移動してリターンキーを押します。

 

l  インストーラ書き込みとdistribution setsのコピー

work:NDOSをクリック

 

マウス右ボタンを押しながらプルダウンメニューのIconsからFormat Disk...を選択

 

New Volume NameworkにしてQuick Formatをクリック

 

Formatをクリック

 

もう一回Formatをクリック

 

AmigaOSをダブルクリック

 

Systemをダブルクリック

 

Shellをダブルクリック

 

以下をAmigaOSShellで実行します。

cd NetBSD

xstreamtodev --input=miniroot.fs --rdb-name=swap

copy #? work:

 

(#?AmigaOSのワイルドカードで全部に該当)

 

l  停止

F12を押してカーソルキーで×まで移動してリターンキーを押してFS-UAEを終了します。

 

8.     NetBSD/amigaのインストール

l  増設ディスク作成(必要な場合)

NetBSDの増設用ディスクイメージを作成します。(以下の例では8000MB)

% echo -n "rdsk" > $HOME/FS-UAE/Hard\ Drives/NetBSD-usr.hdf

% dd if=/dev/zero of=$HOME/FS-UAE/Hard\ Drives/NetBSD-usr.hdf oseek=4 bs=1m count=8000

AmigaOSの制限で4GB以上はパーティション作成で問題が発生しますが回避は可能です。

 

l  コンフィグ作成

以下の内容で$HOME/FS-UAE/Configurations/NetBSD-install.fs-uaeを作成します。

amiga_model = A1200

kickstart_file = A1200_3.1.rom

cpu = 68060

accelerator = cyberstorm-ppc

accelerator_rom = cyberstormppc.rom

accuracy = -1

chip_memory = 2048

zorro_iii_memory = 1048576

save_disk = 0

floppy_drive_speed = 0

hard_drive_0_controller = scsi

hard_drive_0_type = rdb

hard_drive_0 = NetBSD-root+swap.hdf

hard_drive_1_controller = scsi

hard_drive_1_type = rdb

hard_drive_1 = work.hdf

hard_drive_2_controller = scsi

hard_drive_2_type = rdb

hard_drive_2 = NetBSD-usr.hdf

network_card = a2065

増設ディスクがない場合はhard_drive_2*の定義は不要です。

 

l  起動

% fs-uae $HOME/FS-UAE/Configurations/NetBSD-install.fs-uae

 

起動時のオプションに-Aがあるとfs-uaeでは画面の左が切れて見えないので外します。

 

増設ディスクがある場合はこの表示でcylinder数を覚えておきましょう。(上記例では65048)

もしroot deviceを問われたらsd0bdump devicenoneを入力します。

keyboard mapはお好きなものを選択してください。

 

(I)nstall or (U)pgradeiを入力、

Proceed with installation? [n]yを入力、

Available are wd0 wd1. Look at Which? [skip this step]はリターンキーを入力、

Which disk is the root disk ?sd0を入力します。

 

Device name? [RETURN if you already entered all devices]はリターンキーを入力、

Ok to configure wd0b as a swap device? []sd0bを入力、

If you made any mistakes, you may edit this now. Edit? [n]はリターンキーを入力、

Configure the network? [y]nを入力します。

 

Edit the fstab? [n]はリターンキーを入力します。

Use verbose listing for extractions? [y]yでもnでもお好きなほうを入力してください。

 

Install from (f)tp, (t)ape, (C)D-ROM, (N)FS or local (d)isk?dを入力、

Is the file-system with the install sets already mounted? [n]はリターンキーを入力、

Which is the disk with the installation sets? [abort]wd1を入力、

Partition? [d]はリターンキーを入力、

Which filesystem type? [ffs]adosを入力します。

たぶんインストーラのバグで/mnt2にマウントしておきながらbusyだと言ってエラーになりますので、再度行ないます。

Extract more sets? [n]yを入力、

Install from (f)tp, (t)ape, (C)D-ROM, (N)FS or local (d)isk?dを入力、

Is the file-system with the install sets already mounted? [n]yを入力、

What mount point are the sets located in? []/mnt2を入力します。

 

distribution setsのコピーで用意したファイルが表示されます。

Continue extraction [y]?はリターンキーを入力、

File name[s] (or all) [base.tgz]?allを入力します。

(展開にはすごく時間がかかります)

 

Continue extraction [n]?はリターンキーを入力、

Extract more sets? [n]?もリターンキーを入力、

What timezone are you in ['?' for list] [GMT]?は日本にお住まいならAsia/Tokyoを入力、

Do you want to replace the already installed kernel by the kernel on the installation filesystem? (y/n) [n]はリターンキーを入力、

Should a boot block be installed? [y]もリターンキーを入力、

Boot command? [netbsd -ASn2]netbsd -Sn2を入力します。

最後にhaltコマンドで終了して、F12を押して停止しましょう。

 

9.     NetBSD/amigaのインストール後処理

l  コンフィグ作成

以下の内容で$HOME/FS-UAE/Configurations/NetBSD-postinstall.fs-uaeを作成します。

amiga_model = A1200

kickstart_file = A1200_3.1.rom

cpu = 68060

accelerator = cyberstorm-ppc

accelerator_rom = cyberstormppc.rom

accuracy = -1

chip_memory = 2048

zorro_iii_memory = 16384

save_disk = 0

floppy_drive_speed = 0

hard_drive_0 = AmigaOS

hard_drive_0_priority = 10

hard_drive_1_controller = scsi

hard_drive_1_type = rdb

hard_drive_1 = NetBSD-root+swap.hdf

hard_drive_2_controller = scsi

hard_drive_2_type = rdb

hard_drive_2 = NetBSD-usr.hdf

増設ディスクがない場合はhard_drive_2*の定義は不要です。

 

l  起動

% fs-uae $HOME/FS-UAE/Configurations/NetBSD-postinstall.fs-uae

 

AmigaOSをダブルクリック

 

Toolsをダブルクリック

 

水平スクロールバーで右方向へ移動

 

HDToolBoxをダブルクリック

 

ひとつ目のディスクが選択されている状態でPartition Driveをクリック

 

Advanced Optionsをチェックします。

Change...をクリック

 

Automount this partitionのチェックを外し、

Use custom boot codeのチェックも外します。

全部入力が終わったらOkをクリック

 

Bootableは自動的にオフになります。

Okをクリック

 

ひとつめのディスクが選択されている状態でSave Changes to Driveをクリック

 

l  増設ディスクのパーティション作成

増設ディスクを選択してChange Drive Typeをクリック

 

Define new...をクリック

 

Read Configurationをクリック

 

Continueをクリック

 

Okをクリック

 

Okをクリック

 

Continueをクリック

 

増設ディスクが選択されている状態でPartition Driveをクリック

 

パーティションをひとつだけ作成するのでDelete Partitionでひとつ削除します。

 

4GBを超えるとGUIでは全体を指定できません。

NetBSDのインストール時にメモしたcylinder - 1End Cylに入力します。

Bootableのチェックを外します。

Partition Device Nameusrにします。慣れれば好きな名称にしても問題ありません。

設定が完了したらChange...をクリック

 

File SystemCustom File System

Automount this partitionのチェックを外す、

Identifier0x4e425507(rootswapと違うので注意)

Reserved blocks atbeginning0

Use custom boot codeはチェックを外します。

全部入力が終わったらOkをクリック

 

Okをクリック

 

増設ディスクが選択されている状態でSave Changes to Driveをクリック

 

保存されればSave Changes to Driveが網掛け状態になります。

全部のStatusNot Changedになっていることを確認してExitをクリック

 

l  停止

F12を押してカーソルキーで×まで移動してリターンキーを押してFS-UAEを終了します。

 

10.  NetBSD起動

l  コンフィグ作成

以下の内容で$HOME/FS-UAE/Configurations/Default.fs-uaeを作成します。

amiga_model = A1200

kickstart_file = A1200_3.1.rom

cpu = 68060

accelerator = cyberstorm-ppc

accelerator_rom = cyberstormppc.rom

accuracy = -1

chip_memory = 2048

zorro_iii_memory = 1048576

save_disk = 0

floppy_drive_speed = 0

hard_drive_0_controller = scsi

hard_drive_0_type = rdb

hard_drive_0 = NetBSD-root+swap.hdf

hard_drive_1_controller = scsi

hard_drive_1_type = rdb

hard_drive_1 = NetBSD-usr.hdf

network_card = a2065

増設ディスクがない場合はhard_drive_1*の定義は不要です。

 

l  起動

% fs-uae

増設ディスクのnewfsmountは自分で行なってください。

 

11.  配布物

   NetBSDを起動する$HOME/FS-UAE/Configurations/Default.fs-uae

   10.0_RC3をインストールした$HOME/FS-UAE/Hard\ Drives/NetBSD-root+swap.hdfを圧縮したファイル(140MB)

   パーティションを作成しただけの$HOME/FS-UAE/Hard\ Drives/NetBSD-usr.hdfを圧縮したファイル

 

12.  改訂履歴

ver 0.01 初版

ver 0.02 pluginの設定を追加

Ethernetが使えない制限事項を削除

ver 0.03 CyberStorm PPCFirmware Updateの注意を追記

    インストール済みイメージを10.0_RC2から10.0_RC3に変更