GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Linux – Wie installiere ich X11 auf dem eigenen Linux-Buildroot-System?

Ich habe mein eigenes winziges Linux-Dateisystem mit buildroot entwickelt und busybox . Ich habe den Linux-2.6.38.8-Kernel verwendet, der je nach Bedarf für das Zielsystem (X86) konfiguriert und crosskompiliert wurde. Jetzt ist das Dateisystem erstellt, aber es hat nur die Busybox-Shell und unterstützt keine GUI. Es hat keinen Paketmanager too.Now ich möchte GUI darauf aktivieren. Ich habe /etc überprüft aber es gab kein x11 Verzeichnis oder x11.conf file.startx wird nicht unterstützt auch.

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

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

Wie kann dies erreicht werden?

Akzeptierte Antwort:

Ubuntu 16.04-Host, Buildroot 2017.02

Current Buildroot hat ein X11-Paket, das es uns „einfach“ macht:https://github.com/buildroot/buildroot/tree/2016.05/package/x11r7

Dieses Repo erstellt das gesamte System für Sie in einem einzigen Befehl:https://github.com/cirosantilli/linux-kernel-module-cheat/tree/b134f3958884ce1fce2dd9d31d19ab0c0fbe9089#x11

Alternativ hier eine vorgefertigte .config Datei:https://github.com/cirosantilli/buildroot-configs/blob/44b45b5c7f68e44abcda360a2b980f8301901a9a/qemu_x86_64_x11_defconfig

Dies sind die minimalen X11-spezifischen Konfigurationen, mit denen ich davongekommen bin:

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

So können Sie diese Optionen zu Ihrer bestehenden .config hinzufügen :Ist es möglich, Konfigurationsfragmente mit der .config von Buildroot zu verwenden? | Stapelüberlauf

Wie ich die Optionen herausgefunden habe:make menuconfig , suchen Sie Optionsnamen mit / , dann rückwärts arbeiten dependes ab von xeyes .

Leider müssen Sie immer noch wissen, was Sie tun, hauptsächlich wegen Situationen, in denen zwei verschiedene Pakete eine Schnittstelle implementieren (z. B. X.Org Modular vs. KDrive, die beide einen X11-Server implementieren) und keines standardmäßig ausgewählt ist.

Dieser Artikel hat sehr geholfen:Building a tiny X.Org Linux System using Buildroot | agentoss.wordpress.com

Dann nur das Übliche:

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

Und von innerhalb von QEMU:

root
startx

Bildgröße:28 MB.

Ergebnis

Ein archaisches X11-System!

Und es verhält sich genauso wie in diesem Video:https://upload.wikimedia.org/wikipedia/commons/transcoded/5/52/TWM_without_configuration.ogv/TWM_without_configuration.ogv.480p.webm

Insbesondere hat dieser archaische Fenstermanager keinen X-Schließen-Button in Menüleisten:Sie mussten:

  • klicken Sie auf den Desktop
  • Wählen Sie „Töten“ aus einem Menü
  • Wählen Sie das Fenster aus, das Sie beenden möchten

startx übergibt dann /etc/X11/xinit/xinitrc zu xinit , die es nach dem Start der GUI aufruft. Der Standard xinitrc enthält:

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

was unseren Fenstermanager twm startet (versuchen Sie, es für einen der anderen Manager zu ändern, für die Buildroot Pakete hat) und die Programme, die wir auf dem Bildschirm sehen. TODO was ist das exec xterm Teil? Warum die exec ?

x11vnc

Wenn Sie vom Emulator zu einem echten Gerät wechseln, x11vnc erspart Ihnen den Kauf eines Displays:Es öffnet den Bildschirm als Fenster in Ihrem Host und kann sogar Mausklicks an das Gerät senden.

Aktivieren Sie x11vnc Paket auf Buildroot und neu erstellen.

Um zuerst auf QEMU zu testen, verwenden Sie die Optionen (siehe auch SSH vom Host zum Gast mit QEMU? | Unix &Linux Stack Exchange ):

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

dann auf Gast startx , und führen Sie Folgendes aus:

x11vnc

Und zurück auf Host:

sudo apt-get install vinagre
vinagre localhost::5901

Ergebnis:

  • links QEMU mit X11, x11vnc und glmark2
  • rechts, Vinagre auf Wirt, zeigt genau dasselbe
  • Ich kann auf beide klicken und mit ihnen interagieren, und die anderen werden sofort aktualisiert
Verwandte:Analysieren von XML aus einem Shell-Skript?

Display-Manager (fehlgeschlagener Versuch)

Wenn Sie das Terminal vollständig vergessen möchten, aktivieren Sie auch:

  • Zielpakete
    • Grafikbibliotheken und Anwendungen
      • X.Org X Window System :beide klicken y und dann enter reingehen
        • X11R7 Applications
          • xconsole (ausgeführt von xdm standardmäßig)
          • xdm

Wenn Sie jetzt QEMU starten, wird Ihnen ein grafischer Anmeldebildschirm wie bei „modernen“ Distributionen präsentiert:

TODO:Anmeldung nicht möglich. Benutzername root / leeres Passwort funktionierte für mich bei einem anderen Test mit ALLEN installierten X11-Paketen. xdm legt Protokolle unter /var/log/xdm.log ab , und Sie können eine TTY-Shell erhalten, um sie zu inspizieren:How can I ctrl-alt-f# to get to a TTY in a QEMU session? | Fragen Sie Ubuntu

Die Aufrufkette, die den Display-Manager startet, lautet:

  • /init (bereitgestellt von BusyBox)
  • /etc/inittab Zeile ::sysinit:/etc/init.d/rcS
  • /etc/init.d/rcS
  • /etc/init.d/S99xdm
  • /usr/bin/xdm

Linux
  1. So überprüfen Sie die Betriebssystem- und Linux-Version

  2. So installieren Sie den ManageEngine OpManager unter Linux

  3. So ändern Sie die Identität eines Linux-Systems

  4. Wie installiere ich R 3.3.1 im eigenen Verzeichnis?

  5. Wie installiere ich „convert“ auf einem Linux-System?

So installieren Sie den Surfshark VPN-Client in einem Linux-System

So installieren und verwenden Sie YouTube-DL auf einem Linux-System

So installieren und konfigurieren Sie AnyDesk auf einem Linux-System

So installieren und konfigurieren Sie Django auf einem Linux-System

So installieren und konfigurieren Sie PrestaShop auf einem Linux-System

So installieren und konfigurieren Sie Elasticsearch auf einem Linux-System