Ich habe mein eigenes kleines Linux-Dateisystem mit Buildroot und Busybox entwickelt . Ich habe den Linux-2.6.38.8-Kernel verwendet, der je nach Bedarf für das Zielsystem (X86) konfiguriert und kompiliert wurde. Jetzt wird das Dateisystem erstellt, verfügt jedoch nur über eine Busybox-Shell und unterstützt keine GUI. Es gibt keinen Paketmanager Jetzt möchte ich die GUI darauf aktivieren. Ich überprüfte / etc , aber es gab kein x11 - Verzeichnis oder x11.conf file.It nicht unterstützt startx zu.
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?
linux
x11
linux-kernel
package-management
buildroot
Arunesh Singh
quelle
quelle
Antworten:
Ubuntu 16.04 Host, Buildroot 2017.02
Aktuelles 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 finden Sie hier eine vorgefertigte
.config
Datei: https://github.com/cirosantilli/buildroot-configs/blob/44b45b5c7f68e44abcda360a2b980f8301901a9a/qemu_x86_64_x11_defconfigDies ist die minimale X11-spezifische Konfiguration, mit der ich durchgekommen bin:
So können Sie diese Optionen zu Ihren vorhandenen hinzufügen
.config
: Ist es möglich, Konfigurationsfragmente mit Buildroots .config zu verwenden? | PaketüberflussWie ich die Optionen herausgefunden habe :
make menuconfig
, Suche nach Optionsnamen mit/
und arbeite dann rückwärtsdependes
vonxeyes
.Leider müssen Sie immer noch wissen, was Sie tun, hauptsächlich aufgrund von Situationen, in denen zwei verschiedene Pakete eine Schnittstelle implementieren (z. B. X.Org Modular vs KDrive, die beide einen X11-Server implementieren) und standardmäßig keines ausgewählt ist.
Dieser Artikel hat sehr geholfen: Erstellen eines winzigen X.Org Linux-Systems mit Buildroot | agentoss.wordpress.com
Dann einfach das Übliche:
Und von innen QEMU:
Bildgröße: 28M.
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 verfügt dieser archaische Fenstermanager nicht über eine X-Schaltfläche zum Schließen in den Menüleisten: Sie mussten:
startx
geht dann weiter/etc/X11/xinit/xinitrc
zuxinit
, was es nach dem Start der GUI aufruft. Die Standardeinstellungxinitrc
enthält:Dadurch wird unser Fenstermanager gestartet
twm
(versuchen Sie, ihn für einen der anderen Manager zu ändern, für die Buildroot Pakete enthält) und die Programme, die auf dem Bildschirm angezeigt werden. TODO was ist das für einexec xterm
Teil? Warum dasexec
?x11vnc
Wenn Sie vom Emulator zu einem realen Gerät wechseln, müssen
x11vnc
Sie kein Display kaufen: Es öffnet den Bildschirm als Fenster in Ihrem Host und kann sogar Mausklicks an das Gerät senden.Aktivieren Sie das
x11vnc
Paket auf Buildroot und erstellen Sie es neu.Verwenden Sie die folgenden Optionen, um zuerst auf QEMU zu testen (siehe auch SSH vom Host zum Gast mithilfe von QEMU? | Unix & Linux Stack Exchange ):
dann auf Gast
startx
und laufen:Und zurück zum Gastgeber:
Ergebnis:
Siehe auch: Wie richte ich Raspberry Pi ohne Monitor ein? | Raspberry Pi Stack Exchange
Display Manager (fehlgeschlagener Versuch)
Wenn Sie das Terminal vollständig vergessen möchten, aktivieren Sie auch:
X.Org X Window System
: beide klickeny
und dannenter
hineingehenX11R7 Applications
xconsole
(xdm
standardmäßig ausgeführt)xdm
Wenn Sie nun QEMU starten, wird ein grafischer Anmeldebildschirm wie "moderne" Distributionen angezeigt:
TODO: kann sich nicht anmelden. Benutzername
root
/ leeres Passwort funktionierte für mich bei einem anderen Test mit ALLEN installierten X11-Paketen.xdm
Wenn Sie Protokolle unterlegen/var/log/xdm.log
, erhalten Sie eine TTY-Shell, mit der Sie sie überprüfen können: Wie kann ich mit Strg-Alt-F # in einer QEMU-Sitzung zu einem TTY gelangen? | Fragen Sie UbuntuDie Anrufkette, mit der der Display Manager gestartet wird, lautet:
/init
(bereitgestellt von BusyBox)/etc/inittab
Linie::sysinit:/etc/init.d/rcS
/etc/init.d/rcS
/etc/init.d/S99xdm
/usr/bin/xdm
quelle
Sie müssen X selbst erstellen. Beginnen Sie mit dem Lesen dieses X.Org-Wiki-Eintrags .
Für einen Paketmanager müssen Sie einen auswählen, alle erforderlichen Abhängigkeiten erfüllen und dann Inhalte dafür verpacken (nur weil Sie dpkg / rpm / Whatever ausgewählt haben, bedeutet dies nicht, dass deb / RPM / ... -Pakete auf magische Weise funktionieren Ihre Distribution). Pacman von Arch Linux sieht einfach zu erstellen aus.
quelle