動作しているLinuxカーネルがある評価ボードにXorgを追加しようとしています。評価ボードにはLCDディスプレイがあり、簡単なqt4デモアプリケーションを実行してハードウェアとドライバが動作していることを確認できました。
これを行うには、「グラフィックアプリケーション」でX11オプションを有効にしました。関連する構成オプションは次のとおりです。
BR2_PACKAGE_XORG7=y
#
# X11R7 Servers
#
BR2_PACKAGE_XSERVER_XORG_SERVER=y
BR2_PACKAGE_XSERVER_XORG_SERVER_VIDEODRV_ABI_24=y
BR2_PACKAGE_XSERVER_XORG_SERVER_VIDEODRV_ABI=24
BR2_PACKAGE_XSERVER_XORG_SERVER_V_1_20=y
# BR2_PACKAGE_XSERVER_XORG_SERVER_V_1_17 is not set
# BR2_PACKAGE_XSERVER_XORG_SERVER_V_1_14 is not set
BR2_PACKAGE_XSERVER_XORG_SERVER_VERSION="1.20.5"
# BR2_PACKAGE_XSERVER_XORG_SERVER_MODULAR is not set
BR2_PACKAGE_XSERVER_XORG_SERVER_KDRIVE=y
BR2_PACKAGE_XSERVER_XORG_SERVER_KDRIVE_EVDEV=y
BR2_PACKAGE_XSERVER_XORG_SERVER_KDRIVE_KBD=y
BR2_PACKAGE_XSERVER_XORG_SERVER_KDRIVE_MOUSE=y
コンパイルが正常に終了しました。ボードにはすでにuboot、Linuxカーネル、およびフラッシュファイルシステムが含まれています。修正をテストするためにLinuxカーネルを更新し、nfsを介してマウントし、buildrootで作成された新しいファイルシステムにルートを指定しました。
xinit xterm
そこで実行して、LCDにいくつかの出力が表示されると予想します。残念ながら、次のエラーが原因でサーバーが失敗します。
# xinit xterm
xinit: unable to run server "X": No such file or directory
Use the -- option, or make sure that /usr/bin is in your path and
that "X" is a program or a link to the right type of server
for your display. Possible server names include:
Xorg Common X server for most displays
Xvfb Virtual frame buffer
Xfake kdrive-based virtual frame buffer
Xnest X server nested in a window on another X server
Xephyr kdrive-based nested X server
Xvnc X server accessed over VNC's RFB protocol
Xdmx Distributed Multi-head X server
これでbuildrootによって生成されたrootfsがありますが、/usr/bin/X
これは単なるリンクですXfbdev
。
$ ls usr/bin/X -l
lrwxrwxrwx 1 root root 6 Oct 1 14:44 usr/bin/X -> Xfbdev
Xfbdev
残念ながら、同じフォルダにはそのようなものはありません。ファイルシステムが nfs を介してマウントされると、リンク先が見つからX
ないためリンクが消えます。
ここでは多くのステップをスキップしていることを知っていますが(qt4スタンドアロンアプリを見ることができるので、フレームバッファドライバが動作していると仮定します)、わかりませXfbdev
んrootfs
。
私が正しく理解しているなら、これはXorgサーバーとしてTinyX / kdriveが選択されたときにbuildrootによってアクティブになるXfbdev
小さなビルドになります。それでは、実行可能ファイルがなく、それを指すシンボリックリンクのみがX11
あるのはなぜですか?/usr/bin