■Windows11(64bit)でLUB-SC2+SDT-9000を使う方法はないのか?
結論から書くと条件付きで使えました。条件とは「等速再生ができないのでWaveDATによる音楽再生には向かないが、内容のキャプチャはできる」という点です。等速再生ができないボトルネックがLUB-SC2側にあるのか、使用したPCのスペックを上げれば解決する問題なのか現時点では不明です。

【使用機材】
・ノートパソコン HP ProBook450G3 Windows11Pro 64bit(21H2 build 22000.918)
・SCSIインターフェース Logitec LUB-SC2 USB-SCSI変換ケーブル
・SCSIテープドライブ SONY SDT-9000


Adaptec AHA-2940シリーズ(AIC-78xx)やSYMBIOS LOGICの53C875等を使ったSCSIインターフェースカードには探せば64bit版ドライバが存在するので、情報を集めてインストールすれば64bit版Windows10/11でそのまま動作するようです。等速以上でDDSDATを使いたい場合はそれらを使うと良いでしょう。ただし古い規格であるPCI-BUSが付いたマザーボードが必要です。PCI-BUSが無い現在の一般的なデスクトップ機やノートパソコンでも使えるUSB-SCSI変換ケーブルでは唯一RATOCの製品(U2SCX)が64bit版Windowsでそのまま使えますが極めて高価です。

LUB-SC2の場合64bit版のデバイスドライバが無いのが最大の問題で、これは解決できませんでした。SCSI ID=0で使う「USBディスクモード」であればWindowsの標準ドライバでUSB大容量記録装置として認識するのでMO/HDDは使えますが、テープドライブを使うための「SCSIエミュレーションモード」用のドライバが無いのでSDT-9000は動きません。前回の記事で書いたVista用のドライバを解凍してDPinst.exeを実行しても「64bit版のインストーラーが必要です」と表示が出て先に進めません(互換性のトラブルシューティングで過去のOSを設定しても同じ)。よってそのままWindows11で使うことは残念ながら不可能です。

■仮想32bit環境の構築
次善の策として、Windows11上に仮想PC環境を作って32bit版のWindowsを動かすという方法があります。現時点でWindows11に対応する比較的メジャーな仮想PC環境は下記の3つです。いずれも試してみました。

1.Windows HYPER-V
2.Oracle VM VirtualBox
3.VMware

Windows HYPER-VはWindowsの標準機能で実行速度も速く利用の敷居が低いものの、ホストPCのUSBポートに接続した機器をゲストOSから直通で使う「USBパススルー」の機能が無く今回の用途では使えませんでした。

VirtualBoxとVMwareは個人の非商用利用であれば無償で使える仮想環境で、どちらもUSBパススルーの機能があります。VirtualBoxではSDT9000DATToolやWaveDATを動作させるまではできましたが、高確率でLUB-SC2がSCSIのタイムアウトエラーでハングアップしてしまい、対策を試みたものの解決できませんでした(後述)。そんなわけで以下はVMwareで使う説明になります。

仮想環境では実機よりも実行速度が遅くなり、メモリやディスク容量などのリソースも余分に要りますのでホストPCにはそこそこハイスペックな製品が必要です。今回使用したHP ProBook450G3はCorei7-6500U(2.5GHz)、RAM16GB、SSD512GBx2、USB3.0x4portという構成です。

【大雑把な手順】
1.Windows10(32bit)のインストール用イメージ(ISO)を作る
2.VMware Workstation Playerをダウンロードしてインストールする
3.共有フォルダを作る
4.LUB-SC2のVista用ドライバをインストールする
5.正常に動作させるための各種設定を行う
6.動作検証

■Windows10のISOパッケージを作る
【参考記事】
Windows 10 の ISO ファイルを作成する

必要なのは32bit版のWindowsです。Windows7か8の32bit版でも良いと思いますがXPや2000のようにもっと古いOSだとファイルシステムの互換性や新しめのデバイス認識で問題が出ると思います。USB3.0のドライバが標準実装されたのがWindows8以降です。令和4年時点だとWindows10は現行のOSですが、10年経つとだいぶ古くなっているはずで、ましてやそれ以前のOSは・・・という気がします。

ISOファイルが出来たら自分でわかるフォルダに保存しておきます。

■VMware Workstation Playerをダウンロードしてインストールする
【参考記事】
VMwareにWindows10をインストールする

VMwareのダウンロード先からWindows用のVMware Workstation Playerのインストーラーをダウンロードしてきます。個人の非商用利用であればVMware社への登録は不要でダウンロードできます。今回利用させていただいたのは

VMware(R) Workstation 16 Player(16.2.4 build-20089737)

です。インストーラーディスクイメージファイルに前項で保存しておいたWindows10のISOファイルを指定します。インストールにあたってのポイントは以下の通りです。

