top page > X Window System > here

PC-98 における X.Org 7.7


概要

ここでは X.Org 7.7 の PC-98 に対するサポート状況について少しだけ詳しく述べます. (情報が入れば随時更新します.)

FreeBSD の ports における X.Org に関しては,このページを書き始めた時点では X.Org 7.7 は一部の module に限定されておりましたが,現時点での大部分が 7.7 になっています.


目次

1. はじめに
2. PC-98 と X.Org 7.7
3. 参考資料

1. はじめに

今回リリースされた X.Org 7.7 においては,PC-98 にとって重大な変更がなされています. すなわち,

  1. Video driver 以外のすべて (把握している限りでは X Server と keyboard driver) から,PC-98 に関連する部分が削除されています.
    なお,X Server は X.Org 7.7 にて xserver-1.12 になりますが,X.Org 7.6 の最後の xserver-1.11.4 までは PC-98 の部分が残っています.
  2. Video driver の xf86-video-{ trident, glint, cirrus } には,PC-98 の部分が残されています. この部分は X Server の version が 1.12 未満であれば反映され,PC-98 にて動作します.[1][2][3]

逆に考えれば,「FreeBSD が xserver-1.12 を採用するまでは,X.Org は PC-98 でも動作する」ということです. FreeBSD の ports/packages の傾向として,X Server は比較的古く (現在最新の FreeBSD 8.2 にて xserver-1.7.7),Video driver は最新のものを採用しています. 上記の変更は,このような使い方も想定して対処していると言えます.

ただし,注意しなければならないこともあります. すなわち,

  1. 一般論として,動作試験が十分にできていないグラフィックカードにとっては新しい driver が必ずしも良いというわけではない. (PC-98 はまさにこの状態である.[4])
  2. AT 互換機の場合も含めて,X Server と 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 になってからやっているわけですし.

2. PC-98 と X.Org 7.7

2.1  X Server

PC-98 に関連する部分ですが,ソースの中で #ifdef 等で場合分けをしているのではなく,完全に削除されています. ミスでなく方針としてそうなっています. 従って,PC-98 で動くように修正するのも,その patch を送付して正式に復活させるのも困難です.

X Server の新しい機能は PC-98 で動作するような古いグラフィックカードにおいてはほぼ意味がないと考えます. 従って,古い X Server を使い続ける方が合理的でしょう.

2.2  Video driver

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 が採用され易くなるでしょう. たぶん.

2.3  version のまとめ

「PC-98 にとって,やってはいけない version の組み合わせ」を表にしました. PC-98 にて X を使うためには,xserver, keyboard および利用する video driver がすべて PC-98 に対応している必要があります.
(参考のために表に載せましたが,mouse は今のところ機種に依存していないので意識しなくて良いです.)

version を () で囲んで薄い青色にした部分は,PC-98 に対応していないことを示します. また,各々の version としては以下のものを記しました.

  • 7.5 (1): X.Org 7.5 における最初のもの.
  • 7.6 (1): X.Org 7.6 における最初のもの.
  • 7.6 (2): X.Org 7.6 における最後のもの.
  • 7.7 (1): X.Org 7.7 における最初のもの.ports になっておりません.
  • 7.5 (2): FreeBSD 8.2 の release の際に ports に採用されたもの.
  • 7.5 (3): 2012.6.29 の時点で ports に採用されているもの. キーボードが使えません.[1]
    (FreeBSD 8.4-RELEASE (2013.6.3) の時点の ports でも,ここに記したことは同一でした.)
  • 7.7 (2): 2013.6.28 の時点で ports に採用されているもの. キーボードが使えません.[1]
    いきなり version が上がっているものが多いので,導入には要注意です.
  • 7.7 (3): 2013.12.30 の時点で ports に採用されているもの. キーボードが使えません.[1]
    (2014.11.28 の時点の ports でも,各々の version は変わっておりません.)
  • 7.7 (4): 2015.2.12 の時点で ports に採用されているもの. (これは下記の表には加えません.)
    X Server の選択肢がなくなり 1.14.7 のみとなりました.PC-98 では動作しません.
    driver は (3) と同じなので,X Server 1.7.7 を自力で導入し,(3) と同じ修正を施せば動作するでしょう.
  • 7.7 (5): 2015.12.10 の時点で ports に採用されているもの.
    X Server の選択肢がなくなり 1.17.4 のみとなりました.PC-98 では動作しません.
  • 7.7 (6): 2017.2.10 の時点で ports に採用されているもの.
    X Server 1.17.4 は PC-98 では動作しません.
    (表には反映させませんが,2017.4.9 の時点で X Server 1.18.4 です.同様に PC-98 では動作しません.)
X.Org と各 driver の 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.31.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.01.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.01.7.11.7.2 1.6.01.7.11.9.01.9.0 1.9.1 1.9.2
mga 1.4.11 1.4.131.4.13(1.5.0)[3] 1.4.111.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.21.5.2 1.5.3 1.5.3
apm 1.2.2 1.2.31.2.4removed 1.2.31.2.31.2.51.2.5 1.2.5 1.2.5
glint 1.2.4 1.2.51.2.61.2.7 1.2.51.2.61.2.81.2.8 1.2.8 1.2.9
trident 1.3.3 1.3.41.3.4 ?1.3.5 1.3.41.3.41.3.61.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 をあてた mgamake できることは確認しました.
(ここで「最新の 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.confWITH_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 以上です.

3. 参考資料

以下の資料はすべて,ここからの 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 のものが数多く採用されています.