00この文書について
これまで別々の記事だった実機記録・全動作記録・導入キット取扱説明書・貸出機セットアップ手順の 4 本を、この 1 本にまとめた。今後の案内はこの文書を基準にする。
手っ取り早く導入したいだけなら 03 章(手順A) または 04 章(手順B) に飛んでよい。01〜02 章は前提知識、05 章以降は「なぜそうなるか」「うまくいかない時どうするか」「実測でどう確かめたか」の裏付けと深掘りである。
★手順は2系統ある — 取り違えないこと
配布物には性格の異なる 2 つがある。どちらも最終的にやっていること(署名なしドライバーの登録)は同じだが、対象の PC が違う。
| 手順A・配布キット | 手順B・貸出機セットアップ | |
|---|---|---|
| 対象 | これから使う一般の PC(BitLocker の有無を問わない) | BitLocker で暗号化された貸出機(社内の特定機) |
| 入手 | Google ドライブからダウンロード | 対象 PC のデスクトップに導入済み |
| ファイル数 | check / step1〜3 / restore(5 本) + 1〜6 の番号付きも同梱(2026-08-24〜) | 1〜6 の番号付き(6 本) |
| BitLocker 対応 | 無し(対象機に無いため不要) | あり(1・2・4 番が回復キー表示・一時停止・復帰を担う) |
| 参照 | 03 章 | 04 章 |
手順Bは BitLocker の一時停止・復帰という、手順Aには無い作業を挟む。手順Aの利用者が手順Bのファイル名を探して迷わないよう、この章で先に地図を渡しておく。逆に貸出機(手順B)の対象者は、02・06・09・10 章の技術的な背景は手順Aの導入キットと共通なので、そのまま参照してよい。
01先に結論・警告
付属 USB メディア(または配布キット)のドライバーを 2 本とも入れる。USBDMX WIM7-64.exe が Jungo WinDriver 6 の本体、Martin Universal USB-DMX DriverInstall.exe がデバイス用 INF。片方だけでは付け替わらない。
デバイス INF(2006 年・R&D International NV 製)に署名が無い。そのため導入時だけドライバー署名の強制を解除する必要がある。これは Windows 11 固有の話ではなく、Windows 10 x64 でも同じ。ただし要求されるのは登録の一度きりで、済めば通常起動のまま使い続けられる(詳細は06 章)。
LightJockey 2.7 本体から、両ポートへ実際のショーの DMX を出力。ドングル無し・Detect DMX Hardware 抜きで通った。同じ機体でメディアプレイヤーの差し替えも通り、音まで出た。証拠は07 章。
LightJockey 2.110.5 / Elation 2.200 は Demo mode。WIBU のライセンスドングルが無く、DMX ハードウェアの行が全てグレーアウトする。ライセンス不要で動くのは2.7 系まで(詳細は12 章)。
★迷いやすい 3 点(先に読む)
1. BitLocker の回復キーは「無い」のではなく「手元に無い」だけ(手順Bのみ関係)
回復キーは、いま動いている Windows から読み出せる。manage-bde -protectors -get C: の 1 行、または手順Bの 1 番のファイルで表示される。写真を撮ってから先へ進む。普通に電源を入れて起動するときは回復キーは要らない(TPM が自動解錠)。求められるのは「回復オプション」経由の起動だけで、署名解除の手順はまさにその経路を通る。
2. ドライバーのインストールは「その PC の前で」行うこと
途中で「このデバイス ソフトウェアをインストールしますか? 発行元: Jungo LTD」という確認窓が出る。リモート接続(SSH・RDP 等)から実行すると、この窓が誰にも見えない画面に出て、固まったように見える。実際に固まる(15 秒ほど CPU が反応しなくなる)。機械の前で押せば見える。押した瞬間 Jungo が「信頼された発行者」に入り、以後この確認は出なくなる。
3. LightJockey の Setup > Hardware Setup は開かないこと
開いて OK を押すだけで、DMX 出力の設定(Hardware.Ini の TXD)が壊れる。exe の解析で確定している挙動:書き込みルーチンが TXD を見て、一致しない側の USB 設定キーを消してしまう。用が無ければ開かない。確認のために開いたときは、必ず Cancel で閉じる。うっかり OK を押して動かなくなったら、手順Aなら step3、手順Bなら状態確認の手順をもう一度実行すれば直る。
02機器について
WinUSB 経由でディスクリプタを直接読んだ実測値。確定
Product "Martin Universal USB-DMX2"
Manufacturer "R&D International NV" <- 実際の設計元(Martin の OEM 元)
VID / PID 11BE / F0A8 (無印の Universal USB-DMX は PID F028)
bcdDevice 0212 USB 1.10 Class 255 (vendor specific)
MaxPower 480 mA bNumInterfaces 1
公式ヘルプ上の呼び名はUniversal USB/DMX interface。5 ピン XLR を 2 口持つツインポート機で、1024 ch 出力(2 ユニバース)または512 ch 出力 + 512 ch 入力のどちらかに構成できる。最大 3 台まで繋いで 2048 out + 512 in。DMX 入力は 1 台目の 2 番(左)ポート固定で、入力に設定するとそのポートの LED が緑になる。
対応ソフトは LightJockey 2.7 系。電源投入時の既定は両ポートとも出力で、ソフトが何も繋がっていなくても全 ch 0 のフレームを 37Hz 前後で送出し続ける(DMX モニターで両ポートに信号が見えるのはこのため。異常ではない)。
03手順A — 配布キットで導入(一般の PC 向け)
これから使う PC が対象。BitLocker の有無は問わない(無い機体がほとんど)。貸出機で BitLocker が有効な場合は、この章ではなく04 章(手順B)を使う。
zip を「すべて展開」して、USB-DMX を挿してから check.cmd をダブルクリックする。何も変更せず、いま何が足りないかだけを表示する。困ったらいつでも実行してよい。
LightJockey\LightJockey2.7\LightJockey_USB-DMXドライバー導入\(Google ドライブを開く。フォルダ内の「LightJockey_USB-DMXドライバー導入」を開く)。ドライバー 3 本と 2010 年版 usbdmx.dll を同梱しているので、インストール CD を探す必要はない。
LightJockey_USB-DMXドライバー導入_2026-08-24.zip 12.8 MB
取扱説明書_LJ_USB-DMXドライバー導入.html
00_はじめにお読みください.txt
1 つの zip に check / step1〜3 / restore(この章の手順)と、1〜6 の番号付き(04 章と同じもの)が両方入っている。この PC でも 1〜6 の番号付きを使ってよい。1 番は BitLocker が無ければ「要りません」と出て素通りする。
2026-08-24 版から、擬似デバイス ROOT\JUNGO\0000 を作る処理が入った。これが無いと11 章で半日かかった壁にそのまま当たる。古い zip を持っている場合は差し替えること。
このキットは DMX が出るところまで。用途に応じて他のキットと組み合わせる。
- DMX を出したいだけ — これ 1 本で足りる
- 音(映像)も使う — これに加えてメディアプレイヤー差し替えが要る(05 章)。本物の LJMediaPlayer.exe は 1998 年製で、Cue List に MP Load File / MP Play が入っているショーだと再生時に落ちる
- Art-Net にも流す — さらにArt-Net 中継を加える(社内配布フォルダの兄弟フォルダ)
手順
zip を「すべて展開」し、USB-DMX を挿してから上から順に実行するだけ。
- check.cmdいまの状態を見る。何も変更しません。
- step1_reboot_nosign.cmdドライバー署名の強制を無効にして再起動します。再起動後の画面の進み方は下の表のとおり。
- step2_install_drivers.cmdドライバーを 2 本とも入れます。step1 で入った特別な起動のうちに実行してください。
- step3_setup_lightjockey.cmdデバイスを WinDriver 側へ付け替え、LightJockey の設定を直します。
- check.cmdもう一度診断して、全部 [OK] になっていれば完了です。
step1 のあと、再起動後の画面の進み方
| 1 | トラブルシューティング |
|---|---|
| 2 | 詳細オプション |
| 3 | スタートアップ設定 |
| 4 | 再起動 |
| 5 | キーボードの 7 を押す(ドライバー署名の強制を無効にする) |
キットを使わず手でやるなら
署名強制を切った起動中に、この 2 本を順に実行するだけである。片方だけでは付け替わらない。
| 順 | ファイル | 入るもの |
|---|---|---|
| 1 | USBDMX WIM7-64.exe32bit 機は lUSBDMX WIN7.exe | Jungo WinDriver 6 本体 — windrvr6.sys / wdapi921.dll / VC++2005 SP1 / 設定ツール |
| 2 | Martin Universal USB-DMX DriverInstall.exe | デバイス用 INF。ドライバーストアに oemNN.inf として登録され、VID_11BE の PID_F028 / F0A8 を WinDriver に結びつける |
2 本目で「このドライバーソフトウェアをインストールしますか」という警告が出る。「インストールする」を選ぶこと。署名が無いための警告で、断ると入らない。
入ったかどうかの確認
Test-Path C:\Windows\System32\drivers\windrvr6.sys 1本目
Test-Path C:\Windows\SysWOW64\wdapi921.dll 同上
pnputil /enum-drivers | Select-String "usb-dmx2" 2本目
Get-PnpDevice | ? FriendlyName -like '*USB-DMX*' | ft Status,Service
最後の行が OK / WinDriver6 になっていれば完成。WINUSB のままだと LightJockey からは見えない(step3 が付け替える)。
成立している条件
どれか 1 つでも欠けると動かない。再構築するときはこの 4 つを揃える。
| 条件 | 値 | 外すとどうなるか |
|---|---|---|
| ドライバー 2 本とも入れる | USBDMX WIM7-64.exe + DriverInstall.exe | 片方だけでは付け替わらない |
| デバイスの割り当て | WinDriver6 (oemNN.inf、番号は機体ごとに異なる) | WinUSB のままだと純正 DLL から見えない |
LightJockey のフォルダの usbdmx.dll | 2010 年版 91,520 B | WDAPI921 と組む方。2006 年版は未検証 |
Hardware.Ini | TXD=11 | USB を一度も見に行かない |
元に戻す
restore.cmd で、キットが書き換えた LightJockey 側のファイルを戻す。usbdmx.dll は usbdmx_2006_backup.dll から、Hardware.Ini は退避した .bak の最新から戻す。書き換える前に必ず退避しているので、いつでも戻せる。ドライバー本体は残る(消したい場合は「アプリと機能」またはデバイスマネージャーから)。
参考: TXD の値の意味
| TXD | 意味 |
|---|---|
| 0 / 1 / 7 | None(出力ハードウェア無し) |
| 5 | LightJockey PCMCIA |
| 10 | LightJockey USB(MartinUSB.dll) |
| 11 | Universal USB-DMX(usbdmx.dll) ← このキットが設定する値 |
04手順B — 貸出機(BitLocker 搭載機)の場合
対象 PC のデスクトップにある MartinUSB-DMX_Setup フォルダの中。番号順にダブルクリックするだけで、コマンドを打つ必要はない。管理者権限は各ファイルが自分で取り直すので、右クリックも要らない(確認の窓に「はい」だけ押す)。
- 1_回復キーを表示.cmd
BitLocker の回復キー(48 桁)が表示される。スマホで写真を撮るか、紙に書く。
その PC の中に保存しても意味がない。起動できない時に読めなければ、控えたことにならない。BitLocker が無効な PC では「要りません」と出るので、そのまま 2 番へ進んでよい。
- 2_署名強制を切って再起動.cmd
控えたか聞かれる。
yesと入力すると BitLocker を一時停止して再起動する。再起動後、画面をこの順に進む。トラブルシューティング → 詳細オプション → スタートアップ設定 → 再起動 → キーボードの [7] (ドライバー署名の強制を無効にする)途中で回復キーを聞かれたら、1 番で控えた 48 桁を入れる。この設定はその 1 回の起動だけ有効で、次に普通に起動すれば元に戻る。危険な状態は残らない。暗号化も解除されない(復号は一度も起きない)。
- 3_ドライバーを入れる.cmd
その PC の前で押す。途中で「発行元: Jungo LTD」の窓が出たら【インストール】を選ぶ。
押した瞬間に Jungo が「信頼された発行者」に入り、以後この確認は出なくなる。「インストールしない」を押すと、ここまでの手順が全部無駄になる。最後の「判定」に★★★が出れば完了。
- 4_BitLockerを戻す.cmd
これを押すまで、その PC は暗号化していないのと同じ状態。必ず押す。「保護はオンです」と出れば元通り。
2 番の「一時停止」は、ディスクを開ける鍵をそのディスクの上に平文で置いて、誰でも自動で開くようにする操作。だから青い画面でも鍵を聞かれずに済む。裏を返すと、その間に PC ごと持ち去られたら中身は読まれる。4 番はその平文の鍵を消して、鍵の管理を TPM に戻す。一瞬で終わる。
- 5_状態を確認.cmd
いまの状態を全部出す。何も変更しない。いつでも何度でも押してよい。
BitLocker / USB-DMX / WinDriver / 擬似デバイス / ドライバー登録 / LightJockey の
TXDまで一度に出る。うまくいかない時は、まずこれを押す。 - 6_サポート終了通知を消す.cmd
「サポートが終了しました」の全画面通知がうるさい時だけ。必須ではない。
通知を配っている
Microsoft Update Health Tools(KB5001716)を消す。Windows Update 本体には触らない――貸出機ほどセキュリティ更新は要るため。詳しくは08 章。
BitLocker について — ここで丸一日止まった
回復キーを聞かれる場面と、聞かれない場面。普通に電源を入れて起動するときは、回復キーは要らない。TPM が自動で解錠する。キーを求められるのは「回復オプション」(あの青い画面)に入る経路だけで、手順 2 はまさにその経路を通るので、そこで聞かれる。
訂正
当初「BitLocker を一時停止すれば回復キーは要らない」と案内していたが、これは誤りだった。一時停止していても、回復オプション経由の起動では聞かれることがある。実測で確認した。だから手順 1 が先にある。
もし青い画面で止まってしまったら — キーが分からないまま入ってしまっても、機械は壊れていない。通常起動には鍵が要らないからである。電源ボタンを長押しして切り、もう一度入れれば普通に Windows が起動する。画面から戻るなら Esc →「続行(終了して Windows 11 に進む)」。戻ってから 1 番を押してキーを控え、やり直す。キーの入力欄に当てずっぽうで入れないこと。
「一時停止」と「解除」は別のものです
ここを取り違えると、4 番を押す意味が分からなくなる。
| 一時停止(手順 2 でやること) | 暗号化の解除(やらない) | |
|---|---|---|
| ディスクの中身 | 暗号化されたまま | 平文に書き戻される |
| 鍵の置き場所 | そのディスクの上に平文で置かれる | 鍵そのものが不要になる |
| かかる時間 | 一瞬 | 容量しだいで数時間 |
| 元に戻すには | 4 番を押すだけ。一瞬 | 暗号化のやり直し。数時間 |
一時停止は「鍵を玄関マットの下に置いておく」状態。錠は付いたままなので、戻すのは一瞬で済む。ただし置いている間は、鍵を知らない人でも開けられる。だから4 番を押すまでが作業。
4 番を押し忘れると
その PC は暗号化していないのと同じ状態のまま置かれる。指定回数の再起動を過ぎれば Windows が自動で戻すが、自動復帰は当てにしない。終わった時点で自分で戻す。心配なら 5_状態を確認.cmd で「保護はオンです」を確かめる。
05音を鳴らす — メディアプレイヤーの差し替え
DMX が出るようになっても、音は別の話。LightJockey は音の再生を LJMediaPlayer.exe という別プログラムに任せており、これが 1998 年設計のままだと現在の Windows で鳴らない。映像表示面を作るのに DirectShow の IBasicVideo を要求し、Windows 11 の wmpdxm.dll がそれを E_NOINTERFACE で拒むため Delphi 例外で落ちる。
本物を消さずに、名前を入れ替えるだけの方法で差し替える。LightJockey 本体・ショーデータ・操作手順は一切変えない。
| ファイル | 差し替え後 |
|---|---|
| LJMediaPlayer.exe | 差し替え版(現在の Windows で鳴るもの) |
| LJMediaPlayer_orig.exe | 本物。消していない。いつでも戻せる |
デスクトップの LJメディアプレイヤー差し替え フォルダ(または社内配布フォルダの兄弟フォルダ)の中の Install.cmd を押すだけ。戻すときは同じフォルダの Uninstall.cmd。
LightJockey でキューリストを実行すると、小さなプレイヤー窓が出て、音が鳴り、明かりが音に合わせて変わる。実測では Load → Play → 1 秒ごとの再生位置報告 → Stop まで、全段が往復した(MCI open OK type=waveaudio length=299233 ms)。
一度、再生中のプレイヤーを確認せずに Stop-Process -Force で強制終了してしまい、1 分 22 秒のところで音を切った。プロセスを止める前に、いま何をしているかを必ず読むこと。状態出力ファイルを先に読めば「位置報告が 1 秒ごとに進んでいる=再生中」と即座に分かる。「反応が無い」ように見えても再生中のことがある。
06なぜ特別な起動が要るのか
「よくわからないが 7 番を押す」で済ませると、次に困ったときに手が出ない。このインターフェースのドライバーは2 つの部品でできており、性格がまるで違う。
| 部品 | 正体 | 署名 | 結果 |
|---|---|---|---|
| windrvr6.inf windrvr6.sys | Jungo WinDriver。実際にカーネルに載る本体 | あり(Jungo LTD/VeriSign) | 普通に入る |
| Martin Universal USB-DMX2.inf | この USB の識別子を WinDriver に結びつけるだけの紙切れ。運ぶファイルは無い | なし(カタログ自体が無い) | これが入らない |
つまり「素性の知れないカーネルドライバーを無理やり読み込ませている」わけではない。カーネルに載る側はきちんと署名されている。止まっているのは、2006 年当時は署名が要らなかったので付いていない、結線表のような INF 1 枚である。
★最大の関門 — 署名なし INF の中身
入るのは C:\WINDOWS\inf\Martin Universal USB-DMX2.inf(1,985 B)。
; Copyright (c) 2006 R&D International NV
Signature="$CHICAGO$" DriverVer=04/05/2006, 8.0.1
[DeviceList.NTamd64]
"Martin Universal USB-DMX" = Install, USB\VID_11BE&PID_F028
"Martin Universal USB-DMX2" = Install, USB\VID_11BE&PID_F0A8
[Install.NT.Services]
Addservice = WinDriver6
ServiceBinary = %10%\System32\Drivers\windrvr6.sys
CatalogFile= の行が無い = 署名されていない。そのため素のままでは弾かれる。
> pnputil /add-driver "C:\WINDOWS\inf\Martin Universal USB-DMX2.inf" /install
ドライバー パッケージを追加できませんでした:
サードパーティの INF にデジタル署名情報が含まれていません。
この制約はWindows 10 x64 でも全く同じ。販売元の手順書も「Win10 システムは、まずドライバー署名強制機能を無効にする必要があります」と明記している。Windows 11 が特別に厳しいわけではない。
そして署名が要求されるのは「ドライバーストアへ登録する一度だけ」。登録が済めば以後は通常起動のまま使えるし、付け替えも自由にできる。再起動のたびに 7 番を押し直す必要はない。
ドライバーは 2 本とも入れる
片方だけでは付け替わらない。
| 種別 | 内容 |
|---|---|
| ドライバー | oem110.inf = windrvr6.inf プロバイダー Jungo / クラス Jungo / v10.1.0.0 (2009-09-02) / 署名 Jungo LTD |
| カーネル | C:\Windows\System32\drivers\windrvr6.sys 254,464 B |
| 前提条件 | Microsoft Visual C++ 2005 SP1 (x86) 再頒布 8.0.59193 インストーラーが自動で要求する |
| アプリ登録 | Martin Universal USB-DMX v2.2.364.0 |
| 同梱ツール | dmx_box_test.exe (95,632 B) USB_DMX_config.exe (75,152 B) Manual USB-DMX.pdf (170,481 B) |
dmx_box_test.exe はLightJockey を使わずに DMX を出せる Martin 純正アプリ。ライセンス(WIBU ドングル)は要らない。まずこれで「出る」を確定させてから自作アプリに進むのが最短。
SHA-1(資料台帳と一致)
USBDMX WIM7-64.exe 47CCB8EC28C07E2D80FB6E5E7527AF06728E7625
lUSBDMX WIN7.exe CE2EE5E4652CB7E47ACB31B7F94F8EF92B19891E
Martin Universal USB-DMX DriverInstall.exe DA787B772C56450AAB477DE3512973A690C7B32C
usbdmx_2010.dll ED2216F28E0A79194AC08B410C0B75A4C5A63C9F
32bit 機と旧 Windows
- 32bit の Windows なら同じ場所の
lUSBDMX WIN7.exe Martin Universal USB-DMX DriverInstall.exe(486,399 B・2010・Inno Setup)はWin9x/2000/XP 時代から続く Inno Setup 製のインストーラーだが、Win10/11 でもこれをそのまま使う。デバイス用 INF を置き、Jungo を「信頼された発行者」に入れる確認窓を出すのはこの 2 本目である(01・03・04 章で「2 本目」として実行しているのはこれ)
UIPI。昇格したインストーラーの窓へ、非昇格プロセスからの合成入力(BM_CLICK・マウス)は Windows が黙って捨てる。エラーも出ない。合成マウスクリックでは動かないダイアログがある。SendMessage(dlg, WM_COMMAND, MAKEWPARAM(id, BN_CLICKED), hBtn) が確実だった。ボタン文字列には & と後置記号が付く(&Next > &Install &Yes)。正規表現を末尾固定にすると当たらない。そして「インストールしない」を必ず弾くこと — ^インストール だけで拾うと誤爆する。
Hardware Setup は開いて OK を押すだけで壊れる(再掲)
この窓は開いて OK を押しただけで設定を上書きし、USB の設定を消してしまう(LightJockey.exe の解析で確定している挙動)。確認のために開くのは構わないが、必ず Cancel で閉じる。うっかり OK を押して動かなくなったら、手順をもう一度実行すれば直る。
正しく動いているとき、この窓にはこう出る。
Type Universal USB-DMX Status Ok DMX Channels 2x512 Out Interface Universal USB-DMX Interface
07動いた証拠
DMX 出力 / 自作プログラム
純正 usbdmx.dll を直接呼ぶ
7,712 / 0
180 秒・両ポート・25Hz。成功 7,712 回、失敗 0 回。LightJockey を一度も起動せずに出力。
DMX 出力 / LightJockey 本体
2×512 Out / Status Ok
2 × 512
両ポートへショーの実データを出力。ドングル無し・Detect DMX Hardware 抜き。
音声 / メディアプレイヤー
差し替えシムで再生・位置同期
299,233 ms
MCI で waveaudio を開き、1 秒ごとに再生位置を LJ へ返す。Load → Play → Stop まで全段往復。
タッチパネル
実データの .pnl がそのまま描画
2 面
色・配置・文字が当時のまま出力。この状態で DMX が出て、音も鳴っている。
LightJockey が認識している証拠
Universal USB-DMX Interface が 1 行で並ぶ。下は同時刻の DMX 出力値、右は OS の版数(Windows 11 Pro 22H2 / ビルド 22621.4317)。※ 会場コードネーム・キューリスト名・キュー名・音源名が写る領域は切り落としてある。
ch512 = 002/ポート1)、右=ユニバース 5(ch512 = 001/ポート0)。両方の ch001 が 116 で揃っている――同じカウンターが同じ瞬間に両ポートへ届いている証拠。他の 510 チャンネルは全て 000、受信はどちらも 38Hz。この 1 枚に、ポートの取り違えが無いこと・2 系統が同期していること・余計なチャンネルを触っていないことが同時に写っている。C-L と Cue にはキューリストとキューの名前が入っており、この状態で DMX が出て、音も鳴っている。会場名の入る欄は落としてある。設定ツールでも確認
USB_DMX_config.exe の実画面。v02.12 は USB ディスクリプタの bcdDevice=0212 と一致。LightJockey を介さずに、ライセンスも要らずに、機器の設定まで届いている。効いた判断 — 半日行き詰まっていたものが動いた理由
効いたのは新しい技術ではなく、調べる方向を変えた判断だった。
-
USB のバイト列を当てにいくのをやめた
WinUSB でバルクへ直接書く方法は、書き込みが 799 回すべて成功するのに DMX が 1 ch も変化しなかった。「書けた」は「受理された」ではない。総当たりは既にデバイスを 2 回落としている道なので(10 章)、正解を持っている純正 DLL を呼ぶ側に回った。
-
動かない原因を、直前に自分がした操作から探した
LightJockey が USB を認識しなかったのは、その日の午前に
Setup > Hardware Setupを開いて OK を押したから。それだけで設定ファイルの TXD が 11 から 0(None)に落ちる。直したのは 1 行。ハードウェア側ばかり疑って、アプリの設定を見に行っていなかった。 -
自分で検算できる目を先に作った
DMX モニターの Web UI が
ws://<ip>/wsで全チャンネルを配信していると分かったので、それを読む道具を書いた。「送る → 自分で読んで確かめる」が閉じたことで、実機確認のたびに人を待たなくてよくなった。ポートの取り違えもこれで一発で分かる。
08うまくいかないとき
まず状態確認(手順Aは check.cmd、手順Bは 5_状態を確認.cmd)を実行する。[NG] の行を上から順に片付ければ通る。
| 出ている行・症状 | 意味と次の一手 |
|---|---|
| デバイスが見つからない | USB-DMX が挿さっていない。ハブ経由だと不安定なことがある。本体の口に挿し直す |
| Service = (空) | 挿さっているが、まだ WinDriver に結びついていない。ドライバー導入(手順A: step2 / 手順B: 3 番)をやり直す |
登録なし: デバイス INF(martin universal usb-dmx2.inf または MartinUSBDMX.inf) | 肝心の INF が入っていない。署名解除の起動になっていたかを疑う。「インストールしない」を押した場合もここになる |
| windrvr6.sys なし | WinDriver 本体が入っていない。ドライバー導入をやり直す |
| 擬似デバイス ROOT\JUNGO\0000 がありません | ここが無いと、上の行が全部 OK でも LightJockey には何も見えない。ドライバー導入をやり直す(自動で作る)。詳しくは10 章 |
| LightJockey が Type: None のまま / TXD=11 以外 | Hardware.Ini の TXD が 11 になっていない。Hardware Setup を開いて直そうとしない(かえって壊れる)。手順Aの step3 を実行する |
| LightJockey が 2 個動いています | これが「USB 認識 NG」の一番多い原因。下の「USB 認識 NG」を参照。全部閉じてから 1 つだけ起動し直せば直る |
| DMX は出ているが灯体が動かない | この文書の範囲外。Global Patch と器具側の DMX アドレスを確認する |
成功したときの見え方
2. USB-DMX Status = OK Service = WinDriver6
3. WinDriver windrvr6.sys あり / wdapi921.dll あり
WinDriver6 サービス Running
擬似デバイス ROOT\JUNGO\0000 OK ← これを見落とすと詰む
4. 登録 windrvr6.inf あり
デバイス INF あり(2006 年版 / 2009 年版のどちらでも可)
5. LightJockey TXD=11(Universal USB-DMX)
「USB 認識 NG」と出たら
導入が済んだあとに NG が出るとき、原因はほぼ 2 つ。どちらもインターフェースは壊れていない。
1. ほかのプログラムが掴んでいる(一番多い) — USB-DMX は 1 つのプログラムしか掴めない。排他である。だから、LightJockey を 2 つ起動した(後から起動したほうが必ず NG)、試験用の道具が動いたままになっている、LJ Manager など同じインターフェースを使う別プログラムが開いている、のいずれか。全部閉じてから、1 つだけ起動し直す。タスクマネージャーで LightJockey.exe が残っていないか確かめると確実。
見分け方
Windows 側(デバイス マネージャー、状態確認の該当項目)が全部 OK なのに LightJockey だけ NG なら、ほぼこれ。デバイスを疑う前に、誰が掴んでいるかを疑う。
2. 抜き差しの直後 — 抜けば当然 NG。挿し直して LightJockey を起動し直せば戻る。別のポートに挿しても構わない(Windows は新しい口として登録し直すが、ドライバーはそのまま効く)。
「サポートが終了しました」の通知(手順Bの 6 番が対象)
照明卓として使う PC に全画面の通知が割り込むのは事故のもと。止められるが、止めていいものと、止めてはいけないものがある。
通知を出しているのは Windows Update 本体ではなく、Microsoft Update Health Tools(KB5001716)という別部品。これが全画面通知を出したり、こちらの都合を無視して機能更新を前倒しで当ててくる。6_サポート終了通知を消す.cmd はこの部品だけを消す。Windows Update サービスには触らない。人に貸す機体こそセキュリティ更新が要るため。
通知を消すことと、サポートが切れていることは別
この作業は通知を黙らせるだけで、OS が古いことは何も変わらない。実際に古い版が入っていた場合、6 番は赤字でそう警告する。人に貸す機体なら、貸す前に Windows の更新を済ませる。ただしCPU が対象外で更新できない機体もある(実例あり — Surface Go 初代・Pentium 4415Y は RedReason=CpuFms で Windows 11 の更新対象外と判定される。ポリシーではないので設定では解けず、Windows Update にも出てこない)。その場合は現在の版のまま運用すると決め、その旨を機体に書き残す。Defender・ファイアウォール・ブラウザは OS の版と無関係に更新が来るので、そちらは最新に保つ。通知が消えたことを「解決した」と読み替えないこと。
なお UpdateOrchestrator の Start Oobe Expedite Work というタスクも前倒しに関わるが、Windows が保護していて管理者でも止められない(Access is denied)。通知の本体が消えれば実害は小さいので、そのままにしている。KB5001716 が配り直されると通知は復活する。その時はもう一度 6 番を押す。
それでも起動のたびに開くなら、犯人は Edge のことがある
部品を消したのに、ログオンのたびに「Windows 10、8.1、7 のサポート終了」のページが開く――実際にそうなった。通知とは別の仕掛けだった。
HKCU\Software\Microsoft\Windows\CurrentVersion\Run MicrosoftEdgeAutoLaunch_xxxxxxxx = msedge.exe --win-session-start
Edge が「Windows の起動時に開く」設定になっていて、前回のタブごと復元していただけ。一度そのページが開かれると、以後ログオンのたびに出る。LightJockey とは何の関係もない。6 番がこれも止める(Edge の設定から戻せる)。
自動起動を消しても、まだ出ることがある。調べた順に空振りが続いた場合は、Edge が保存している「前回のタブ」そのものを疑う。
%LOCALAPPDATA%\Microsoft\Edge\User Data\Default\Sessions\ Session_13432011060495029 ← あの URL が入っている Tabs_13432011060674859 ←
通知の仕組みとは無関係で、一度開かれたページが居座っていただけ。消せば二度と出ない。6 番がこれも消す。
Edge を強制終了しないこと
kill すると Edge は「異常終了した」と判断し、次の起動で「復元しますか」と聞いてきて、かえってタブが残る。窓の × できちんと閉じてもらってから、残った常駐(スタートアップ ブースト)だけを片付ける。6 番は Edge が開いていたら手を出さず、閉じるよう促して終わる。
本番中に割り込むものを先に止める
ログオン時に開くものは Edge だけではない。Teams の通知窓が本番中に出るほうが、よほど危険。6 番は残っている自動起動を一覧で見せるが、消しはしない――人によっては連絡手段として要るものだから。照明卓として使うなら、自分で切っておく。
09ドライバーの内側(付録)
「動くドライバー」の背景。読まなくても導入はできるが、機体を作り直すときや、別の症状に当たったときの手がかりになる。
2 つの世代がある
同じ機器に対して、まったく別系統のドライバーが 2 つ存在する。ここを取り違えると「デバイスは正常に動いているのに、ソフトから掴めない」という状態になる。
| 2017 年版(既定で入る) | 2012 年版(付属メディア) | |
|---|---|---|
| .inf | martincontroller.inf v18.9.33.584 | windrvr6.inf v10.1.0.0 |
| ドライバーモデル | WinUSB(Windows 標準) | Jungo WinDriver 6 |
| 署名 | Martin Professional ApS | Jungo LTD |
| 使う | LightJockey 2.110.5 / Elation 2.200 | 2.7 系 |
| その DLL | MartinDuoDMX.dll WIBU 保護・ライセンス必須 | usbdmx.dll 保護なし・解析可 |
| ライセンス | ドングル必須 | 不要 |
今回発生した症状は、この食い違いそのものだった。検証機には 2017 年の WinUSB ドライバーが入っていたのに、動かそうとしていた LightJockey は 2006 年の usbdmx.dll。あの DLL は WD_UTILS.dll(Jungo WinDriver)を import しており、それがマシン上のどこにも無かった。DLL がロードすらできないので、LightJockey は「インターフェースが 1 台も無い」と判断していた。
2.110.5 系の DLL にも同じ API が生きている(参考)
LightJockey 2.110.5 が使う MartinDuoDMX.dll(1,684,992 B・2017-08-31・32bit)のエクスポートを見ると、旧 usbdmx.dll と同じ関数が出ている。
?Dmxbox@@YGKKEHPAX@Z <- 旧 usbdmx.dll と完全に同一
?GetSignature@@YGKPAE00@Z <- 新規(用途未確認)
つまり Dmxbox(cmd, iface, n, buf) という API はそのまま生きている。ただし MartinDuoDMX.dll 自体は WIBU AxProtector で暗号化されており(セクションが __wibu00 〜 __wibu07)、静的な逆アセンブルはできない。確定
10効かなかった道・実測ログ(付録)
「署名を迂回すればいいのでは」は全部試して全部塞がっていた。同じことを繰り返さないために実測値を残す。
| 試したこと | 結果 | 意味 |
|---|---|---|
| pnputil /add-driver | 0xE000022F | ERROR_NO_CATALOG_FOR_OEM_INF 「このパッケージにはカタログが無い」 |
| UpdateDriverFor PlugAndPlayDevices (INSTALLFLAG_FORCE) | 0xE000022F | FORCE は署名検査を飛ばさない。名前から期待しがちだが違う |
| wdreg(Jungo 純正) | 0x3EE | 無署名のデバイス INF に対しては失敗する。ただし署名付きの windrvr6.inf には成功し、擬似デバイス ROOT\JUNGO\0000 を作れるのは wdreg だけ(11 章) |
残っている手(未着手)
無署名の INF に自分でカタログを作り、自己署名して、その証明書を信頼させる方法がある。これができれば再起動もメニュー選択も要らなくなり、配布キットが完全に無人化できる(カーネルに載る側は Jungo 署名のまま触らない)。まだ作っていない。必要になったら着手する。
署名解除後、直接インストールの経路を使う
pnputil /add-driver ではなく、デバイス直接インストールの経路を使う。前者はドライバーストアへの登録なので、署名強制を切っても署名を要求して失敗し続ける。
UpdateDriverForPlugAndPlayDevices(
NULL,
"USB\VID_11BE&PID_F0A8", // HardwareId
"C:\WINDOWS\inf\Martin Universal USB-DMX2.inf", // INF
INSTALLFLAG_FORCE, &rebootRequired);
-> 戻り値 True / err = 0 ★成功
これは Device Manager の「ドライバーの更新 → コンピューターを参照 → ディスク使用」と同じ経路。
| 時点 | Status | Service | Class |
|---|---|---|---|
| 差し替え前 | OK | WINUSB | USBDevice |
| 差し替え後 | OK | WinDriver6 | MEDIA |
USB 実測(alt setting)
ドライバーを差し替える前に、WinUSB 状態のまま自作プローブでディスクリプタを読んだ。インターフェースは 1 本だが alt setting が 4 つあり、それが 4 つの入出力構成そのものだった。確定
| alt | エンドポイント | 意味 |
|---|---|---|
| 0 | 0x81 IN Int(4B) / 0x02 OUT Bulk / 0x04 OUT Bulk | 2 ポートとも DMX 出力 |
| 1 | 0x81 IN Int(4B) / 0x02 OUT Bulk / 0x88 IN Bulk | ポート1 = 出力 / ポート2 = 入力 |
| 2 | 0x81 IN Int(4B) / 0x04 OUT Bulk / 0x86 IN Bulk | ポート1 = 入力 / ポート2 = 出力 |
| 3 | 0x81 IN Int(4B) / 0x86 IN Bulk / 0x88 IN Bulk | 2 ポートとも DMX 入力 |
ここからポート対応が確定する — ポート1 = OUT 0x02 / IN 0x86、ポート2 = OUT 0x04 / IN 0x88。alt 1 が公式ヘルプの「DMX 入力は 2 番(左)ポート」という記述と一字一句合う。
訂正 — 向きは alt setting では決まらない
以前は「入出力の向きは USB の alternate setting で実行時に選ぶ」としていたが、実測で否定された。alt 0 → 1(ポート B を入力に)へ切り替えて 120 秒保持しても、GetCurrentAlternateSetting は 1 を返すのに両ポートとも DMX を出し続けた。向きを決めているのは alt ではない。ディスクリプタ上の対応(上表)は事実だが、それが向きの操作方法だという読みが誤りだった。入力の実現方法は純正 DLL のコマンド側で探る必要がある(13 章)。
壊しかけた記録 — デバイスを 2 回、USB バスから落とした
ドライバー差し替えに至る前に、WinUSB 直叩きで DMX を出そうとして、デバイスを 2 回 USB バスから落とした。2 回とも抜き挿しで復帰し、恒久的な損傷は無い。同じことを繰り返さないための記録。
| # | 条件 | 結果 |
|---|---|---|
| 1 | 単ポート・40Hz・25 秒・固定フレーム・状態パイプを毎周期ドレイン | 正常 799/799 成功・失敗 0 |
| 2 | 両ポート同時・40Hz・40 秒・ドレインは 2 回/秒 | 異常 各ポート 成功430/失敗846 |
| 3 | 同上で再実行 | 脱落 デバイスがバス上から消滅 |
| 4 | 単ポート・30Hz・毎周期ドレイン・連続失敗20で自動中止 | 脱落 成功289 → 13.5秒でerr=31 → 赤LED・DMX停止 |
原因推定 — 当初は「デバイスの実測 37Hz を超えて投げたレート超過」と診断したが、これは外れだった。#4 で単ポート・30Hz という控えめな条件に落としても同じように壊れたため、レートは原因ではない。真の原因は、ベンダー固有の初期化シーケンスを 1 つも実行しないまま、バルクエンドポイントへデータを流し込んだこととみられる。本来の順序は 0x33 検出 → 0x37 インターフェース照会 → 0x01 オープン → その後にようやく 0x04/0x05 の送出ループ。前半 3 つは EP0 のベンダー制御転送で、それを飛ばしていた。
教訓
未知のハードウェアは、初期化手順が判るまで書き込まない。「エンドポイントが見えた」「1 回書けた」はプロトコルを理解したことにならない。1 回成功しただけの条件を「安全な条件」と呼ばない。#1 の 799/799 を根拠に安全だと考えたが、#4 で同条件系でも壊れた。n=1 は再現性ではない。早すぎる根本原因の断定をしない。失敗カウンタは「積み上げる」のでなく「止める」ために使う(#4 の自動中止が実際に効いた)。実機の目視情報は桁違いに強い――「LED が赤くなって DMX 停止」の一言で、書き込みがデバイスの送出状態を壊したことが即座に確定した。
純正 DLL のコマンド体系を実測で解読
過去のセッションが usbdmx.dll の偽物(シム)を作り、LightJockey がそれをどう呼ぶかを記録していた。コマンド番号と引数がそのまま残っていた。
| cmd | 引数 | 意味 |
|---|---|---|
| 0x33 | b=3, n=VID, buf=PID | デバイス登録。buf はポインタではなく PID の数値 |
| 0x37 | buf[0..1] | 接続済みデバイスを 1 個取り出す |
| 0x1A | b=デバイス添字 | 開始 |
| 0x04 | n=ポート番号 | 「送れるか」問い合わせ |
| 0x05 | n=ポート番号, buf=512B | DMX 送出 |
第 3 引数はポート番号だった(0/1)。ポート当たり約 31ms 周期 = 32Hz で、実測の 36〜37Hz とよく合う。
★自分の想定を 3 つ潰した
どれも「もっともらしい読み」だったが、実測すると違った。1 つでも信じたまま進んでいたら詰んでいた。
| 思っていたこと | 実際 | どう確かめたか |
|---|---|---|
| 0x33 が 0 を返す = デバイス検出成功 | 0 に意味は無い。「この VID/PID を探すよう登録した」だけ | 対照実験。存在しない VID DEAD/PID BEEF を渡しても 0x00000000 が返った |
| 0x37 はインターフェース番号を指定した照会 | 「接続済みデバイスを 1 個取り出す」操作。番号は入力ではなく置き場所 | 順序を 1,2,3,4 にすると iface 1 が成功。4,4,4,4 でも 1 回目だけ成功。番号に関係なく最初の 1 回だけ通る |
| 後続コマンドのデバイス添字は b=0 | b=1 | 0x1A を b=0..3 で総当たり。b=1 だけが成功 |
なぜ間違えたか — 過去ログで b=0 に見えたのは、当時のシムが偽物で全部 0 を返していたため。LightJockey は嘘の応答に合わせて動いていた。偽物の応答から本物の仕様を推定してはいけない。実機で必ず検算する。
[0x33] 戻り値 = 0x00000000 ← この 0 に意味は無い
[0x37] iface 1 0x00000000 buf → 01 01 … ← 取り出し成功
[0x1A] b=0 エラー / b=1 成功 / b=2 エラー / b=3 エラー
→ デバイスの添字 b = 1
[0x05] 成功 860 / 失敗 0 ← 40 秒 / 25 Hz
確定 依存 DLL を実測して版を選んだ:
| usbdmx.dll | 組む WinDriver DLL | 検証機での有無 |
|---|---|---|
| 2006 年版 53,248 B | WD_UTILS.dll | 有(2005-03-21) |
| 2010 年版 91,520 B | WDAPI921.dll | 有(2008-07-04) |
2010 年版が使う WDAPI921.dll は、実際に動いている USB_DMX_config.exe と同じものだった。だから 2010 年版を選ぶ。前提として、デバイスは oemNN.inf(番号は機体ごとに異なる)で WinUSB から WinDriver へ付け替える(純正 DLL は WinDriver 経由でしかデバイスを見ない)。
11奮闘記 — 半日かかった理由(貸出機)
手順だけ知りたい人はここを読まなくて構わない。ただ、行き止まりの記録は次に同じ壁に当たった人の時間を買う。踏んだ順に、間違えた推測ごと残す。これは04 章(手順B)の BitLocker 搭載貸出機で実際に起きたこと。
-
「BitLocker を一時停止すれば回復キーは要らない」外れ
公式手順どおり一時停止して再起動したのに、青い画面で回復キーを求められて止まった。一晩ここで作業が止まっている。危険を知らせる作りにはしてあったが、「通る道」を用意していなかった。警告だけ出して立ち往生させるのは、警告していないのと同じ。
-
回復キーは動いている Windows から読める突破
「手元に無い」と「無い」は違った。1 行で出る。
manage-bde -protectors -get C:
詰みではなかった。そもそも通常起動には鍵が要らないので、青い画面から
Esc→「続行」で戻れる。電源長押しでも戻れる。 -
「青い画面を通らずに済ませられるはず」半分だけ当たり
ドライバーを 2 つに分けて考えると、カーネルに載る
windrvr6.sysは署名済みだった。だから署名の壁はデバイス INF 1 枚だけ。ここを迂回できれば青い画面は要らない――という読み。半分は当たりでwindrvr6.infは通常起動のまま入った。残り半分は外れ。デバイス INF はどうやっても入らなかった。 -
SSH からインストーラーを走らせたら固まった自分のせい
CPU が 15 秒間まったく動かない。窓も無い。デバイスの不調を疑ったが、原因はこちらだった。「発行元: Jungo LTD」の確認窓が、誰にも見えないデスクトップに出ていた。リモートから起動した GUI は無人の画面に出る。機械の前で押せば見える。この確認窓を押すと Jungo が「信頼された発行者」に入り、
pnputilが通るようになる。押すまでは、署名が有効でも登録できない。 -
署名を迂回する裏道を 3 つ試して 3 つとも塞がっていた行き止まり
pnputil /add-driver 0xE000022F ERROR_NO_CATALOG_FOR_OEM_INF UpdateDriverForPlugAndPlayDevices(INSTALLFLAG_FORCE) 0xE000022F 同じ wdreg(Jungo 純正) 0x3EE PnP Install failed
INSTALLFLAG_FORCEは署名検査を飛ばさない。名前から期待するが違う。ここで「青い画面は避けられない」と確定した。 -
7 番で起動 → デバイス INF が通った突破
結果: reboot=False ok=True err=0 ← 直前まで err=-536870353 だった
ちなみに 7 番で起動しても画面は何も変わらない。印も出ないので「効いていない」と思いがちだが、それで正常。
-
入ったのに
CM_PROB_DRIVER_BLOCKED配置ミス32bit のインストーラーが
windrvr6.sysをSysWOW64\driversに置いていた。WOW64 のファイル リダイレクトである。x64 用の本体は別の場所にあった。x64 254,464 B ...\Martin Professional\Drivers\windrvr6.sys ← 正しいのはこちら x86 330,276 B C:\Windows\SysWOW64\drivers\windrvr6.sys ← 32bit 用。そこで正しい
x64 版を
System32\driversへ置いてデバイスを再列挙したらStatus=OK。ここで「終わった」と思った。 -
終わっていなかった — LightJockey の一覧が空本番
Windows から見れば完璧。デバイスは
Status=OK、Service=WinDriver6、名前もMartin Universal USB-DMX 2と出ている。通常再起動でも別のポートでも残る。それなのに LightJockey の「USB Interface configuration warning」の一覧が空のままだった。Re-detect を押しても何も出ない。 -
測定器のほうが間違っていた(2 回)自分のせい
切り分けようとして、二度とも自分の道具に騙された。1)
tasklist /m usbdmx.dllが何も返さない。「LJ は DLL を読み込んでいない」と結論したが誤り。64bit 側から 32bit プロセスのモジュールは見えない(WOW64 の層しか出ない)。2) 自作の DLL 試験が「見つからない」と言った。PowerShell の関数でログ出力と戻り値を同じパイプラインに流しており、呼び側の[void](...)がログごと飲み込んでいた。判定に使った値も配列になっていて、比較が成立していなかった。直してから測り直すまで、存在しない不具合を追いかけていた。 -
Jungo 純正の診断ツールも落ちたが、これが手がかり
usb_diag.exe DriverInit: failed to initialize USB driver: error 0x20000007 ("Internal system error")デバイスの VID を聞かれる前に落ちている。つまりデバイスの問題ではなく、WinDriver そのものが初期化できていない。ここで見る場所が変わった。
-
動いている機械と registry を並べたら 1 行違った原因
動く機械 Enum\0 = ROOT\JUNGO\0000 この機械 Enum\0 = USB\VID_11BE&PID_F0A8\5&1b948c2e&0&1
ROOT\JUNGO\0000はWinDriver の擬似デバイス。windrvr6.sysはこれに取り付いて\\.\WinDriverという制御窓口を出す。この窓口が無いと、ユーザー側の DLL は WinDriver に話しかける口が無い。pnputil /add-driver ... /installはパッケージを登録するだけで、擬似デバイスを作らない。実在するデバイスにしか当たらないため。作れるのは Jungo 純正のwdregだけだった。wdreg -inf windrvr6.inf install install: completed successfully
windrvr6.infは署名付きなので、これは通常起動のまま実行できる。 -
DLL に聞き直したら全部通った解決
0x37 pop 0x00000000 OK buf[0] = 01 0x1A start b=1 0x00000000 OK ← 動いている機械と同じデバイス番号 0x04 can-send 0x00000000 OK
LightJockey の
Re-detect USB Interfacesにも出るようになった。
この半日で一番効いた誤解
「入っている」と「使える」は別のことだった。デバイス マネージャーが緑で、サービスが Running で、再起動しても残る――それでも、窓口が開いていなければ何ひとつ動かない。Windows の画面が全部 OK でも、それは「使える」の証明にはならない。
最後にもう一つ、自分でやらかしたこと
遠隔から試験のために起動した LightJockey を閉じ忘れて放置した。そのせいで、機械の前で起動した LightJockey が「USB 認識 NG」になった。デバイスもドライバーも最初から最後まで正常だったのに、原因を作ったのはこちら。人の機械で何かを起動したら、必ず後始末をする。起動したこと自体を伝える。それだけで防げた。
12ライセンスの壁・買うべきか(付録)
ライセンスの壁
検証機には LightJockey が既に 3 本入っていた。新しい方を使えば解決すると考えたが、そこで止まった。
LightJockey 2.110.5 の Hardware Setup 実測
Protection device not found or drivers not installed (Errorcode 0x00000001)
LightJockey License: Not found (Demo mode only)
USB Interface 1/2/3 の行が全てグレーアウト。Port A / Port B のコンボも操作不可。Demo mode では DMX ハードウェアを一切扱えない。LightJockey 2 系(2.100 以降)は WIBU の保護デバイスを要求する。推定 歴史的には、古い世代では DMX インターフェース自体がライセンスキーを兼ねていたが、後の版で別売ドングルへ移行した。
ライセンスの線引き — 直叩きは駄目、純正 DLL 経由は正規
以前、WinDriver の API(WDU_Init ほか)を自作アプリから直接呼んで試したが、WDU_Init は Success を返すのにデバイスが 1 台も割り当てられなかった。WDU_Init はライセンス文字列を引数に取り、こちらは空文字を渡していたためである。Jungo WinDriver のライセンスはベンダーごとの再頒布契約で、Martin の製品に付随して Martin の製品のためにある。そのキーを自作ソフトに流用することはしない――技術的に可能かどうかとは別の話として。いま動いている経路はそれとは違う。Martin 純正の usbdmx.dll を、Martin のハードウェアを動かすために、そのまま呼んでいる。ライセンスは DLL の中で完結しており、こちらは何も取り出していない。これは想定された使い方である。
買うべきか
並行して、通販サイトに出ている同種のインターフェースを検討した。結論から言えば、いま買う必要はない。
| 商品名 | Original Martin Light Jockey USB 2.95 DMX-Schnittstelle 1024-Kanal-Software USB DMX PC 3D-Bühnenbeleuchtungscontroller WIN7 WIN10 |
| 価格 | ¥12,514 |
| 売り | 1024 チャンネル / LightJockey 2.95 ソフト付属 / Win7・Win10 対応 |
「2.95」という版数が本質。LightJockey 2.9x は WIBU ドングルを要求しない最後の世代。この出品が「ソフト付きで動く」と言えるのは、ライセンス機構が無い版だから。「Original Martin」の表記は額面どおりには取れない。純正の Universal USB/DMX インターフェースは本来この価格帯ではない推定。付属ソフトの配布形態にも不明点が残る。
いま買わなくてよい理由 — 純正機を既に持っており、正しい世代のドライバー(2012年版・Jungo WinDriver)を入れ終えている。同じインストーラーが dmx_box_test.exe(ライセンス不要で DMX を出せる純正ツール)を置いていく。予備機やもう 1 ユニバースが必要になった場合は、この出品ではなく同じ付属メディアが使える純正中古を探す方が確実。この文書があれば、どの機体でも同じ手順で立ち上げられる。
13残っている課題・覚えておくこと
| 項目 | 状況 |
|---|---|
| DMX 入力 | 向きの切り替え方法が未解明。USB の alternate setting では切り替わらないことは実測で確定(切替は成功するのに両ポートとも出力を続ける)。純正 DLL 側のコマンドで切り替わる可能性が高い |
| LJ 2.110.5 / Elation 2.200 | WIBU のライセンスドングルが無く Demo mode。ライセンス不要で動くのは 2.7 系まで |
| 2006 年版 usbdmx.dll | 今の構成では 2010 年版を使っている。2006 年版でも通るかは未検証 |
| 署名の自己解決 | 無署名 INF への自己署名・カタログ自作は未着手(10 章)。実現すれば配布キットが無人導入できる |
次に触る人へ
- Setup > Hardware Setup は開くだけで壊れる。用が無ければ開かない。開いたら Cancel で閉じる。画面カタログ採取のように「全部の窓を開けて回る」作業では、この窓だけ必ず除外する
- 「書き込み成功」を「受理された」と読まない。USB のバルク書き込みは、デバイスが中身を理解できなくても成功を返す。出力側を実際に観測して確かめる
- 実機の常駐プロセスを止める前に、使用中でないか確認する。状態を外から見える場所へ出す仕組みは、自分が壊す前に読むためにもある
覚えておくと早いこと
- 署名が要るのは登録の一度だけ。済めば通常起動のまま使い続けられる
- ドライバーを入れる作業はリモートからやらない。確認の窓が見えない画面に出て固まる
- 回復キーは動いている Windows から読める(BitLocker 機)。「手元に無い」で止まる必要はない
- デバイスが緑でも、
ROOT\JUNGO\0000が無ければ何も動かない。状態確認で見える - 結果がおかしい時は、まず自分の測り方を疑う。今回は複数回、道具のほうが間違っていた
- USB-DMX は 1 つのプログラムしか掴めない。NG が出たら「誰が掴んでいるか」を先に疑う
運用メモ
署名強制を切った起動は最初の一度きりで済む。デバイス用 INF は oemNN.inf(番号は機体ごとに異なる — 検証機は oem111、貸出機は oem40 など)としてドライバーストアに登録済みなので、以後は通常起動のまま WinUSB 側と WinDriver 側を自由に付け替えられる。再起動しても両方の状態が維持される。WDAPI921.dll は 32bit なので、自作ツールから呼ぶ場合は呼ぶ側も x86 必須。