私は独自の小さなLinuxファイルシステムを開発しました。ルートディレクトリの構築そして忙しい箱。必要に応じて、ターゲットシステム(X86)用に構成され、クロスコンパイルされたlinux-2.6.38.8カーネルを使用しました。これでファイルシステムが構築されましたが、Business Boxシェルのみがあり、GUIはサポートされていません。これでパッケージマネージャはありません。ここでGUIを有効にしたいと思います。確認しました/などしかし、何もありません。x11ディレクトリまたはx11.conf文書。サポートしていない開始xまた。
How can I install x11(XFree86 or Xorg) on my system Explicitly.
I also want to install a package-manager for my system.
これはどのように達成できますか?
答え1
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つの異なるパッケージがインターフェイスを実装している状況(X.Org ModularとKDriveの両方がX11サーバーを実装している)のため、現在実行されていることを知っておく必要があり、デフォルトでは何も選択されていません。
この記事は大きな助けになりました: Buildrootを使用した小規模なX.Org Linuxシステムの構築 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
その後、GUIを起動した後に呼び出される/etc/X11/xinit/xinitrc
に渡されます。xinit
基本的には以下が含まれます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つに変更してみてください)と画面に表示されるプログラムが起動します。 TODO そのexec xterm
部分は何ですか?なぜexec
?
x11vnc
エミュレータから物理デバイスに移動するときにx11vnc
モニタを購入する必要はありません。モニタは、ホストコンピュータで画面をウィンドウに開き、マウスクリックをデバイスに送信することもできます。
Buildrootでパッケージを有効にしx11vnc
て再構築します。
QEMUで最初にテストするには、オプションを使用します(参照:QEMUを使用してホストからゲストにSSHをどのように接続しますか? UnixとLinuxのスタック交換 ):
-net nic,model=virtio \
-net user,hostfwd=tcp::5901-:5900
その後、ゲストで実行しますstartx
。
x11vnc
ホストに戻る:
sudo apt-get install vinagre
vinagre localhost::5901
結果:
- 左側では、QEMU は X11、x11vnc、および glmark2 を実行します。
- 右側には、ホストシステムの vinagre がまったく同じ内容を示しています。
- 一方をクリックして対話すると、もう一方がすぐに更新されます。
また見なさい:モニターなしでラズベリーファイを設定するには?ラズベリーパイスタック交換|
ディスプレイマネージャ(試行失敗)
端末を完全に忘れたい場合は、以下を有効にすることもできます。
- ターゲットパッケージ
- グラフィックライブラリとアプリケーション
X.Org X Window System
: 両方をクリックy
してenter
EnterX11R7 Applications
xconsole
(xdm
デフォルトで実行)xdm
- グラフィックライブラリとアプリケーション
QEMUを起動すると、「最新」ディストリビューションに似たグラフィカルログイン画面が表示されます。
TODO: ログインできません。すべてのX11パッケージがインストールされている他のテストでは、ユーザー名root
/空のパスワードが有効でした。xdm
以下にログを入力する/var/log/xdm.log
と、TTYシェルを使用して確認できます。ctrl-alt-f#を押してQEMUセッションでTTYにアクセスするには? | Ubuntuに尋ねる
ディスプレイマネージャを起動するコールチェーンは次のとおりです。
/init
(ビジーボックス提供)/etc/inittab
ワイヤー::sysinit:/etc/init.d/rcS
/etc/init.d/rcS
/etc/init.d/S99xdm
/usr/bin/xdm
答え2
Xを直接ビルドする必要があります。読書から始めましょうこのX.Org Wikiエントリ。
このガイドは、ソースコードからX Window Systemを構築したい開発者向けです。関心のある分野がドライバやアプリケーションなどの単一のソフトウェアパッケージに制限されている場合は、まずオペレーティングシステムで開発機能に問い合わせてください。
パッケージマネージャの場合は、1つを選択し、必要なすべての依存関係を満たしてからその内容をパッケージ化する必要があります(単にdpkg / rpm /何でも選択したとしても、deb / RPM / ...パッケージはあなたのディストリビューションと魔法のように)。 Arch LinuxのPacmanは構築が簡単に見えます。