前の記事では、WITH_NEW_XORG を有効にしないで、ビルドする方法の解説でしたが、 ようやくWITH_NEW_XORG を有効にして、Xorg をビルドすることができました。
もっとも、ビルドできただけなので、どこまできちんと動作するのかは正直まだ未知数ではありますが・・。
せっかくなので、とりあえず、fvwm2 も追加で入れて写真をとってみました。たまに落ちたりもしますが、動くことは動くみたいです。
詳しいビルド方法については、現在 github に必要なパッチを適用した ports を入れたリポジトリと一緒に、ドキュメントを公開しています。
freebsd-ports-xorg-raspberrypi
同じドキュメントの日本語版は以下になります。
FreeBSD on RaspberryPi での Xorg のビルド方法
1: 事前準備
このビルドで使用する FreeBSD RaspberryPi のイメージは、"MALLOC_PRODUCTION=yes" オプションを有効にしてビルドしてください。このオプションが設定されていないと、jemalloc 問題 (Failed assertion) で glib20 がビルドに失敗する原因になります。イメージをビルドするのに crochet-freebsd を使用している場合は、"__MAKE_CONF"オプションを指定することで、ビルドに使用する "make.conf" の指定ができます。
"WITH_NEW_XORG=yes" を指定したビルドも可能ですので、その場合は、このオプションを "make.conf" に設定してください。
2: ports tree の取得
イメージ作成時に、crochet-freebsd では "UsrPorts" オプションを指定することで、ports tree をあらかじめインストールすることができます。もしくは、RPI 上で以下のコマンドを使用して、手動で ports tree を取得することもできます。
# portsnap fetch # portsnap extract # cd /usr/ports # make fetchindex
3: 修正版の適用
ビルドを無事に完了させるために、事前に ports tree に修正を適用する必要があります。
(1) x11/xorg-server
Aleksandr Rybalko 氏が作成された FreeBSD ARM でxorg-server がビルドできない問題の修正版
# fetch --no-verify-peer https://github.com/rayddteam/x11-servers-xorg-server/archive/master.zip # unzip master.zip # rm master.zip # cd x11-servers-xorg-server-master # cp -rf * /usr/ports/x11-servers/xorg-server/ # cd ../
(2) x11-drivers/xf86-video-scfb
Aleksandr Rybalko 氏による xf86-video-scfb の移植版
# fetch --no-verify-peer https://github.com/rayddteam/xf86-video-scfb/archive/master.zip # unzip master.zip # rm master.zip # cp -rf xf86-video-scfb-master /usr/ports/x11-drivers/xf86-video-scfb/
(3) x11-font/fontconfig, x11/pixman
デフォルトビルドで、x11-fonts/fontconfig の fc-cache が ARM で Segmentation fault (core dumped) する問題 (ports/181372)、 及び、ARM で x11/pixman がビルドできない問題 (ports/181372)、の修正版
# fetch --no-verify-peer https://github.com/taguchi-ch/freebsd-ports-xorg-raspberrypi/archive/master.zip # unzip master.zip # rm master.zip # cd freebsd-ports-xorg-raspberrypi-master/x11-fonts/fontconfig/ # cp -rf * /usr/ports/x11-fonts/fontconfig/ # cd ../../x11/pixman/ # cp -rf * /usr/ports/x11/pixman/
(4) graphics/libGL, graphics/dri
ARM で "WITH_NEW_XORG=yes" オプションを有効にしてビルドした場合に、graphics/libGL や graphics/dri で 発生するエラーを修正する Olivier Cochard-Labbe 氏によるパッチ(ports/176703・ports/176705) の適用版。 いずれも graphics/libGL の修正のみで問題が解決します。
# cd ../../graphics/libGL/ # cp -rf * /usr/ports/graphics/libGL/
(5) security/libgcrypt
security/libgcrypt のARM ビルド問題 (ports/181365・Rui Paulo 氏) は PR が採用されたため、現時点では解決済みです。
4: Xorg のビルド
# cd /usr/ports/x11/xorg/ # make config-recursive
注意: オプション設定では、ビデオドライバは一切必要はありません。RPI で使用するビデオドライバは後ほどインストールする xf86-video-scfb です。
# make install clean
5: xf86-video-scfb のビルド
# cd /usr/ports/x11-drivers/xf86-video-scfb/ # ./configure # make install clean
6: xorg.conf の作成
'Xorg -configure' は現時点ではまだ RPI では機能しません。そのため、自分で "/etc/X11/xorg.conf" を作成する必要があります。 しかし、Aleksandr Rybalko 氏が作成された "xorg.conf" の設定が公開されているので、その設定を "xorg.conf" にコピーするだけで済みます。
設定内容:
Section "Files" EndSection Section "Module" Load "dbe" Disable "dri" Disable "dri2" Disable "glx" SubSection "extmod" Option "omit xfree86-dga" EndSubSection EndSection Section "ServerFlags" Option "AIGLX" "false" Option "NoAccel" "True" Option "NoDRI" "True" Option "DRI" "False" Option "DRI2" "False" EndSection Section "InputDevice" Identifier "Keyboard1" Driver "kbd" EndSection Section "InputDevice" Identifier "Mouse1" Driver "mouse" Option "Protocol" "auto" Option "Device" "/dev/sysmouse" EndSection Section "Monitor" Identifier "Monitor" Mode "1024x600" DotClock 25.175 HTimings 1024 1048 1148 1200 VTimings 600 610 620 700 EndMode EndSection Section "Device" Identifier "Generic FB" Driver "scfb" Option "NoAccel" "True" EndSection Section "Screen" Identifier "Screen" Device "Generic FB" Monitor "Monitor" DefaultDepth 16 SubSection "Display" Depth 16 Modes "1024x600" EndSubsection EndSection Section "ServerLayout" Identifier "layout" Screen 0 "Screen" 0 0 InputDevice "Mouse1" "CorePointer" InputDevice "Keyboard1" "CoreKeyboard" EndSection
7: rc.conf への設定追加
# echo 'dbus_enable="YES"' >> /etc/rc.conf # echo 'hald_enable="YES"' >> /etc/rc.conf
8: dbus・hald の起動
# /usr/local/etc/rc.d/dbus start # /usr/local/etc/rc.d/hald start
9: xorg の起動
% startx
0 件のコメント:
コメントを投稿