RaSCSIを構築する

X680x0に限らず、昔のPCでハードディスクと言えばSCSIがデファクトスタンダードでした。ので今調達しようとすると大変ですし15年以上前のハードディスクを使うのもちょっとなぁ…と思っていたところラズパイでSCSIデバイスをエミュレーションするソリューションが既にあるとの事。コレを使わない手は無いですよね(笑)
まぁ構築に当たってはLinux(Rasibian)の知識が必須ですが、コレ触ってる人達にはあまり問題にならないかな?w

というわけで、GIMONSさん謹製のRaSCSIを設定していきましょう。

RaSCSIのバイナリを解凍する

さて、ラズパイにログイン出来たら端末を開いて、必要なソフトをダウンロードしましょう。
アーカイブを解凍すると色々は言っていますが、必要なファイルは./bin/rasverrypi.tar.gzに含まれるバイナリーですので、そこをさっくり解凍します。さまざまなRaSCSIハードウェア向けのバイナリが同梱されていますが、ここではfullspec版を利用することにします。

pi@rascsi:~ $ unzip rascsi.zip
pi@rascsi:~ $ cd rascsi/bin/raspberrypi
pi@rascsi:~ $ tar xvzf rascsi.tar.gz
pi@rascsi:~/rascsi/bin/raspberrypi $ ls
aibom  fullspec  gamernium  rascsi.tar.gz  standard
pi@rascsi:~/rascsi/bin/raspberrypi $ cd fullspec/
pi@rascsi:~/rascsi/bin/raspberrypi/fullspec $ ls
rascsi  rasctl  rasdump  sasidump

色々反則技かもしれませんが、RaSCSIのバイナリを直接PATHの通っているところへコピーします。

$ cd fullspec
$ sudo cp rascsi  rasctl  rasdump  sasidump /usr/bin

仮想ハードディスクのイメージファイルを用意する

ハードディスクとして使用する場合に限らず、SCSIデバイスとして利用したい場合には、イメージファイルを準備する必要があります。
1GBのイメージファイルを用意するには、下記のとおりddコマンドで空っぽのファイルを作りましょう。

今回は、うちの環境の都合で、1GBのHDDイメージを2個分作成してみました。HDDイメージファイルの置き場所は仮にホームディレクトリ直下としました。

pi@rascsi:~ $ cd ~
pi@rascsi:~ $ dd if=/dev/zero of=X68KSCSI2.HDS bs=512 count=2048000
pi@rascsi:~ u$ dd if=/dev/zero of=X68KSCSI3.HDS bs=512 count=2048000

ファイルが出来上がったら、とっとと所定の場所へ置くことにしましょうか。
(この辺は好みの問題なので、各人ご自由にどうぞ)

pi@rascsi:~ $ sudo mkdir -p /var/rascsc/hdd
pi@rascsi:~ $ sudo cp X68KSCSI* /var/rascsi/hdd

RaSCSIが単体で動くことを確認する

それでは実際にRaSCSIが動いているかを確認していきます。
先ずはコマンドラインから起動して、期待した結果が表示されるか見ていきましょう。

pi@rascsi:~ $ sudo rascsi -ID2 X68KSCSI2.HDS

このコマンドを実行すると、SCSI ID2でHDDが存在するように見えます。
以下のような表示になったらOKですので、Ctrl+Cでrascsiコマンドをいったん終了します。

SCSI Target Emulator RaSCSI(*^..^*) version 1.47(Apr 11 2020, 23:01:38)
Powered by XM6 TypeG Technology / Copyright (C) 2016-2020 GIMONS
Connect type : FULLSPEC

+----+----+------+-------------------------------------
| ID | UN | TYPE | DEVICE STATUS
+----+----+------+-------------------------------------
|  2 |  0 | SCHD | X68KSCSI2.HDS
+----+----+------+-------------------------------------

実際にX68000にHDDとして認識するかテストする

コマンドラインで直接起動してRaSCSIとして動くことを確認できたら、いよいよX68000につないでみます。
その前に呪文を唱えておきましょう。

pi@rascsi:~ $ sudo rascsi -ID2 X68KSCSI2.HDS -ID3 X68KSCSI3.HDS -ID4 rascsi/bin/x68k/RASDRIVER.HDS -ID6 BRIDGE

ここでは、3つのHDDとBRIDGEを設定しています。
BRIDGEを設定しておくと、イーサネットのドライバが使えるようになるので、忘れずに設定しておきましょう。またID4はRaSCSIに付属しているBRIDGEデバイス専用のドライバとなります。

