GNU/Linux >> Belajar Linux >  >> Linux

Linux – Bagaimana Cara Menginstal X11 Pada Sistem Buildroot Linux Sendiri?

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
Terkait:Mengurai XML dari skrip shell?

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 klik y lalu enter untuk masuk
        • X11R7 Applications
          • xconsole (dijalankan oleh xdm secara default)
          • xdm

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

Linux
  1. Cara memeriksa Versi OS dan Linux

  2. Bagaimana mengubah identitas sistem Linux

  3. Bagaimana cara menginstal 'convert' pada sistem linux?

  1. Cara Menginstal ManageEngine OpManager di Linux

  2. Cara Menginstal dan Menggunakan Git di Sistem Linux

  3. Bagaimana Cara Menginstal R 3.3.1 Di Direktori Sendiri?

  1. Cara Memasang Alat Pemantau Sistem Gtop di Linux

  2. Cara Mengubah Shell Default di Sistem Linux

  3. Cara Install Eclipse IDE Terbaru di Linux