LjStudio の Linux 版再生機「LjTouch」ができるまで — 2026-10-07 朝の時間軸
2026-10-07 / 開発記録(DEL37 の記録・番外編「Linux マルチ起動奮闘記」つき)/ 社内スタッフ向け
タッチパネル一体型の小型 PC PIPO X8 Pro(Celeron 2 コア・4GB)の Linux で、LjStudio と同じタッチパネルを全画面で押して照明を再生できるようになった。
最初のファイルを書いてから PIPO の実機で動くまで 23 分。PIPO には追加のソフトを何も入れていない(画面へ直に描く)。
USB-DMX への出力、面の切り替え、LjStudio と同じ見た目(純正 LJ Manager と照合済みの規則)まで、午前中にそろった。
2026-10-07 追記(2026-10-07 18:24)
Linux だけで、2 種類の USB-DMX の両方が使える。 社内の ESP32 製(ENTTEC Pro 互換)と中国製(Martin 互換)のどちらも、LjTouch(LjStudio の Linux 版)から出せる。Windows 10 は不要になる見込み(ランニング検査中・結果待ち。検査の結果を待って確定する。それまで Windows 側は残す)。現場のパソコンが壊れても、その現場の USB-DMX が ESP32 製か中国製で生きていれば、この機体(Linux)だけで本番を続けられる。(USB-DMX がこの 2 種類の場合。「どの現場でも」ではない)中国製の USB-DMX(Martin 互換・USB ID 11BE:F0A8)へ、Linux から直接出せるようになった(2026-10-07)。純正ドライバーが箱へ送る手順を Windows で記録して Linux で再生した。64 バイトずつ別の転送で送ることで全 512ch が出る。後から挿しても約 3 秒で見つける。
1. なぜ「Linux 版の再生機」を別に作ったか
- LjStudio 本体は Windows 専用(WPF・約 10 万行)。Linux ではそのままは動かない。
- フル機能の Linux 版は Wine で進めているが、Visualizer を開くと待機で約 1 コア・再生で約 1.7 コアを使う(開発機の i5 で実測)。PIPO はその半分以下の速さ。
- そこで本人の決定(10/7):データを見る・直す画面は持たない。タッチパネルを全画面で出し、面を切り替えて押す、見た目は LJ とほぼ同じ——この範囲だけの軽い再生機にする。
| 方式 | 良いところ | 2 コア機での問題 |
|---|---|---|
| Wine で LjStudio をそのまま | 全機能が使える | 重い(上の実測) |
| ブラウザのタッチ画面(LjRun) | 実績がある | ブラウザが要る・重い。行送りで 1〜2 行手前に止まる癖 |
| LjTouch(今回) | LjStudio のタッチパネルの描き方と再生機をそのまま使う専用画面。X もブラウザも要らない | データの編集はできない(決めた範囲どおり) |
2. 今朝の時間軸(2026-10-07)
同じ朝、別の作業で「LjStudio のタッチパネルを純正 LJ Manager と並べて照合し、見た目の規則を直す」作業が進んでいた。LjTouch はその規則を同時に写している。
- 07:13LjStudio 側:純正 LJ 2.7 + LJ Manager で現場のデータを開き、6 面を撮影して LjStudio と並べる開発機 r5
- 07:30 頃LjStudio 側:グラデーションの向き・空き枠・停止ボタンの意味を確定して直すr5
- 07:34LjTouch の最初のファイル(ボタン 1 個の描き方・面の並べ方)。上の規則をそのまま写すi8
- 07:42面の切り替え(上の題を押す・面の中の「ページ」ボタン)と下端の状態表示
- 07:50LjStudio 側:直した版(0750)を配布場所へi8
- 07:56同じ面を 3 台で撮影:i8 の窓・DEL37(Linux)・PIPO の画面そのものDEL37 / PIPO
- 07:57PIPO 実機で動作。6 面が出て、押すと再生機が動き、Art-Net が毎秒 40 回出るPIPO
- 08:12再生機と AI 操作口(ファイルに 1 行書くと押せる・状態をファイルに出す)
- 08:14USB-DMX を自動で見つけて出力。DEL37 で 5 秒に 203 フレーム(約 40Hz)・失敗 0DEL37
- 08:19本人確認:DEL37 に挿していたのはいつも使う社内の USB-DMX(ESP32-S3 製の ENTTEC Pro 互換機)=現場の本命の出口が Linux で動いた
- 08:21LjStudio 側:副画面で最大化した窓が主画面に出る不具合を直した版(0821)。r5 を再起動してタッチパネルが副画面に出るのを確認r5
- 08:52USB-DMX(ESP32-S3 互換機)の Windows/Linux での使い方を別ページとして公開依頼
- 11:30本人の写真で見つかった「画面左下で点滅する □」を消した(下の 4 章)PIPO