この状態でX68000を起動すると、こんな感じに見えてきます。
うちの環境は、既に物理ドライブが2つあるので4ドライブと1デバイス見えている感じです。

FORMAT.XコマンドでSCSI装置を選択するとこんな感じです。

Human68K用デバイスドライバーのコピーとconfig.sysの書き換え

さて、HドライブにRaSCSIのX68000用ドライバが2つ入っているので、適当なディレクトリへコピーしておきます。まぁ起動ドライブのSYSディレクトリが妥当な線でしょうか。

A:copy H:¥*.* a:¥sys
A:ed config.sys

ここでは、RaSCSI用ドライバーをconfig.sysへ追記します。
1つはEthernetドライバー、もう一つはRaSCSIが動作するRaspbianの特定のディレクトを直接Human68Kに見せるドライバーです。

DEVICE=A:¥SYS¥RASETHER.SYS
DEVICE=A:¥SYS¥RASDRV.SYS /home/pi

RASETHER.SYSはイーサネットドライバでNeraidからの分岐だそうです。
ここではドライバーしか入っていないので、他に必要なプログラムたちは RetroPCさんのサイトから集めてくる必要があります。

RASDRV.SYSは、RaSCSIが動いているRaspbianのドライブを直接見せるプログラムで、起動オプションなしだと、/ディレクトリが見えます。
上記の例では/home/piがHドライブに見えます。

ここまで見えたら動作確認としては完了なので、一旦X68000を落として、コマンドラインから起動したRaSCSIもCtrl+C で終了しておきましょう。

RaSCSIをサービスとして起動するように設定する

ラズパイを再起動するたびに毎度RaSCSIを起動するのも面倒な話なので、ラズパイにインストールされているsystemdを使った自動起動を行うようにちょっとだけLinuxを触りましょう。

pi@rascsi:~ $ cd /etc/systemd/system/
pi@rascsi:~ $ sudo nano rascsi.service

ファイルの内容は以下の通りですが、環境に応じてRaSCSIの部分は書き換えてくださいね。我が家の場合、2つのドライブと1つのBRIDGEデバイスが用意されるように仕掛けてあります。

[Unit]
Description=RaSCSI
After=syslog.target

[Service]
Type=simple
WorkingDirectory=/opt/rascsi
ExecStart=/usr/bin/sudo rascsi -ID2 X68KSCSI2.HDS -ID3 X68KSCSI3.HDS -ID6 BRIDGE
TimeoutStopSec=5
StandardOutput=null

[Install]
WantedBy = multi-user.target

ファイルを更新したら、念の為おまじないを唱えて(systemctl daemon-reload)、サービスを自動起動に設定(systemctl enable)して、起動状態を確認します。

pi@rascsi:~ $ sudo systemctl daemon-reload

pi@rascsi:~ $ sudo systemctl enable rascsi.service
Created symlink /etc/systemd/system/multi-user.target.wants/rascsi.service → /etc/systemd/system/rascsi.service.

pi@rascsi:~ $ sudo systemctl start rascsi
pi@rascsi:~ $ sudo systemctl status rascsi
pi@rascsi:~ $ sudo systemctl status rascsi
● rascsi.service - RaSCSI
   Loaded: loaded (/etc/systemd/system/rascsi.service; enabled; vendor preset: 
   Active: active (running) since Thu 2021-02-11 06:12:20 JST; 7s ago
 Main PID: 28654 (sudo)
    Tasks: 3 (limit: 2062)
   CGroup: /system.slice/rascsi.service
           ├─28654 /usr/bin/sudo fullspec/rascsi -ID2 /var/rascsi/hdd/X68KSCSI2
           └─28655 fullspec/rascsi -ID2 /var/rascsi/hdd/X68KSCSI2.HDS -ID3 /var

 2月 11 06:12:20 rascsi systemd[1]: Started RaSCSI.
 2月 11 06:12:21 rascsi sudo[28654]:     root : TTY=unknown ; PWD=/opt/rascsi ;
 2月 11 06:12:21 rascsi sudo[28654]: pam_unix(sudo:session): session opened for

ここまで来たら、一度Rasphbianを再起動して、X68000からSCSI HDDが見えるか確認できれば完了です。

長文お付き合いくださいましてありがとうございました。

%d人のブロガーが「いいね」をつけました。
Amazon プライム対象