PowerMac G5 (Late 2005) [VGC-RM95S]
BSD OS の夢 [VGC-RM95S]
dart=0
-f GraphicsEnabler=No
USBBusFix=Yes
USBLegacyOff=Yes
FakeSMC.kext
Intel82566MM.kext
IntelMausiEthernet.kext
Lilu.kext
NullCPUPowerManagement.kext
NvidiaGraphicsFixup.kext
RealtekRTL8111.kext
SATA-RAID-unsupported.kext
サウンドは USB
これで VGC-RM*** は全て復活した。
VGC-RM95US QX9650 [VGC-RM95S]
ヤフオクではない中古で 95US (QX9650) が見つかったので、迷わず購入に踏み切った。希望通り、アナログチューナなしだったが PIX-DT012 がついていたので、早々にはずした。B-CAS スロットのダミーもあったので、すべてはずしてすっきりとなった。以前から疑問に思っていた 95S 系の QX9650 は C0 か C1 かという疑問について C0 という結論となった。
HDD は 3TB にすることにした。BIOS では認識していなかったので D: ドライブで使うことにした。 Win7 SP1 のインストーラだと、ストレージドライバを途中で入れる必要がなかった。メモリーは 8GB としてみた。それにしても Intel のマザーボードを使った VAIO は、なかなか壊れない。
2010-05 の RM94S (QX9650) から始まった、オリジナルの RM95US (QX9650) の旅は、これで一区切りをつけることになった。3T の HDD も HP Smart Array のボードにつなげば Boot できるかもしれない。後は DDR2 で 16GB のメモリに挑戦してみることにしよう。なかなか手に入らないのだが。
Android x86 A2DP [VGC-RM95S]
1年以上使っていなかったVGN-FT90S に Android x86 2.2 をいれてみた。あまり期待してなかったのだが、以外にうまくいってしまった。ソフトウェアの規模は元祖 Open Source の MINIX や 386BSD を軽く超えているようだ。
android-x86-2.2-generic.iso
ハード的には asus eee pc が最も近いのだがNIC が認識されなかったので Generic 版でインストールした。この時点で 2.2 しか選択肢がない。まずは、おまじない。
mount -o remount,rw /mnt
ifconfig eth0 192.168.122.199 netmask 255.255.255.0
route add default gw 192.168.122.254 dev eth0
setprop net.dns1 192.168.122.49
Wireless スイッチを ON/OFF していると Airplane-mode が OFF にならなくなるので、ここでおまじない。
Settings->Applications->Manage applications->
running->settings storage->clear data
これで Bluetooth が ON になりペアリングできる。自動的に SCO と A2DP が 利用できるようになった。YouTube で DuranDuran "Girls On Films" を聞くことが(録音することが)できた。VGN-FT90S の Sound Chip を認識しないので Bluetooth で聞くしかない。
【気が付いた点】
1. USB マウスは必須だと思う(これがないと、かなりキツイ)
2. A2DP は SCMS-T が OFF となっている
3. SCO は Phone Call の時だけのようである
【基本操作】
F4: Shutdown
Alt+F1: console
Alt+F7: GUI
動画再生はコマ落ちが激しいが、音声は問題なく聞こえる。音量レベルが弱いようだが。386BSD や Linux が登場した時と同じで、実用性がどうこうより、この上にどれだけの世界が広がるかで価値が決まると思う。
Windows Media Player の先読み [VGC-RM95S]
DLNA の配信用 Audio File がリニアPCM のままだとファイルサイズが大きくなってしまう。そのため Media Player 側が Range 指定で先読みをしているようだ。先読みの応答がないと再生が開始されない。
GET /MediaItems/11.wav HTTP/1.1
Cache-Control: no-cache
Connection: Keep-Alive
Pragma: getIfoFileURI.dlna.org
Accept: */*
Range: bytes=0-
GET /MediaItems/11.wav HTTP/1.1
Cache-Control: no-cache
Connection: Keep-Alive
Pragma: getIfoFileURI.dlna.org
Accept: */*
Range: bytes=2265088-2270877
さらに複数のトラックがあると、トラック自体を先読みしている。
Bluetooth-DLNA Stack Gateway [VGC-RM95S]
DLNA というか UPnP は、そうとうヘビー級になてきたので Audio だけでもかなり複雑になっている。今回は XML の重たい解析をなくしても SCO や SBC だけというなら特定の Template に書き込むだけで何とかなることが分かった。組み込み機器の DLNA の実装も Template 修正型だと思う。
WMP12 は、ざっと見ても一曲選択するまでに、かなりの手順を踏んでいる。Vaio Media Plus の実装は、マウス操作のたびに電文がきているのでわかりやすかった。Vaio Media Plus はクセがなくリファレンス的な実装だったのかもしれない。
日本語表示も UTF-8 で問題なく表示されている。ある程度のキャッシュで再生がスタートしているので、若干の遅れを認めればリアルタイムの再生も可能かと思う。
AVRCP が利かないケース [VGC-RM95S]
AVRCP ができたりできなかったりを調査した結果、少なくとも以下の2つが判明した。
(1) リモートデスクトップで接続している場合
画面を転送しているがオーディオ関連は リモート側に設定している時に AVCTP の電文応答は Accept が返って来るの だが Play, Stop などが動作しないことが判明した。Toshiba Stack の 5.0, 6.0 までは問題なかった。これ以外の Toshiba 7.0, 8.0, csr plc., Motorola, MS Stack はダメだった。
(2) リモコン操作用の OS 側ドライバがない場合
Bluetooth Stack をあれこれ入れ替えていると AVRCP が利かなくなる。この現象にあったら IR リモコンの受信側 USB を差し込んで OS 側で必要なドライバを甦らせる。WMP など Player を最終的に叩くのは IR も Bluetooth も共通のドライバになっているからのようである。いずれも、ググってもあまり見かけなかった現象なのでマイナーな問題かもしれないが、この記事が役に立てばと思う。
それにしても csr plc. は AVRCP 1.3 の電文の雛形は返ってくるのだが中身が空っぽであった。マニュアルにもうまくいく場合もあるといったニュアンスで書いている。Motorola Stack はオーディオの切り替えがさくっといくし AVRCP 接続で A2DP の2つのセッションを自動的に張りに来てくれる。Toshiba の 8.0 は重すぎる。
Bluetooth 3.0 と 2.0+EDR の接続 [VGC-RM95S]
(1) 3.0 側の "My Bluetooth" でサービスの接続をおこなうか 2.0 側から個別サービス接続をおこなう
(2) 次に 2.0 側からペアリングコードなしで接続をおこなう
手順の (1) をやらないと (2) でペアリングエラーとなってしまう。これで見かけ上うまくいったことになる。少なくとも HSP と A2DP はこれでいけた。
2.0 からのAVRCP は接続が拒否されているように見える。本来なら 3.0 に「リモート制御」なるサービスが見えて、これを選択する必要がある。それにしても A2DP SRC 側が 3.0 だと文句なしに安定している。
SCMS-T [VGC-RM95S]
SCMS-T はイメージとしては難しそうだが、データ転送では1バイトがヘッダに付与されるだけである。ネゴシエーションも以下のようにするだけである。
// 1
cap_scms_resp.serv_cap=MEDIA_TRANSPORT_CATEGORY;
cap_scms_resp.serv_cap_len=0;
// 4
cap_scms_resp.cp_type = MEDIA_CONTENT_PROTECTION;
cap_scms_resp.cp_type_length = 2;
cap_scms_resp.cp_type_lsb = (CP_TYPE_SCMS_T & 0xFF);
cap_scms_resp.cp_type_msb = (CP_TYPE_SCMS_T >> 8) & 0xFF;
// 7
cap_scms_resp.cap_type=MEDIA_CODEC;
cap_scms_resp.cap_type_length=6;
ところが VAIO の WIDCOMM の A2DP については、このネゴシエーション以前に何かきている。Toshiba のスタックや CSR のスタックでは、まったく問題ない。
AVRCP [VGC-RM95S]
上の段が Target をサポートしている場合、下段が Controller をサポートしている場合である。Controller の場合は SDP に登録していない場合が多いので見えない場合がある。また ヘッドセット側が Target になっていて Play, Pause などを逆に発行する場合もあるようだ。メーカのカタログには、どちらをサポートしているか明記すべきだと思う。
ちなみに AVRCP は RFCOMM ではなく L2CAP 上なので MS Stack の場合、簡単なドライバが必要になる。