Not only is the Internet dead, it's starting to smell really bad.:2019年04月09日分

2019/04/09(Tue)

[Hardware] 2019年にもなってParallel SCSI機器が増えるという地獄

先日 Minolta DiMAGE Scan Multi F-3000を買ったことでParallel SCSI HBA増設したマシンが必要になってしまった。

以前 今時のマシンで Parallel SCSI 機器を使うという記事で、今なら Adaptec ASC-29320LPEが鉄板でHBAだけなら津田梅子そしてケーブル込みでも渋沢栄一でお釣りがくるという記事を書いたけど、こっちはすでに家族用のマシンに刺さってて Nikon COOLSCAN III(LS-30)が繋がってるので抜くわけにもいかない。

そんでもう一枚買うかなぁと思ったんだが、この記事から3年も経ち当時より中古のタマ数がめっきり少なくなって値上がり傾向なのだ、よって貧乏人にはつらい。

ただ自分用のマシンはスモールファクターでない自作機で、貧乏人ゆえに未だPCIスロットが存在するマザボ使ってる強みがあるので、ジャンク箱の中にあった懐かしの AHA-2940刺して動かすことにした。

ただWindows 7のEOLも近づいてきてWindows 10への移行も視野に入れるとAHA-2940ってPCIスロット抜きにしてももはや鉄板じゃないのよね。

このHBAは64bit化のあおりでWindows Vistaの時点でIn-box driverからも削除されており、Microsemiが配布するWindows 7 32bit用ドライバを別途入れる必要がある(64bitで使うには更に.infの書換も必要)。 そしてこれが困ったことに未署名ドライバなのでWindows 7なら警告無視するだけでいいけどWindows 10相手だと非常にめんどくさいのだ。 ドライバ署名の強制を無効化にしたところで大型アップデート降ってくるたびに環境ぶっ壊されるからね…

ということで20年休まずにチクタクしてくれたAHA-2940も残念ながら窓から投げ捨てろリスト入りですな、おじいさんと一緒に100年くらい動いて欲しかったんだけどね。

ジャンク箱にはもう一枚 ASC-29160も転がっててこいつは署名付きの64bitドライバー存在するんだけど、SCSI BIOS上でテストすると問題ないにも関わらずドライバの初期化に失敗する、多分マザーボードとの相性だと思うんだけど…

つーわけでどっかジャンク屋に寄る機会があった時に IO-DATA SC-UPCILogitec LHA-521の中古が100円くらいで転がってたら欲しいのよね、これも古いカードでドライバ配布はWindows XPまでなんだけれどチップがSYMBIOS 53C875、よってWindows Vistaの頃までIn-box driverとして署名付きの64bit OS対応ドライバーがちゃんと存在したのだ。

検索するとVistaと同世代のWindows Server 2008 R2のIn-box driverからブッコ抜いたの再配布してる人もいるようだけど、さすがにこれライセンス違反よね。

まぁワイはNT4からアップグレードライセンス買い続けてるので自分のインストールメディアからブッコ抜くからセーフ、なんならVistaインスコして認識させたのちに→7→10とアップデートすりゃ誰も文句はつけられないのである。

ちなみにSYMBIOS 53C815チップ採用の IO-DATA SC-PCIはこのドライバでは 動かなかったので注意、NT4用のドライバは同じsymc8xx.sysだったから.inf書き換えれば動かすくらいはと思ったけど 「ドライバーはこのプラットフォーム用ではありません」エラーでダメだった。

(追記) 動いた、次のエントリで。

[Hardware] IO-DATA SC-PCI(SYMBIOS 53C815)をWindows 7やWindows 10で使う(32/64bit両対応)

前の記事でSYMBIOS 53C815チップ採用の IO-DATA SC-PCIはVista/Server 2008のドライバでも動かないと書いちゃったんだけど、エラーメッセージで気づくべきだったんだけど32bit OSに64bitのmini port driverインストールしようとしてサービスが起動できなかっただけだった、かなり恥ずかしいミス。

つーことで簡単に手順を、まずはWindows VistaあるいはWindows Server 2008をインストールする、あるいは DISMコマンドを使ってインストールDVDの中のイメージアーカイブ(install.wim)をマウントし