・インストール中はネットワークを切っておくほうが良い
ネットにつないだままだとWindows10のインストーラーがアップデートを読みに行きかなり余計に時間がかかります。また、ローカルドメインが作れずメールアドレスが必要になります。ここで作る仮想環境はDAT専用で他の作業はしないと割り切って下さい。LANやWi-Fi接続を切らずとも、仮想マシン設定でネットワークアダプタの「接続済み」のチェックを外しておけば良いです。

・仮想ディスクはシステムが入っているC:ドライブとは別のSSD/HDDに作成したほうが良い
高速化のためです。遅いDATを使うのに高速化は不要と思われるかもしれませんが、DDSDATを安定動作させるために高速化が必要です。容量はDATをキャプチャして1~2本毎にホストPC側へデータを移動させる使い方なら最小設定容量の60GBで足ります。別ドライブに作成しないと使えないという事はありませんでホストOSと同じドライブに作っても普通に動きますが、仮想ディスクを置くドライブに空き容量の余裕が無いとゲストOSがクラッシュしますので容量が圧迫されないように注意します。

・メモリは8GB以上、CPUコア数も増やす
ミニマムな環境で良いと考えず、高速で動かせるようにする必要があります。メモリは8192MB以上を指定します。VMwareやVirtualBoxではインストール時のコア数でゲストOSが構成されるのでシングルコアにしてインストールすると後から増やす必要が出た時の手動作業が大変煩雑です。プロセッサコア数は最大の4コアにして必要で無ければ後から減らす方向で。


・USBはホストPCのポートに合わせて最大速度で
USBの互換性はUSB3ポートがある新しいPCであればUSB3.1を選びます。LUB-SC2+SDT-9000はUSBの速度が遅いと不安定になる傾向があり、USB2.0しか搭載していないPCやXP等の古いOSを使いたい場合を除き、LUB-SC2の対応速度に合わせてUSB2.0や1.1を選ぶ必要はありません。なお、VMwareとWindowsのインストール中はLUB-SC2を抜いておきます。

・サウンドカードは後から設定できる
サウンドカードは高速化のチェックに有用です(音切れを無くす方向へ設定を詰める)が、後から設定ができるのでインストール中は「接続済み」のチェックを外しておけます。初回起動時に起動音の再生で割り込み処理が多発して重くなるのを防げます。

インストール後の話ですが、WaveDATの場合は音の再生にDirectSoundやASIOが指定できるので、USBパススルーでPCM2704などの枯れたDAをつないで鳴らしたほうがVMwareのエミュレーションでオンボードのサウンド機能を鳴らすより軽かったです。

・不要なポートは追加しない
シリアルポートやパラレルポート、汎用SCSIポートは不要なので追加しません。

・Windows10の不要な機能はできるだけ切る
インストール中に出てくる使用状況の送信などの6項目も不要なので全部オフにします。

【参考記事】
VMware Playerはこのホスト上でネストされた仮想化をサポートしていません
【VMware】仮想マシンの動作を軽くする方法

■共有フォルダを作る
【参考記事】
VMware Toolsをインストールする
VMware Playerの共有フォルダの設定方法 | 仮想マシンソフト

インストールができたら、ゲストOS側のCD/DVDにVMware ToolsのISOを読み込んでインストールします。続いてホストOS側とファイルのやり取りをするための共有フォルダを作ります。クイックアクセスに登録するかデスクトップにショートカットを作成しておくと良いでしょう。

■LUB-SC2のVista用ドライバをインストールする
前回の記事を参考に、ゲストOS上にLUBSC2_WVD100.EXEを展開してインストールします。Windows10のインストール時にネットワークを切り忘れた場合はアップデートでセキュリティレベル(DEP)が上がって展開ができません。その場合は管理者実行したコマンドプロンプトからLUBSC2_WVD100.EXEを実行するなどして下さい。DPInst.exe自体も署名がないので2回警告が出ますが無視してドライバ2つ(LUBSC22K.SYSとLUBSC2X2.SYS)をインストールします。一度ゲストOSを再起動してからSCSI ID=1〜6に設定したSDT-9000とLUB-SC2をUSBポートに挿すと画面上に検出したUSBデバイスをホストPCとゲストPC(仮想マシン)のどちらに認識させるかのメニューが出ますので、ゲストPCのOSを選択するとLUB-SC2とテープドライブがデバイスマネージャーに認識されるはずです。


【参考記事】
VMware Workstation Pro16仮想マシンでUSBデバイスをパススルーする方法

