N=1

主にコンピュータ技術関連のことを投稿。 / 投稿は個人の意見であり所属団体の立場を代表するものではありません。

X11R7.1 俺環境のまとめ

運悪く今の環境が消えてなくなってしまったときのために。

  • Kernel 2.6.17.14
  • fontconfig-2.3.2

libdrm-2.0 を先に入れる( http://dri.freedesktop.org/libdrm/ )
古くても新しくても駄目で、Mesa-6.5に一番近い日付の2.0.1を使った

必要なパッケージをとってくる

全部同じ場所に置く

X11R7.1
$ mkdir xc && cd xc &&
  wget -nd -A bz2 -r -l 1  http://www.t.ring.gr.jp/pub/X/opengroup/X11R7.0/src &&
  wget -nd -A bz2 -r -l 1  http://www.t.ring.gr.jp/pub/X/opengroup/X11R7.0/src &&
kernel header のパッチ
$ wget http://www.linuxfromscratch.org/patches/downloads/glibc/glibc-2.3.6-linux_types-1.patch

準備

Mesa をあらかじめ展開して設定しておく
$ for file in `ls Mesa*-6.5.tar.bz2`; do tar xvjf $file; done && cd Mesa-6.5 &&
  sed -i "s@/usr/local@/usr@g" configs/default &&
  sed -i -e "s@/usr/include@/usr/include/X11@g" -e "s@/usr/X11R6/lib@/usr/lib@g" configs/{default,linux*} &&
  sed -i 's@lib/modules@lib/X11/modules@' src/glx/x11/dri_glx.c &&
  sed -i 's@lib/modules@lib/X11/modules@' src/mesa/drivers/dri/Makefile.template
ビルドスクリプトを編集

build-from-tarballs.sh の 先頭に追加

export CFLAGS="-O2 -fforce-addr -fomit-frame-pointer -funroll-loops -march=athlon -mmmx -mmmx2 -m3dnow -mfpmath=sse"
export PKG_CONFIG_PATH=/usr/lib/pkgconfig

Mesa を app, xserver の前に作るため、最後の方編集

build_doc
build_proto
build_lib
build data xbitmaps
build_util #← 下にあったのをココに移動
#追加
cd Mesa-6.5 && make linux-dri-x86 &&
sudo "./bin/installmesa /usr && mkdir -v -p /usr/lib/X11/modules/dri && install -v -m755 lib/*dri* /usr/lib/X11/modules/dri" &&
cd .. || exit 1
#/追加
build_xserver
build_app
build_driver
build_data
build_font

他に、build app ****, build driver ****, build font ****などを削る http://lists.x.org/archives/xorg-modular/2005-November/000801.html
あとこの方法だと glxgear 等がビルドされないから後で個別にやる

kernel header にパッチを当てる
# cd /usr/include/sys && patch -Np6 -i /home/ishn/src/xc/glibc-2.3.6-linux_types-1.patch

ビルドスクリプトを実行

$ CACHE=/home/ishn/src/xc/config.cache \
  CONFFLAG="--sysconfdir=/etc  --localstatedir=/var --datadir=/usr/lib" \
  ./build-from-tarballs.sh -e -m /home/ishn/src/xc/Mesa-6.5 -s sudo /usr 2>&1 | tee build.log
  • CACHE=/home/ishn/src/xc/config.cache: 時間短縮
  • CONFFLAG="--sysconfdir=/etc --localstatedir=/var --datadir=/usr/lib": LFS な配置に
  • -e: 現在のディレクトリに tarball が全部ある場合
  • -m /home/ishn/src/xc/Mesa-6.5: Mesa のソースディレクトリを指定
  • -s sudo: sudo コマンドの指定

sudo だと、libX11 や Mesa や xorg-server といった make に時間のかかるものを install するとき sudo がタイムアウトしちゃって放置できなくなってしまうから、sudo 使わずに root で作業したほうがいいかも

設定する

http://www.linuxfromscratch.org/blfs/view/svn/x/x-setup.html このへんを読めばOK
/usr/X11R6/lib/X11/fonts/TTF 等の移動もしておく