buildrootを使用して独自の小さなLinuxファイルシステムを開発しました およびbusybox 。必要に応じてターゲットシステム(X86)用に構成およびクロスコンパイルされたlinux-2.6.38.8カーネルを使用しました。これでファイルシステムは構築されましたが、busyboxシェルのみであり、GUIをサポートしていません。パッケージマネージャーはありません。ここで、GUIを有効にします。 / etcをチェックしました しかし、 x11はありませんでした ディレクトリまたはx11.conf file.Itはstartxをサポートしていません
もHow can I install x11(XFree86 or Xorg) on my system Explicitly.
I also want to install a package-manager for my system.
これはどのように達成できますか?
承認された回答:
Ubuntu 16.04ホスト、Buildroot 2017.02
現在のBuildrootにはX11パッケージがあり、これにより「簡単」になります:https://github.com/buildroot/buildroot/tree/2016.05/package/x11r7
このリポジトリは、単一のコマンドでシステム全体を構築します:https://github.com/cirosantilli/linux-kernel-module-cheat/tree/b134f3958884ce1fce2dd9d31d19ab0c0fbe9089#x11
または、事前に準備された.config
を次に示します。 ファイル:https://github.com/cirosantilli/buildroot-configs/blob/44b45b5c7f68e44abcda360a2b980f8301901a9a/qemu_x86_64_x11_defconfig
これは、私が管理した最小限のX11固有の構成です。
BR2_PACKAGE_XAPP_TWM=y
BR2_PACKAGE_XAPP_XCALC=y
BR2_PACKAGE_XAPP_XCLOCK=y
BR2_PACKAGE_XAPP_XEYES=y
BR2_PACKAGE_XAPP_XINIT=y
BR2_PACKAGE_XDRIVER_XF86_INPUT_KEYBOARD=y
BR2_PACKAGE_XDRIVER_XF86_INPUT_MOUSE=y
BR2_PACKAGE_XDRIVER_XF86_VIDEO_CIRRUS=y
BR2_PACKAGE_XDRIVER_XF86_VIDEO_FBDEV=y
BR2_PACKAGE_XDRIVER_XF86_VIDEO_VESA=y
BR2_PACKAGE_XORG7=y
BR2_PACKAGE_XSERVER_XORG_SERVER=y
BR2_PACKAGE_XTERM=y
BR2_TOOLCHAIN_BUILDROOT_CXX=y
BR2_TOOLCHAIN_BUILDROOT_WCHAR=y
BR2_USE_WCHAR=y
これらのオプションを既存の.config
に追加する方法は次のとおりです。 :Buildrootの.configで構成フラグメントを使用することは可能ですか? |スタックオーバーフロー
オプションを見つけた方法:make menuconfig
、/
でオプション名を検索 、次に逆方向に作業しますdependes
xeyes
から 。
残念ながら、主に2つの異なるパッケージがインターフェイスを実装し(たとえば、どちらもX11サーバーを実装するX.Org ModularとKDrive)、デフォルトでは何も選択されていないため、何をしているのかを知る必要があります。
>この記事は大いに役立ちました:Buildrootを使用した小さなX.OrgLinuxシステムの構築| agentoss.wordpress.com
その後、いつものように:
make BR2_JLEVEL=$(nproc)
qemu-system-x86_64
-enable-kvm
-M pc
-m 512
-kernel output/images/bzImage
-drive file=output/images/rootfs.ext2,if=virtio,format=raw
-append root=/dev/vda
-net nic,model=virtio
-net user
そしてQEMUの内部から:
root
startx
画像サイズ:28M。
結果
古風なX11システム!
そして、それはこのビデオのように動作します:https://upload.wikimedia.org/wikipedia/commons/transcoded/5/52/TWM_without_configuration.ogv/TWM_without_configuration.ogv.480p.webm
特に、この古風なウィンドウマネージャーには、メニューバーにX閉じるボタンがありません。次のことを行う必要があります。
- デスクトップをクリック
- メニューから「キル」を選択
- 強制終了するウィンドウを選択します
startx
次に、/etc/X11/xinit/xinitrc
を渡します xinit
へ 、GUIの起動後に呼び出します。デフォルトのxinitrc
含まれるもの:
twm &
xclock -geometry 50x50-1+1 &
xterm -geometry 80x50+494+51 &
xterm -geometry 80x20+494-0 &
exec xterm -geometry 80x66+0+0 -name login
これでウィンドウマネージャーが起動しますtwm
(Buildrootにパッケージがある他のマネージャーの1つに変更してみてください)、および画面に表示されるプログラム。そのexec xterm
とは 部?なぜexec
?
x11vnc
エミュレータから実際のデバイスに移動するときは、x11vnc
ディスプレイを購入する必要がなくなります。画面がホストのウィンドウとして開き、マウスクリックをデバイスに送信することもできます。
x11vnc
を有効にします Buildrootのパッケージと再構築。
最初にQEMUでテストするには、オプションを使用します(QEMUを使用してホストからゲストにSSHで接続する方法も参照してください。|UnixおよびLinuxStackExchange):
-net nic,model=virtio
-net user,hostfwd=tcp::5901-:5900
次にゲストのstartx
、実行:
x11vnc
そしてホストに戻る:
sudo apt-get install vinagre
vinagre localhost::5901
結果:
- 左側、X11、x11vnc、glmark2を実行しているQEMU
- 右側、ホストの酢、まったく同じものを示しています
- どちらかをクリックして操作でき、他の更新もすぐに実行できます
ディスプレイマネージャー(試行の失敗)
ターミナルを完全に忘れたい場合は、以下も有効にしてください:
- ターゲットパッケージ
- グラフィックライブラリとアプリケーション
-
X.Org X Window System
:両方ともy
をクリックします 次に、enter
入るX11R7 Applications
-
xconsole
(xdm
によって実行されます デフォルト) -
xdm
-
-
- グラフィックライブラリとアプリケーション
QEMUを起動すると、「最新の」ディストリビューションのようなグラフィカルなログイン画面が表示されます。
TODO:ログインできません。ユーザー名root
/空のパスワードは、すべてのX11パッケージがインストールされている別のテストで機能していました。 xdm
ログを/var/log/xdm.log
の下に置きます 、およびTTYシェルを取得して検査できます。ctrl-alt-f#を使用してQEMUセッションでTTYにアクセスするにはどうすればよいですか? | Ubuntuに聞く
ディスプレイマネージャを起動するコールチェーンは次のとおりです。
-
/init
(BusyBoxが提供) -
/etc/inittab
行::sysinit:/etc/init.d/rcS
-
/etc/init.d/rcS
-
/etc/init.d/S99xdm
-
/usr/bin/xdm