どちらも文字はぼかしてある。i8(Windows)の窓でも同じ絵になることを確認した。
3. 実測
| 機体 | 条件 | 結果 |
|---|---|---|
| DEL37(Ubuntu) | 起動して 1 枚撮る | 表示 OK・起動 1.9 秒・メモリ 186MB・日本語 OK |
| PIPO(2 コア・本体 800×1280 縦長を横向きに回す) | 画面へ直に描く | 表示 OK・メモリ 88〜110MB |
| PIPO | 待機の CPU(1 コア比) | 描画 毎秒 60 回で 11.1% → 20 回で 6.4%(既定にした) → 10 回で 5.4% |
| PIPO | ボタンを 3 つ押す(曲を頭から→別の曲→「イベントページ」) | 曲が切り替わって再生・面 5 へ入れ替え |
| PIPO | 再生中・Art-Net を出す | 毎秒 40.2 パケット・CPU 12%(1 コア比) |
| DEL37 | USB-DMX へ出す | 5 秒で 203 フレーム・書き込み失敗 0 |
省エネ:ボタンを押すだけの画面に毎秒 60 回の描き直しは要らないので 20 回に下げた(測って効いたものだけ入れる方針)。
4. 「左下で点滅する □」の正体
本人が PIPO の画面を撮ったら、左下に黒い □ が点滅していた。LjTouch の絵ではなく、裏で自動ログインしている Linux のコンソールのカーソルだった。
- 画面のメモリを 0.35 秒おきに 8 回読み比べると、変わっていたのは 32×16 画素の塊(カーソル)と時計の秒だけ。塊の位置はプロンプトの文字 11 個ぶん右=写真の □ の位置と一致。
- 起動スクリプトにはカーソルを消す命令があったが、ネットワーク越しやメニューから起動すると端末の種類の指定が無く、黙って失敗していた。
- さらに Linux のコンソールは「カーソルを隠す」指示だけでは止まらず、「カーソルの形=なし」の指示も要った(実測)。
- 直し:LjTouch 自身が起動時に表示中のコンソールへこの 2 つを書き、終了時に戻す。どこから起動しても効く。
5. DEL37 の開発記録(Linux 版の開発・検証機)
DEL37 は Windows の 2-in-1 ノート(Latitude 7200)に Linux を足した機体。LjStudio の Linux 版の開発と検証、PIPO 用ディスクの作成に使っている。
- 10/4外付け SSD に Ubuntu 24.04 を自動インストール。完成した Linux の有線がつながらない → 自動インストールのネットワーク設定が空だったのが原因。設定を直接書く手順に変えて開通Linux 化
- 10/5内蔵ディスクへ移して Windows との 2 重起動に。「LjStudio Linux 版の開発・検証機」として整備:.NET 8 SDK(その場で再生機をビルド・再生まで確認)、画面共有(XFCE+VNC)、日本語フォント、USB-DMX を開ける権限開発機化
- 10/6DEL37 の中の仮想 PC で、PIPO 用の外付け SSD に Linux を 5 分で自動インストール(下の番外編)PIPO 用ディスク
- 10/7LjTouch をビルドして撮影(起動 1.9 秒)・社内の USB-DMX で実際に送出(約 40Hz)LjTouch
6. まだのこと
- 指でのタッチの当たり(回した画面の上で正しく押せるか)——本人確認待ち。
- HDMI の副画面にも出す(今は本体画面 1 枚だけ)。
- 曲つきのショーの音(PIPO には再生の部品が無く、内部の時計で進む)。
- 純正 LJ Manager と LjTouch を同じ面で並べた写真(LjStudio 側は照合済み・LjTouch はその規則の写し)。
番外編:PIPO の Linux マルチ起動 奮闘記(2026-10-06)
LjTouch の前日。PIPO で Linux が動かなければ何も始まらない。外付け SSD の Linux を起動させるだけで半日かかり、原因の見立ては 4 回外れた。
- 午前DEL37 の中の仮想 PC で、PIPO 用の外付け SSD へ Linux を自動インストール(5 分)。名前は
pipo、本体画面に自動ログイン。 - 午前事故:仮想 PC が「止まった」と誤判定し、動いているのと同じ区画を外から読み書きしてファイルシステムを傷めた。原因はプロセス名が長すぎて検索が必ず外れる罠。修復して、システムの改変 0 件を確認。
- 午後PIPO で起動しない。Windows の「デバイスを使用して起動」で SSD を選んでも Windows に戻る。
- ランニング検査(長時間の連続動作)が検査中。結果を待って、Windows 10 を使わない運用(Linux だけ)を確定する。
外れた見立て(記録として残す)
- 起動の仕組み(shim)が起動項目を登録してはリセット → 無限ループ説 → 直しても変わらず
- USB の接続方式(UAS)との相性説 → 方式の違う USB メモリでも同じ症状で外れ
- カーネル直後にリセットする説 → 画面に何も出ないのは、縦長パネルで文字が見えないだけだった
- Linux の世代の問題説 → 公式の起動イメージ 2 種でも同じで外れ → 機械(ファームウェア)側と判断して BIOS を見てもらう
- 16:28本人が BIOS の起動順を変えて起動成功。真因:起動順が「Windows が 1 番・USB が 2 番」だった。PIPO は Windows からの「次の 1 回だけ USB から」を無視し、BIOS の起動順だけで起動する。
- 夕方画面:本体は 800×1280 の縦長パネル。コンソールを 270° 回して横向きに(HDMI と別々には回せない)。起動はカーネル 3.9 秒+起動処理 8.4 秒。
- 夕方Windows 側を整理:C: を縮めて Linux 用に 15GB 空け、自動更新を止め、付属アプリ約 30 個を削除(空き 3GB → 13GB)。長時間の全力処理で画面がちらつく過熱あり → 収まった。
- 17:59内蔵ディスクに Linux を写して 2 重起動完成。SSD を抜いても Linux が起動。
- 夜起動に 1 分以上 → 実はネットワーク起動(PXE)を待っていた。BIOS で外して 47 秒、起動メニューの待ちを 5 秒にして約 40 秒。メニューの「Windows」から Windows 10 も起動を確認。
教訓
- 「動かない」ときは、凝った仮説より先にBIOS の起動順を見る。この機械は Windows からの「次の 1 回だけ」を聞かない。
- 見立てを 1 つずつ実機で潰したので、外れた理由まで記録に残った(次の機体で同じ回り道をしない)。
- 止まったかどうかは、名前の一部で探さず、確実に数える方法で確かめる。
関連記事
- Linux 再生機構想(2026-08-17) — 今回の LjTouch はこの構想の「現場で押せる再生機」の具体化
- 現場専用にした PIPO の取扱説明(2026-10-07) — 電源の入れ切り・タッチパネルの使い方・Windows との切り替え