Saya telah mengembangkan sistem file linux kecil saya sendiri menggunakan buildroot dan kotak sibuk . Saya menggunakan kernel linux-2.6.38.8 yang dikonfigurasi dan dikompilasi silang untuk sistem target (X86) sesuai dengan kebutuhan. Sekarang sistem file dibangun tetapi hanya memiliki shell busybox dan tidak mendukung GUI. Tidak memiliki manajer paket apa pun too.Now saya ingin mengaktifkan GUI di atasnya. Saya memeriksa /etc tapi tidak ada x11 direktori atau x11.conf file.Ini tidak mendukung startx juga.
How can I install x11(XFree86 or Xorg) on my system Explicitly.
I also want to install a package-manager for my system.
Bagaimana ini bisa dicapai?
Jawaban yang Diterima:
Host Ubuntu 16.04, Buildroot 2017.02
Buildroot saat ini memiliki paket X11 yang membuat segalanya "mudah" bagi kami:https://github.com/buildroot/buildroot/tree/2016.05/package/x11r7
Repo ini membangun seluruh sistem untuk Anda dalam satu perintah:https://github.com/cirosantilli/linux-kernel-module-cheat/tree/b134f3958884ce1fce2dd9d31d19ab0c0fbe9089#x11
Sebagai alternatif, berikut adalah .config
yang telah diparapara sebelumnya file:https://github.com/cirosantilli/buildroot-configs/blob/44b45b5c7f68e44abcda360a2b980f8301901a9a/qemu_x86_64_x11_defconfig
Ini adalah konfigurasi spesifik X11 minimal yang berhasil saya dapatkan adalah:
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
Berikut adalah bagaimana Anda dapat menambahkan opsi tersebut ke .config
Anda yang sudah ada :Apakah mungkin menggunakan fragmen konfigurasi dengan .config Buildroot? | Stack Overflow
Bagaimana saya menemukan opsi:make menuconfig
, cari nama opsi dengan /
, lalu bekerja mundur dependes
dari xeyes
.
Sayangnya, Anda masih perlu mengetahui apa yang Anda lakukan, terutama karena situasi di mana dua paket berbeda mengimplementasikan antarmuka (mis. X.Org Modular vs KDrive keduanya mengimplementasikan server X11), dan tidak ada yang dipilih secara default.
Artikel ini sangat membantu:Membangun Sistem Linux X.Org kecil menggunakan Buildroot | agentoss.wordpress.com
Maka seperti biasa:
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
Dan dari dalam QEMU:
root
startx
Ukuran gambar:28M.
Hasil
Sistem X11 kuno!
Dan berperilaku seperti di video ini:https://upload.wikimedia.org/wikipedia/commons/transcoded/5/52/TWM_without_configuration.ogv/TWM_without_configuration.ogv.480p.webm
Secara khusus, pengelola jendela kuno ini tidak memiliki tombol tutup X pada bilah menu:Anda harus:
- klik desktop
- pilih “bunuh” dari menu
- pilih jendela yang ingin Anda bunuh
startx
lalu lewati /etc/X11/xinit/xinitrc
untuk xinit
, yang memanggilnya setelah memulai GUI. Default xinitrc
berisi:
twm &
xclock -geometry 50x50-1+1 &
xterm -geometry 80x50+494+51 &
xterm -geometry 80x20+494-0 &
exec xterm -geometry 80x66+0+0 -name login
yang memulai manajer jendela kami twm
(coba ubah untuk salah satu manajer lain yang paketnya dimiliki Buildroot), dan program yang kita lihat di layar. LAKUKAN apa itu exec xterm
bagian? Mengapa exec
?
x11vnc
Saat Anda berpindah dari emulator ke perangkat nyata, x11vnc
membebaskan Anda dari membeli layar:itu membuka layar sebagai jendela di host Anda, dan bahkan dapat mengirim klik mouse ke perangkat.
Aktifkan x11vnc
paket di Buildroot dan bangun kembali.
Untuk menguji QEMU terlebih dahulu, gunakan opsi (lihat juga Bagaimana cara SSH dari host ke tamu menggunakan QEMU? | Unix &Linux Stack Exchange ):
-net nic,model=virtio
-net user,hostfwd=tcp::5901-:5900
lalu pada tamu startx
, dan jalankan:
x11vnc
Dan kembali ke host:
sudo apt-get install vinagre
vinagre localhost::5901
Hasil:
- di sebelah kiri, QEMU menjalankan X11, x11vnc dan glmark2
- di sebelah kanan, vinagre di host, menunjukkan hal yang sama persis
- Saya dapat mengklik dan berinteraksi dengan salah satunya, dan pembaruan lainnya secara instan
Pengelola tampilan (usaha yang gagal)
Jika Anda ingin melupakan terminal sepenuhnya, aktifkan juga:
- Paket target
- Perpustakaan dan aplikasi grafis
X.Org X Window System
:keduanya kliky
laluenter
untuk masukX11R7 Applications
xconsole
(dijalankan olehxdm
secara default)xdm
- Perpustakaan dan aplikasi grafis
Sekarang ketika Anda memulai QEMU, Anda disajikan dengan layar login grafis seperti distro "modern":
TODO:tidak bisa login. Nama pengguna root
/ kata sandi kosong berfungsi untuk saya pada pengujian lain dengan SEMUA paket X11 diinstal. xdm
letakkan log di bawah /var/log/xdm.log
, dan Anda bisa mendapatkan TTY Shell untuk memeriksanya dengan:Bagaimana saya bisa ctrl-alt-f# untuk mendapatkan TTY dalam sesi QEMU? | Tanya Ubuntu
Rantai panggilan yang memulai pengelola tampilan adalah:
/init
(disediakan oleh BusyBox)/etc/inittab
baris::sysinit:/etc/init.d/rcS
/etc/init.d/rcS
/etc/init.d/S99xdm
/usr/bin/xdm