NetBSD/amd64上でNetBSD/amigaを動かす (ver 0.03)
対象はA1200です。A4000はmodelやkickstartのファイル名を変更すればたぶん動きます。A500も実機で動作が経験ありますがそういう難易度高めが好きな人は自力で頑張ってください。
A1200のKickstartのイメージが必須です。自分で全部やりたい人はWorkbench(AmigaOSのインストールFD)のイメージも必要です。
このページの内容は以下を参考にさせて頂きました。
https://blog.onodera.asia/2019/12/netbsdamiga-current-on.html
また旧ページを見た小野寺さんがqemu-uaeをNetBSDで動くようにしてpkgsrcにcommitしてくださいましたので、Ethernetも使えるようになりました。
これで使い勝手が格段に上がりました。大変感謝いたします。
・ Amiga500
1台所持、押入れの奥に入れたまま
NBUG 第2回例会報告を参照
68000を引っこ抜いて刺すCSA DerringerとGVP InpactというSCSIを接続していました。
MegaDemoのためにDKB MultiStartというのも持っていました。
・ Amiga4000
2台所持、両方とも故障中
これにはいろんなものをのせました。
定番ものではMacroSystem Warp Engine、MacroSystem Retina Z3、Village Tronic Ariadone、それ以外にもGVP T-Rex、Phase5 Fastlane Z3、Ingenieurbüro Helfrich Piccolo、ASDG LAN Roverを使っていました。
・ Amiga1200
2台所持、ときどき動かしている
外に持ち出すのはDCE Typhoon Mk2という68030をのせています。
映像出力にはGVP G-Lockを使ってテレビに映していますが、最近はS端子がなくて困っています。
EthernetはPCMCIAのNE2000互換が使えます。
もう1台にはPhase5 Blizzard 1260がのっていますが、強制冷却しないとすぐに熱暴走します。
Windows11 ProのHyper-V上のNetBSD 9.3_STABLEとDynabook R63/D上のNetBSD 10.0_RC2になります。Hyper-Vにはオーディオデバイスがないので音がでません。
このページの画像はHyper-V上で動作しているものをキャプチャしました。
どちらの環境もfs-uaeは3.1.66nb4、fs-uae-qemu-uaeは3.8.6です。
pkgsrc/emulators/fs-uaeとpkgsrc/emulators/fs-uae-qemu-uaeをインストールしましょう。
以下の内容で$HOME/.config/fs-uae/plugins-dirを作成します。$HOME/.config/fs-uaeがない場合は作成してください。
ディレクトリはfs-uaeを起動しても作成されませんが、fs-uae-launcherを起動したことがあれば作成されていると思います。
|
/usr/pkg/share/fs-uae/plugins |
まずは1度起動しましょう。そうすると必要なディレクトリが作成されます。
|
% fs-uae |

何か画面が表示されたらF12を押してカーソルキーで×まで移動してリターンキーを押してFS-UAEを終了します。
|
% cp ROM_image
$HOME/FS-UAE/Kickstarts/A1200_3.1.rom |
ROM_imageは入手したKickstartのROMイメージファイル名
実機では拡張スロットの形状が異なるため不可能なことを行ないます。
この作業はAmigaOSのインストール前に行なってください。
もしインストール後に行なう場合はFlashUpdates-26042002.lhaに含まれているHOW_TO_INSTALL_THE_FLASH.txtに書かれている手順になります。
(マウスの左ボタンと右ボタンを同時に押しながら電源を入れて、Boot With No Startup-Sequenceを選択して起動する)
A4000用CPUアクセラレータPhase5 CyberStorm PPCのROMファイルとアップデータを置くディレクトリを作成します。
|
% 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
以下の内容で$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 PPCは68060が搭載されているので、cpuには68060を指定します。
|
% fs-uae $HOME/FS-UAE/Configurations/cyberstorm.fs-uae |

CLI画面が起動します。
以下をAmigaOSのShellで実行します。AmigaOS起動後のShellでこの作業はできません。
|
lha.run |

|
lha_68020 x
FlashUpdates-26042002.lha |

|
PPCUpdate |

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

