GNU/Linux >> Linux Esercitazione >  >> Linux

Linux:come installare X11 sul proprio sistema Linux Buildroot?

Ho sviluppato il mio minuscolo file system linux usando buildroot e casella occupata . Ho usato il kernel linux-2.6.38.8 configurato e compilato in modo incrociato per il sistema di destinazione (X86) in base alle esigenze. Ora il filesystem è compilato ma ha solo la shell busybox e non supporta la GUI. Non ha alcun gestore di pacchetti anche. Ora voglio abilitare la GUI su di esso. Ho controllato /ecc ma non c'era nessun x11 directory o x11.conf file.Non supporta startx anche.

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

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

Come si può raggiungere questo obiettivo?

Risposta accettata:

Host Ubuntu 16.04, Buildroot 2017.02

L'attuale Buildroot ha un pacchetto X11 che ci rende le cose "facili":https://github.com/buildroot/buildroot/tree/2016.05/package/x11r7

Questo repository crea l'intero sistema per te in un unico comando:https://github.com/cirosantilli/linux-kernel-module-cheat/tree/b134f3958884ce1fce2dd9d31d19ab0c0fbe9089#x11

In alternativa, ecco un .config pre-parato file:https://github.com/cirosantilli/buildroot-configs/blob/44b45b5c7f68e44abcda360a2b980f8301901a9a/qemu_x86_64_x11_defconfig

Questa è la configurazione specifica minima di X11 con cui sono riuscito a farla franca:

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

Ecco come puoi aggiungere queste opzioni al tuo .config esistente :È possibile utilizzare frammenti di configurazione con .config di Buildroot? | Stack Overflow

Come ho scoperto le opzioni:make menuconfig , cerca i nomi delle opzioni con / , quindi torna indietro dependes da xeyes .

Sfortunatamente, devi ancora sapere cosa stai facendo, principalmente a causa di situazioni in cui due diversi pacchetti implementano un'interfaccia (ad es. X.Org Modular vs KDrive che implementano entrambi un server X11) e nessuno è selezionato per impostazione predefinita.

Questo articolo ha aiutato molto:costruire un piccolo sistema Linux X.Org usando Buildroot | agentoss.wordpress.com

Poi solo il solito:

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

E dall'interno di QEMU:

root
startx

Dimensione immagine:28 M.

Risultato

Un sistema X11 arcaico!

E si comporta proprio come in questo video:https://upload.wikimedia.org/wikipedia/commons/transcoded/5/52/TWM_without_configuration.ogv/TWM_without_configuration.ogv.480p.webm

In particolare, questo gestore di finestre arcaico non ha un pulsante di chiusura X sulle barre dei menu:dovevi:

  • fai clic sul desktop
  • seleziona "uccidi" da un menu
  • seleziona la finestra che vuoi eliminare

startx quindi passa /etc/X11/xinit/xinitrc a xinit , che lo chiama dopo aver avviato la GUI. Il valore predefinito xinitrc contiene:

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

che avvia il nostro window manager twm (prova a cambiarlo per uno degli altri gestori per i quali Buildroot ha pacchetti) e i programmi che vediamo sullo schermo. TODO cos'è quel exec xterm parte? Perché exec ?

x11vnc

Quando ti sposti dall'emulatore a un dispositivo reale, x11vnc ti dispensa dall'acquisto di un display:apre lo schermo come una finestra nel tuo host e può persino inviare clic del mouse al dispositivo.

Abilita il x11vnc pacchetto su Buildroot e ricostruisci.

Per testare prima su QEMU, usa le opzioni (vedi anche Come eseguire l'SSH da host a guest usando QEMU? | Unix e Linux Stack Exchange ):

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

quindi su guest startx ed esegui:

x11vnc

E di nuovo sull'host:

sudo apt-get install vinagre
vinagre localhost::5901

Risultato:

  • a sinistra, QEMU con X11, x11vnc e glmark2
  • a destra, vinagre su host, che mostra esattamente la stessa cosa
  • Posso fare clic e interagire con uno o l'altro e gli altri aggiornamenti all'istante
Correlati:analisi di XML da uno script di shell?

Gestione display (tentativo fallito)

Se vuoi dimenticare completamente il terminale, abilita anche:

  • Pacchetti target
    • Librerie e applicazioni grafiche
      • X.Org X Window System :entrambi fanno clic su y e poi enter per entrare
        • X11R7 Applications
          • xconsole (gestito da xdm per impostazione predefinita)
          • xdm

Ora, quando avvii QEMU, ti viene presentata una schermata di accesso grafica come le distribuzioni "moderne":

TODO:impossibile accedere. Nome utente root / la password vuota funzionava per me su un altro test con TUTTI i pacchetti X11 installati. xdm mette i log in /var/log/xdm.log e puoi ottenere una shell TTY con cui ispezionarla:come posso ctrl-alt-f# per arrivare a un TTY in una sessione QEMU? | Chiedi a Ubuntu

La catena di chiamate che avvia il display manager è:

  • /init (fornito da BusyBox)
  • /etc/inittab riga ::sysinit:/etc/init.d/rcS
  • /etc/init.d/rcS
  • /etc/init.d/S99xdm
  • /usr/bin/xdm

Linux
  1. Come controllare la versione del sistema operativo e di Linux

  2. Come installare ManageEngine OpManager su Linux

  3. Come cambiare l'identità di un sistema Linux

  4. Come installare R 3.3.1 nella propria directory?

  5. Come installo 'convert' su un sistema Linux?

Come installare il client VPN Surfshark nel sistema Linux

Come installare e utilizzare YouTube-DL su sistema Linux

Come installare e configurare AnyDesk su sistema Linux

Come installare e configurare Django su sistema Linux

Come installare e configurare PrestaShop su sistema Linux

Come installare e configurare Elasticsearch su sistema Linux