%SYSTEMROOT%\System32\DriverStore\FileRepository\symc8xx.inf_cea423c2

以下にあるsymc8xx.infとsymc8xx.sysをWindows 7/10の適当な場所にコピーする、symc8xx.infはx86/amd64共通だけどsymc8xx.sysはアーキテクチャ毎に異なるバイナリファイルなので注意。

そんで.infの書換自体は非常にかんたん、UTF-16LEの編集ができるエディタで以下のとおり53C815の情報を足すだけ。

$ diff -u symc8xx.inf.orig symc8xx.inf
--- symc8xx.inf.orig    2019-04-09 20:15:09.028356100 +0900
+++ symc8xx.inf 2019-04-09 20:15:18.213881500 +0900
@@ -32,21 +32,25 @@
 [LSI]

 [LSI.NTx86]
+%DevDesc3% = SYMC8XX_Inst, PCI\VEN_1000&DEV_0004
 %DevDesc5% = SYMC8XX_Inst, PCI\VEN_1000&DEV_0006
 %DevDesc6% = SYMC8XX_Inst, PCI\VEN_1000&DEV_000C
 %DevDesc8% = SYMC8XX_Inst, PCI\VEN_1000&DEV_000F

 [LSI.NTia64]
+%DevDesc3% = SYMC8XX_Inst, PCI\VEN_1000&DEV_0004
 %DevDesc5% = SYMC8XX_Inst, PCI\VEN_1000&DEV_0006
 %DevDesc6% = SYMC8XX_Inst, PCI\VEN_1000&DEV_000C
 %DevDesc8% = SYMC8XX_Inst, PCI\VEN_1000&DEV_000F

 [LSI.NTamd64]
+%DevDesc3% = SYMC8XX_Inst, PCI\VEN_1000&DEV_0004
 %DevDesc5% = SYMC8XX_Inst, PCI\VEN_1000&DEV_0006
 %DevDesc6% = SYMC8XX_Inst, PCI\VEN_1000&DEV_000C
 %DevDesc8% = SYMC8XX_Inst, PCI\VEN_1000&DEV_000F

 [Control Flags]
+ExcludeFromSelect = PCI\VEN_1000&DEV_0004
 ExcludeFromSelect = PCI\VEN_1000&DEV_0006
 ExcludeFromSelect = PCI\VEN_1000&DEV_000C
 ExcludeFromSelect = PCI\VEN_1000&DEV_000F
@@ -98,6 +102,7 @@
 [Strings]
 ; localizable
 LSI = "LSI Logic"
+DevDesc3 = "LSI Logic 815XS PCI SCSI Adapter; 53C815 Device"
 DevDesc5 = "LSI Logic 8600SP PCI SCSI Adapter; 53C860 Device"
 DevDesc6 = "LSI Logic 8951U, 8952U PCI SCSI Adapter; 53C895 Device"
 DevDesc8 = "LSI Logic 875XS|D, 2280X PCI SCSI Adapter; 53C875, 53C876 Device"

あとはデバイスマネージャーを開いて「不明なデバイス」を選択してドライバーの更新を実行してこいつらを指定すればWindows 7でもSC-PCIが使えるようになる。 いちおう手元ではMinolta DiMAGE Scan Multiがガシガシ動いてるので他のデバイスでも問題ないと思う。

Windows 10の場合は残念ながら.infを書き換えてしまったことで署名とハッシュが一致しなくなるので、 ドライバ署名の強制を無効にしたりテストモードで起動する必要がある。なので基本的にはAHA-2940と同様に窓から投げ捨てろリストですやね。ドライバインストール時にSmartScreenをオフでインストールするかPowerShellのAdd-DriverコマンドレットなりDISMコマンドでインストールすればおk。

Windows 10環境で署名なしドライバのメンテナンスという無駄な努力をしたくない人は.inf書換の不要なコントローラー乗った製品を探すことっすね。 ちなみにsym8xx.infを読むとコントローラーが53C860, 53C895, 53C875, 53C876搭載ならそのまま動くようなので

あたりの製品を探すんですかね、まぁでも過去記事書いたように予算不足とかでない限りAdaptec ASC-29320LPE買うのが一番だと思う。