概要
ここでは X.Org 7.7 の PC-98 に対するサポート状況について少しだけ詳しく述べます. (情報が入れば随時更新します.)
FreeBSD の ports における X.Org に関しては,このページを書き始めた時点では X.Org 7.7 は一部の module に限定されておりましたが,現時点では大部分が 7.7 になっています.
概要
ここでは X.Org 7.7 の PC-98 に対するサポート状況について少しだけ詳しく述べます. (情報が入れば随時更新します.)
FreeBSD の ports における X.Org に関しては,このページを書き始めた時点では X.Org 7.7 は一部の module に限定されておりましたが,現時点では大部分が 7.7 になっています.
目次
今回リリースされた X.Org 7.7 においては,PC-98 にとって重大な変更がなされています. すなわち,
逆に考えれば,「FreeBSD が xserver-1.12 を採用するまでは,X.Org は PC-98 でも動作する」ということです. FreeBSD の ports/packages の傾向として,X Server は比較的古く (現在最新の FreeBSD 8.2 にて xserver-1.7.7),Video driver は最新のものを採用しています. 上記の変更は,このような使い方も想定して対処していると言えます.
ただし,注意しなければならないこともあります. すなわち,
問題が生じたら古いものに戻せば良いだけなのですが,ports の管理下においては面倒です.
[1] 正しく動作するかどうかは別問題です.
(未対応な driver はそれ以前の状態ですが.)
[2] xf86-video-mga からは PC-98 の部分が削られました.
X.Org 7.7 の公開前にそれを修復して patch を送ったのですが,残念ながら反映されませんでした.
交渉は今後も続けます.
(この patch は X on FreeBSD (3) にて配布しています.
ですから,最悪の事態にはならないでしょう.)
[3] xf86-video-apm は AT 互換機用も含めて廃止になりました.
[4] X.Org の動作試験をその Release 前でなく,FreeBSD の ports になってからやっているわけですし.
PC-98 に関連する部分ですが,ソースの中で #ifdef 等で場合分けをしているのではなく,完全に削除されています. ミスでなく方針としてそうなっています. 従って,PC-98 で動くように修正するのも,その patch を送付して正式に復活させるのも困難です.
X Server の新しい機能は PC-98 で動作するような古いグラフィックカードにおいてはほぼ意味がないと考えます. 従って,古い X Server を使い続ける方が合理的でしょう.
Video driver には,次のような形で PC-98 の部分が残されています. すなわち,#ifdef を用いて X Server の version に応じた場合分けをしています. そして version が 1.12 未満であれば PC-98 の部分が反映されます.
#if GET_ABI_MAJOR(ABI_VIDEODRV_VERSION) < 12 ← X Server の version が 1.12 未満.
if (xf86IsPc98()) {
}
#endif
PC-98 に未対応な driver を修正して対応させた場合には,PC-98 の関連部分を上記のようにしておけば,patch が採用され易くなるでしょう. たぶん.
「PC-98 にとって,やってはいけない version の組み合わせ」を表にしました.
PC-98 にて X を使うためには,xserver, keyboard および利用する video driver がすべて PC-98 に対応している必要があります.
(参考のために表に載せましたが,mouse は今のところ機種に依存していないので意識しなくて良いです.)
version を () で囲んで薄い青色にした部分は,PC-98 に対応していないことを示します. また,各々の version としては以下のものを記しました.
X.Org | 7.5 (1) | 7.6 (1) | 7.6 (2) | 7.7 (1) | 7.5 (2) | 7.5 (3) | 7.7 (2) | 7.7 (3) | 7.7 (5) | 7.7 (6) |
---|---|---|---|---|---|---|---|---|---|---|
xserver | 1.7.1 | 1.9.3 | 1.11.3 | (1.12.2) | 1.7.5 | 1.7.7 (1.10.6)[2] |
1.7.7 (1.12.4)[2] |
1.7.7 (1.12.4)[2] |
(1.17.4) | (1.17.4) |
keyboard | 1.4.0 | 1.5.0 | 1.6.0 | (1.6.1) | 1.5.0 | (1.6.1)[1] | (1.7.0)[1] | (1.8.0)[1] | (1.8.1)[1] | (1.9.0)[5] |
mouse | 1.5.0 | 1.6.0 | 1.7.1 | 1.7.2 | 1.6.0 | 1.7.1 | 1.9.0 | 1.9.0 | 1.9.1 | 1.9.2 |
mga | 1.4.11 | 1.4.13 | 1.4.13 | (1.5.0)[3] | 1.4.11 | 1.4.13 | (1.6.2)[3] | (1.6.3)[3] | (1.6.4)[3] | (1.6.5)[3] |
cirrus | (1.3.2) | (1.3.2) | (1.3.2) | 1.4.0 | (1.3.2) | (1.3.2) | 1.5.2 | 1.5.2 | 1.5.3 | 1.5.3 |
apm | 1.2.2 | 1.2.3 | 1.2.4 | removed | 1.2.3 | 1.2.3 | 1.2.5 | 1.2.5 | 1.2.5 | 1.2.5 |
glint | 1.2.4 | 1.2.5 | 1.2.6 | 1.2.7 | 1.2.5 | 1.2.6 | 1.2.8 | 1.2.8 | 1.2.8 | 1.2.9 |
trident | 1.3.3 | 1.3.4 | 1.3.4 ? | 1.3.5 | 1.3.4 | 1.3.4 | 1.3.6 | 1.3.6 | 1.3.7 | 1.3.8 |
savage | (2.3.1) | (2.3.1) | (2.3.3) | (2.3.4) | (2.3.2) | (2.3.3) | (2.3.6)[4] | (2.3.7)[4] | (2.3.8)[4] | (2.3.9)[4] |
xserver-1.7.7 の環境下にて最新の driver を make することができるか否かが気になるところです.
FreeBSD 8.2 + X.Org 7.5 (2) および FreeBSD 8.4 + X.Org 7.7 (2) にて,cirrus, trident および自前の patch をあてた mga が make できることは確認しました.
(ここで「最新の driver」とは,この時点での git 版のことです.)
[1] xf86-input-keyboard 1.6.1, 1.7.0, 1.8.0, 1.8.1 を PC-98 に対応させる patch は X on FreeBSD (3) にて配布しています.
[2] xserver は二つとも ports/x11-servers/xorg-server/ から導入します. ただし,同時に二つを導入することはできません. default は xserver-1.7.7 です. xserver-1.10.6 または xserver-1.12.4 を利用するには,(1) GPU が Nvidia または Intel であること,(2) Intel の場合には OS の kernel が KMS に対応していること,が条件です. こちらを導入したければ,/etc/make.conf に WITH_NEW_XORG=yes を設定します. (あと,libdrm のために WITH_KMS=yes も必要です.)
[3] xf86-video-mga 1.5.0, 1.6.2, 1.6.3, 1.6.4, 1.6.5 を PC-98 に対応させる patch は X on FreeBSD (3) にて配布しています.
[4] xf86-video-savage 2.3.6, 2.3.7, 2.3.8, 2.3.9 を PC-98 に対応させる patch は X on FreeBSD (3) にて配布しています.
[5] xf86-input-keyboard 1.9.0 に対応する X Server は xserver-1.10 以上です.
以下の資料はすべて,ここからの link を設定しておりません.
先ず X.Org の ML ですが,以下の三つは PC-98 関連のソースの削除が話題です. 元に戻す場合の参考になるでしょう.
ここから [PATCH] Remove PC98 support. というスレッドが始まります.
http://lists.x.org/archives/xorg-devel/2011-September/025009.html
ここから [PATCH xf86-video-mga 4/4] Remove calls to xf86IsPc98() というスレッドが始まります.
http://lists.x.org/archives/xorg-devel/2011-September/025722.html
ここから [PATCH keyboard] Remove calls to xf86IsPc98() というスレッドが始まります.
http://lists.x.org/archives/xorg-devel/2011-September/025676.html
X.Org から 2011.11.20 付で [ANNOUNCE] xorg-server 1.11.99.1 という広報が出ました.
http://www.mail-archive.com/xorg-announce@lists.freedesktop.org/msg01536.html
"Remove PC98 support." とだけ書かれた簡潔な記述が冷厳です.
2012.6.6 には,X.Org 7.7 のリリース情報が出ました.
http://www.x.org/releases/X11R7.7/doc/xorg-docs/ReleaseNotes.html
Attributions/Acknowledgements/Credits には,xf86-video-cirrus の修正への貢献のためでしょうか,私の名前も載っております. でもまあ,xf86-video-mga の patch が反映されていないので,喜びもいまいちです.
FreeBSD ですが,X.Org 7.6 は飛ばして (?),早々に X.Org 7.7 の動作試験を始めました.
http://lists.freebsd.org/pipermail/freebsd-x11/2012-June/011952.html
ただまあ,KMS が FreeBSD のどの時点で標準的な機能として使えるようになるのかが分からないので,X.Org 7.7 の ports への採用も先が見えません. それと,PC-98 では KMS はどうなるのかが気になるところです.
→ FreeBSD/i386 9.1 にて KMS が標準装備になりました. これが PC-98 で動くのか否かは情報がありません.
→ 2013.6.28 の ports においては,X.Org 7.7 のものが数多く採用されています.