■正常に動作させるための各種設定を行う
さて、この状態でSDT-9000はLUB-SC2のSCSIエミュレーションモードで接続されているはずなのでSony Tape ToolやWaveDATのSPTIモードで操作できるはずです。しかし重いので動作を軽くする高速化と、LUB-SC2ドライバのハングアップを防ぐための電源の設定、SCSI要求ブロック(SRB)のタイムアウト値の設定を行います。

ゲストPCの動作速度を上げる
・ゲストPCのWindows右クリック→システム→システムの詳細設定→詳細設定→パフォーマンス
→視覚効果
「パフォーマンスを優先する」にチェック
→詳細設定→仮想メモリ
「ページングファイル無し」にする

仮想環境の中で仮想メモリを使うのは速度的に無駄、ということで(仮想マシンのメモリ量設定を増やすほうが良い)。以下は更にパソコンに詳しい人向けの処置ですが良く見かける設定です。

"C:\Users\(ユーザー名)\Documents\Virtual Machines\(仮想マシン名)\(仮想マシン名).vmx"
をテキストエディタで開き、末尾に下記のメモリ設定を書き加えてディスクI/Oのアクセスを軽減する設定にします。

MemTrimRate = "0"
mainMem.useNamedFile = "FALSE"
sched.mem.pshare.enable = "FALSE"
prefvmx.useRecommendedLockedMemSize = "TRUE"
MemAllowAutoScaleDown = "FALSE"

ただし、ホストPCの実メモリが少ない場合は逆効果になる可能性があるそうです。

【参考記事】
Windows11を見据えたVMware Workstation 16 Playerの設定メモ

DAT専用環境であればネットワークや印刷関連など不要なサービスが多数ありますのでネット上の記事を参考に「コンピューターの管理→サービスとアプリケーション→サービス」から不要なサービスを止めておくとさらに動作が軽くなります。

【参考記事】
【2021年最新】Windows10 不要サービス停止で高速化・軽量化!

電源の設定
DATキャプチャ中は丸2時間以上PC操作をしなくなるのでスリープ等で電源が落ちてしまうのを防ぐ設定です。ホストOS・ゲストOSの両方に設定します。

・Windows右クリック→電源オプション→スリープ
次の時間が経過後、PCをスリープ状態にする(電源に接続時)を「なし」にする。
→電源の追加設定→追加プランの表示で高パフォーマンスを選択
→プラン設定の変更を開き、
コンピューターをスリープ状態にする「適応しない」
→詳細な電源設定の変更を開き、
次の時間が経過後ハードディスクの電源を切る「なし」
次の時間が経過後スリープする「なし」
USB設定→USBセレクティブサスペンドの設定「無効」

以上の設定ができたら「変更を保存」します。

LUB-SC2のハングアップ防止設定
・Windows管理ツールからレジストリエディターを開きます。
左側の階層メニューから以下のリンクを開きます。

コンピューター\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\disk
IoTimeoutValue 初期値の60(10進数)から180(10進数)ヘ変更
TimeOutValue 初期値の65(10進数)から180(10進数)ヘ変更

設定値は60~190の範囲で単位は秒数です。


デフォルトの60/65のままだとイベントビュアーのWindowsシステムログに

「デバイス \Device\Scsi\LUBSC2X21 のドライバーは、操作がなかったためのポートのタイムアウトを検出しました。関連付けられたバスはすべて、条件を解除するためにリセットされました。」

というエラーを残しSCSIバスがリセットされてLUB-SC2がハングアップします。



ハングアップ時は回転ヘッドが停止するのでデッキ内のテープが擦られ続けることはありませんが、仮想環境を再起動してLUB-SC2を挿しなおすまでSCSI操作が一切通らなくなります(SDT-9000を利用中のアプリの終了もできなくなります)。

IoTimeoutValueはインターフェースのタイムアウト値で、ストレージ装置のタイムアウト値であるTimeOutValueの設定値に優先する、という説明を見かけました。私の環境でいろいろと試した限りでは、どちらか片方の設定値だけでも85以上になっていればハングアップ現象は出ないようでしたが、この値はホストPCの性能によりけりの可能性があります。(訂正)どちらか片方だけの設定でも良さそうですが値は150〜180位あったほうが良いようです。ホストPCの性能やSCSIターミネーターの相性も関係する可能性が高いです。ゲストOSにLUB-SC2+SDT-9000しかつながない場合は最大値の190にしていても特に実害は無いと思います。

ちなみにVirtualBox(VirtualBox-6.1.36-152435-Win)+Extention Packではこの値を変更してもなんら変化が見られずLUBSC2X2のハングアップが起こり続けました。それ以外には特に不具合が無かったのですがVirtualBoxでの運用を諦めたのはこの一点によるものです。VMware Workstation Playerでは変更後明らかにハングアップしなくなり設定が有効であることが確認できました。

デバイスマネージャー上の各デバイスの認識IDは

