GNU/Linux >> Znalost Linux >  >> Linux

Linux – Jak nainstalovat X11 na vlastní Linux Buildroot System?

Vyvinul jsem svůj vlastní malý linuxový souborový systém pomocí buildroot a busybox . Použil jsem jádro linux-2.6.38.8 nakonfigurované a křížově zkompilované pro cílový systém (X86) podle potřeb. Nyní je souborový systém vytvořen, ale má pouze busybox shell a nepodporuje GUI. Nemá žádný správce balíčků taky. Nyní na něm chci povolit GUI. Zkontroloval jsem /etc ale nebyl tam žádný x11 adresář nebo x11.conf file.Nepodporuje startx taky.

How can I install x11(XFree86 or Xorg) on my system Explicitly.

I also want to install a package-manager for my system.

Jak toho lze dosáhnout?

Přijatá odpověď:

Hostitel Ubuntu 16.04, Buildroot 2017.02

Aktuální Buildroot má balíček X11, který nám vše „usnadňuje“:https://github.com/buildroot/buildroot/tree/2016.05/package/x11r7

Toto repo vám sestaví celý systém jediným příkazem:https://github.com/cirosantilli/linux-kernel-module-cheat/tree/b134f3958884ce1fce2dd9d31d19ab0c0fbe9089#x11

Alternativně je zde předpřipravený .config soubor:https://github.com/cirosantilli/buildroot-configs/blob/44b45b5c7f68e44abcda360a2b980f8301901a9a/qemu_x86_64_x11_defconfig

Toto jsou minimální konfigurace specifické pro X11, které se mi podařilo obejít:

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

Zde je návod, jak můžete přidat tyto možnosti do vašeho stávajícího .config :Je možné použít konfigurační fragmenty s .config Buildroot? | Přetečení zásobníku

Jak jsem našel možnosti:make menuconfig , hledejte názvy možností pomocí / , pak postupujte zpětně dependes z xeyes .

Bohužel stále potřebujete vědět, co děláte, hlavně kvůli situacím, kdy dva různé balíčky implementují rozhraní (např. X.Org Modular vs KDrive, z nichž oba implementují X11 server), a ve výchozím nastavení není vybrán žádný.

Tento článek hodně pomohl:Vytvoření malého systému X.Org Linux pomocí Buildroot | agentoss.wordpress.com

Pak už jen obvyklé:

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

A zevnitř QEMU:

root
startx

Velikost obrázku:28M.

Výsledek

Archaický systém X11!

A chová se stejně jako na tomto videu:https://upload.wikimedia.org/wikipedia/commons/transcoded/5/52/TWM_without_configuration.ogv/TWM_without_configuration.ogv.480p.webm

Konkrétně tento archaický správce oken nemá na lištách nabídek tlačítko pro zavření X:museli jste:

  • klikněte na plochu
  • z nabídky vyberte „zabít“
  • vyberte okno, které chcete zabít

startx poté předá /etc/X11/xinit/xinitrc na xinit , který jej volá po spuštění GUI. Výchozí xinitrc obsahuje:

twm &
xclock -geometry 50x50-1+1 &
xterm -geometry 80x50+494+51 &
xterm -geometry 80x20+494-0 &
exec xterm -geometry 80x66+0+0 -name login

který spustí správce oken twm (zkuste to změnit u některého z jiných manažerů, pro které má Buildroot balíčky) a programů, které vidíme na obrazovce. TODO co je to exec xterm část? Proč exec ?

x11vnc

Když přejdete od emulátoru ke skutečnému zařízení, x11vnc zbaví vás nákupu displeje:otevře obrazovku jako okno vašeho hostitele a může dokonce odesílat kliknutí myší do zařízení.

Povolte x11vnc balíček na Buildroot a znovu sestavit.

Chcete-li nejprve otestovat QEMU, použijte možnosti (viz také Jak SSH z hostitele na hosta pomocí QEMU? | Unix &Linux Stack Exchange ):

-net nic,model=virtio 
-net user,hostfwd=tcp::5901-:5900

pak na guest startx a spusťte:

x11vnc

A zpět na hostiteli:

sudo apt-get install vinagre
vinagre localhost::5901

Výsledek:

  • vlevo, QEMU se systémem X11, x11vnc a glmark2
  • vpravo, vinagre na hostiteli, ukazuje přesně to samé
  • Mohu kliknout a pracovat s jedním a druhý se okamžitě aktualizuje
Související:Analýza XML ze skriptu shellu?

Správce zobrazení (neúspěšný pokus)

Pokud chcete na terminál úplně zapomenout, povolte také:

  • Cílit na balíčky
    • Grafické knihovny a aplikace
      • X.Org X Window System :oba klepněte na y a poté enter jít dovnitř
        • X11R7 Applications
          • xconsole (spouští xdm ve výchozím nastavení)
          • xdm

Nyní, když spustíte QEMU, zobrazí se vám grafická přihlašovací obrazovka jako „moderní“ distribuce:

TODO:nelze se přihlásit. Uživatelské jméno root / prázdné heslo mi fungovalo při dalším testu se VŠEMI nainstalovanými balíčky X11. xdm vloží protokoly pod /var/log/xdm.log , a můžete získat TTY shell, pomocí kterého jej můžete zkontrolovat:Jak mohu ctrl-alt-f# dostat se k TTY v relaci QEMU? | Zeptejte se Ubuntu

Řetězec volání, který spouští správce zobrazení, je:

  • /init (poskytuje BusyBox)
  • /etc/inittab řádek ::sysinit:/etc/init.d/rcS
  • /etc/init.d/rcS
  • /etc/init.d/S99xdm
  • /usr/bin/xdm

Linux
  1. Jak zkontrolovat verzi OS a Linuxu

  2. Jak změnit identitu systému Linux

  3. Jak nainstalovat R 3.3.1 do vlastního adresáře?

  1. Jak nainstalovat ManageEngine OpManager na Linux

  2. Jak nainstalovat a používat Git v systému Linux

  3. Jak nainstaluji 'convert' na linuxový systém?

  1. Jak nainstalovat nástroj Gtop System Monitoring Tool v Linuxu

  2. Jak změnit výchozí prostředí v systému Linux

  3. Jak nainstalovat nejnovější Eclipse IDE na Linux