はじめに
今回は日常的にChromeOSを使用したい人向けの記事です。
ChromeOSでのCD / DVDの再生は、長年、一般からも技術コミュティからも不可能と結論付けられてきました。試みたユーザは数多いですが、特殊な条件下やデータDVDで成功させた例です。データはそもそも読めますし、特殊な条件下とはデベロッパーモードなどを用いてです。デベロッパーモードはセキュリティを重視するユーザが行う状態ではありません。
今回はChromeOS公式機能として用意されているLinux環境を用います。
要点は、低レイヤーに通信路があるので、無効化された上位カーネルの機能をスクリプトで肩代わりして低レイヤーで光学ドライブと通信してCD / DVDの再生を実現する、というものである。
以下に概要を記載する。
従来の見解:ChromeOSで再生出来ないと結論されてきた理由
コミュニティの人たちも当然まずLinuxを用いる。(使い勝手の良いホストOSの上でさらにLinux環境が動く事が最高な理由。)
ChromeOS上のLinux環境は、Linuxネイティブとは構造に以下の違いがあります。

Linuxネイティブは図の左に示す様に5層で光学ドライブからアプリ層までつながってCD / DVDの再生を実現している。しかし、ChromeOSのLinux環境ではアプリ層より下の上位2層が無効化されている。これは攻撃される箇所を低減するための意図歴な設計であり、仕様です。ここが塞がれていると、Linuxのプレイヤーアプリを入れてもディスクは認識されず再生不能です。
ここが塞がれているために、設計構造的にそもそもできない、とされてきました。
USBデバイスのパススルーをするために残されているSCSIパススルーは注目されてきませんでした。
SCSIパススルーを用いたCD / DVD再生のアーキテクチャ
DVD 再生における全体アーキテクチャ
以下に上位カーネルが担当していた役割をユーザースペースのスクリプトで再現するエンジンの構成になります。

様々な形式のDVDに対応するため、CSSへの対応は標準とし、ILVU(Interleaved Units: 交互配置ブロック)や正規のPGC特定の対応をしています。
CDにおけるアーキテクチャ
CD-DA(Compact Disc Digital Audio)は規格がDVDと異なるため、構造が異なり以下となります。

機能としては、曲名表示、シークバーの操作、99曲までの収録数に対応しています。
アプリ画面
以下が実際にPythonで構成されている専用のアプリ画面です。


どちらも視聴・再生が可能です。
おわりに
今回はChromeOSでCD / DVDの再生は可能だということを紹介しました。
興味のある方は試してみるとできますのでやってみてください。
やり方は、
Antigravityで自然言語で指示してください。
これです。自分がしたい動作や実機の動作を確認しながら何回かラリーをして調整していますが、問題ありません、初めの依頼時点で結構動くものが出来てきます。というか後はプロンプトでどれだけ明確な答えをピンポイントで引き当てるかの問題なのでそこは個人の技術です。
なのでChromeOSの快適性が最高すぎて、HomeデバイスとAndroidスマホとも連携するし、メディアコントロールで様々なデバイスの再生・停止を同じ枠内で手元で管理できるし、そもそもUI全体が便利だしデザインも可愛くて最高、ChromeOSを使いたいんだよChromeOSを、他のOSでもできるとか意味不明なんだよ、ChromeOSを使いたいっていう前提を言ってるのに何で他のOSの話してるんだ?は?という人は是非ChromeOSの機能を拡張できるのでやりましょう。
もちろんですがCD / DVDの再生が第一の目的であるという人はそもそもChromeOSの選択をやめましょう。あらゆるゲームを快適にやりたいと思ってるのにWindowsでなくMacを選ぶのと同じです。
上で言った通り語り尽くせないそもそものホストOSとしての魅力が前提にあるから使うのは確定として、じゃあそこからさらに利便性を高めたり、一部のできない操作を補うためにはどうすればよいか?
という段階の人がやることです。だから最初にChromeOSを日常使いの人向けと言いました。
Googlebook登場目前だからこそ、
ChromeOSへの愛とリスペクトを忘れずに。ありがとう。

コメント