・Logitec LUB-SC2 USB-SCSI Adapter
 デバイス NINJAUSB\VID_0789&PID_002B\6&1b28487a&0&00

・Logitec LUB-SC2
 デバイス USB\VID_0789&PID_002B\5&12c8f4c0&0&2

・SONY SDT-9000 SCSI Sequential Device
 デバイス SCSI\Sequential&Ven_SONY&Prod_SDT-9000&Rev_12.2\7&28bab05b&0&000400

となっていましたので、PIDからレジストリ内を検索すると他にもいくつか設定項目を発見できます。

LUBSC2x2(タイムアウト値を設定する箇所なし)
コンピューター\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\NINJAUSB\VID_0789&PID_002B\7&20cde9cf&0&00

LUBSC22K(タイムアウト値を設定する箇所なし)
コンピューター\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\VID_0789&PID_002B\6&30c5d09c&0&6

SDT-9000
コンピューター\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\SCSI\Sequential&Ven_SONY&Prod_SDT-9000&Rev_12.2\7&28bab05b&0&000400\Device Parameters

この中にある、

SrbTimeoutDelta 初期値:300(10進数)

はSRB値なので関係すると思い増やしてみました。しかしこの値が秒数だとするとデフォルトでIoTimeoutValue/TimeOutValueの最大値を上回っているので意味が無く、ここは初期値のままで良さそうです。


変更後レジストリエディタを終了したら念の為ゲストOSを再起動してLUB-SC2を挿し直します。

■動作検証


検証にはSDT-9000DATToolとWaveDATを使用し、60分、90分、120分のDATを30本ほどキャプチャしてファイル化しました。取り込み速度はABS Time読みの実測でDUMPDATが1分を1分5~6秒、WaveDATの音声同時再生無しで1分を1分23~24秒でDUMPDATのほうが高速です。VirtualBoxで試した時はDUMPDATが1分を1分7~8秒とVMwareよりごく僅かに低速でしたが、これは設定で高速化をした場合の結果で、USBポート設定を2.0にしていたりと設定で高速化を試みない初期インストール状態だと1分を3分30秒かけて読んでいましたので、やはり仮想環境の高速化は大変重要です。よりハイスペックで高速なホストPCを使うともしかすると等速再生が可能なのかもしれません。個人的に過去DAT資産のキャプチャ・WAVファイル化が目的でリアルタイムで音を再生する必要が無いのでこれで実用ですが、音楽鑑賞用や録音用に等速再生が必要な場合、LUB-SC2を仮想環境で動かす方法は向いていません。WaveDATで音声を再生すると、等速以下なので音が繰り返しになってブチブチとノイズが乗ります。

テープの冒頭部分にあまりにも読み取りエラーが多いと、DUMPDATでは最後まで取り込みはするものの有効なデータが残らない場合がありました。WaveDATではマニュアル記載の設定にしたがいエラーを無視する設定が有用ですが、読み取り精度が悪いテープを音声再生すると再生が止まったりゲストOSが不安定化してリセットがかかったりする場合がありました。この場合LUBSC2X2のバスリセットエラーは出ませんが、dwm.exeがUnkown Hard Errorを出し、画面が何度か明滅してConnected Devices Platformユーザーサービスが予期せぬ原因により終了しました、というエラーが記録されています。等速再生ができない状態で読み取り精度が悪いと再生負担が大きいようです。ヘッド清掃で改善する場合もありますが、中に何が入っているかをちょっとだけ確認する場合を除き音声同時再生無しでファイル化という使い方にとどめておいたほうが良いです。

【参考記事】
[VMWare] SCSIディスクのタイムアウトの件
Hitachi Dynamic Link Manager Software ユーザーズガイド(HP-UX用)4.1.6 I/Oタイムアウト値について
データの破損とディスク エラーのトラブルシューティング のガイダンス
SCSI ミニポート ドライバーのレジストリ エントリ
Windows用iSCSIサービスを最適化する方法

Windows における USB- よくあるご質問(Usbstor/USAStor/USB123の違い)
WindowsでディスクのI/O優先度を設定する方法
VistaのタクススケジューラーとLow Priority I/O

インターネット上で参考にさせていただいた情報源の皆様に感謝いたします。

LUB-SC2と同様に32bit版のドライバしかない他のUSB-SCSI変換ケーブルでも、VMwareを使って同様にWindows11で動作させられる可能性があります。Microtech製の変換ケーブルにはかつて64bit版ドライバが存在したという情報がネット上にありますが、現在ダウンロード可能なものはどれもアヤシイです。今どき需要が無いのはわかりますが本当は64bit版ドライバが欲しいところ。

(がんくま)

【関連記事】
令和4年のDDSDAT(1)Windows10(32bit)+LUB-SC2+SDT-9000