F12を押してカーソルキーで×まで移動してリターンキーを押してFS-UAEを終了します。
(Ctrl-Cで停止すると中断状態になりcyberstormppc.romの中身が保存されないことがあります)
Workbench
Floppyを持っていない人は一番下のNetBSD起動に進んでください。
|
% 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は入手したWorkbenchのFloppyイメージファイル名(私の手元にあるのは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
以下の内容で$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を指定します。
|
% fs-uae $HOME/FS-UAE/Configurations/
AmigaOS-install.fs-uae |

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.ADFをSTORAGE.ADFに交換する。要求される前に交換しても問題ありません。

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

INSTALL.ADFをEJECTして、Proceedをクリック

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

AmigaOSをダブルクリック

Systemをダブルクリック

Shellをダブルクリック
以下をAmigaOSのShellで実行します。
|
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 |

F12を押してカーソルキーで×まで移動してリターンキーを押してFS-UAEを終了します。
起動後はINSTALLに記載されている作業です。
インストーラ用のディレクトリを作成します。
|
% 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があれば一緒に置きます)
NetBSDのroot+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 |
以下の内容で$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 |
|
% fs-uae $HOME/FS-UAE/Configurations/NetBSD-prepare.fs-uae |

AmigaOSをダブルクリック

Toolsをダブルクリック

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

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

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

scsi.deviceをcybppc.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 Nameはswapにます。慣れれば好きな名称にしても問題ありません。
AmigaOSは入力したあとにリターンキーを押さないと確定されないので、リターンキーの入力を忘れないようにしてください。
設定が完了したらChange...をクリック

File SystemはCustom File System、
インストーラを起動するためにAutomount this partitionをチェック(インストーラを起動しないのであればチェックを外す)、
Identifierは0x4e425301、
Reserved blocks atのbeginningは0、
インストーラを起動するためにUse custom boot codeをチェック、
Number of custom boot blocksは16を入力します。
全部入力が終わったらOkをクリック

先頭のパーティションをswapの手前まで拡張してrootパーティションにします。
Bootableにチェックを入れます。
Partition Device Nameはrootにます。慣れれば好きな名称にしても問題ありません。
設定が完了したらChange...をクリック

File SystemはCustom File System、
Automount this partitionをチェック、
Identifierは0x4e425207(swapとは違うので注意)、
Reserved blocks atのbeginningは0、
Use custom boot codeをチェック、
Number of custom boot blocksは16を入力します。
全部入力が終わったらOkをクリック

Okをクリック

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

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

全体を指定します。
Bootableのチェックを外します。
Partition Device Nameはworkにします。慣れれば好きな名称にしても問題ありません。
設定が完了したらOkをクリック

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

保存されればSave Changes to Driveが網掛け状態になります。
全部のStatusがNot Changedになっていることを確認してExitをクリック

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

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

work:NDOSをクリック

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

New Volume NameはworkにしてQuick Formatをクリック

Formatをクリック

もう一回Formatをクリック

AmigaOSをダブルクリック

Systemをダブルクリック

Shellをダブルクリック
以下をAmigaOSのShellで実行します。
|
cd NetBSD xstreamtodev
--input=miniroot.fs --rdb-name=swap copy #? work: |

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

F12を押してカーソルキーで×まで移動してリターンキーを押してFS-UAEを終了します。
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以上はパーティション作成で問題が発生しますが回避は可能です。
以下の内容で$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*の定義は不要です。
|
% fs-uae $HOME/FS-UAE/Configurations/NetBSD-install.fs-uae |

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

増設ディスクがある場合はこの表示でcylinder数を覚えておきましょう。(上記例では65048)
もしroot deviceを問われたらsd0b、dump deviceはnoneを入力します。
keyboard mapはお好きなものを選択してください。

(I)nstall or (U)pgradeはiを入力、
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を押して停止しましょう。
以下の内容で$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*の定義は不要です。
|
% 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をクリック

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

Define new...をクリック

Read Configurationをクリック

Continueをクリック

Okをクリック

Okをクリック

Continueをクリック

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

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

4GBを超えるとGUIでは全体を指定できません。
NetBSDのインストール時にメモしたcylinder数 - 1をEnd Cylに入力します。
Bootableのチェックを外します。
Partition Device Nameはusrにします。慣れれば好きな名称にしても問題ありません。
設定が完了したらChange...をクリック

File SystemはCustom File System、
Automount this partitionのチェックを外す、
Identifierは0x4e425507(rootやswapと違うので注意)、
Reserved blocks atのbeginningは0、
Use custom boot codeはチェックを外します。
全部入力が終わったらOkをクリック

Okをクリック

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

保存されればSave Changes to Driveが網掛け状態になります。
全部のStatusがNot Changedになっていることを確認してExitをクリック

F12を押してカーソルキーで×まで移動してリターンキーを押してFS-UAEを終了します。
以下の内容で$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*の定義は不要です。
|
% fs-uae |
増設ディスクのnewfsやmountは自分で行なってください。
・ 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を圧縮したファイル
ver 0.01 初版
ver 0.02 pluginの設定を追加
Ethernetが使えない制限事項を削除
ver 0.03 CyberStorm PPCのFirmware Updateの注意を追記
インストール済みイメージを10.0_RC2から10.0_RC3に変更