GNU/Linux >> Tutoriales Linux >  >> Linux

Linux:¿cómo instalar X11 en el propio sistema Linux Buildroot?

He desarrollado mi propio pequeño sistema de archivos Linux usando buildroot y caja ocupada . Utilicé el kernel linux-2.6.38.8 configurado y compilado de forma cruzada para el sistema de destino (X86) de acuerdo con las necesidades. Ahora el sistema de archivos está construido pero solo tiene un shell de busybox y no es compatible con GUI. No tiene ningún administrador de paquetes también. Ahora quiero habilitar la GUI en él. Revisé /etc pero no había ningún x11 directorio o x11.conf archivo. No es compatible con startx también.

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

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

¿Cómo se puede lograr esto?

Respuesta aceptada:

Host de Ubuntu 16.04, Buildroot 2017.02

Buildroot actual tiene un paquete X11 que nos facilita las cosas:https://github.com/buildroot/buildroot/tree/2016.05/package/x11r7

Este repositorio crea todo el sistema para usted con un solo comando:https://github.com/cirosantilli/linux-kernel-module-cheat/tree/b134f3958884ce1fce2dd9d31d19ab0c0fbe9089#x11

Alternativamente, aquí hay un .config preparado archivo:https://github.com/cirosantilli/buildroot-configs/blob/44b45b5c7f68e44abcda360a2b980f8301901a9a/qemu_x86_64_x11_defconfig

Estas son las configuraciones mínimas específicas de X11 con las que logré salirme con la mía:

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

Así es como puede agregar esas opciones a su .config existente :¿Es posible usar fragmentos de configuración con .config de Buildroot? | Desbordamiento de pila

Cómo descubrí las opciones:make menuconfig , buscar nombres de opciones con / , luego trabaje hacia atrás dependes de xeyes .

Desafortunadamente, aún necesita saber lo que está haciendo, principalmente debido a situaciones en las que dos paquetes diferentes implementan una interfaz (por ejemplo, X.Org Modular vs KDrive, ambos implementan un servidor X11), y ninguno está seleccionado de manera predeterminada.

Este artículo ayudó mucho:Creación de un pequeño sistema Linux X.Org usando Buildroot | agentesoss.wordpress.com

Entonces solo lo de siempre:

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

Y desde dentro de QEMU:

root
startx

Tamaño de imagen:28M.

Resultado

¡Un sistema X11 arcaico!

Y se comporta como en este video:https://upload.wikimedia.org/wikipedia/commons/transcoded/5/52/TWM_without_configuration.ogv/TWM_without_configuration.ogv.480p.webm

En particular, este administrador de ventanas arcaico no tiene un botón de cierre X en las barras de menú:tenías que:

  • haga clic en el escritorio
  • seleccione "matar" de un menú
  • seleccione la ventana que desea eliminar

startx luego pasa /etc/X11/xinit/xinitrc a xinit , que lo llama después de iniciar la GUI. El xinitrc predeterminado 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

que inicia nuestro administrador de ventanas twm (prueba a cambiarlo por alguno de los otros gestores para los que Buildroot tiene paquetes), y los programas que vemos en pantalla. TODO qué es eso exec xterm ¿parte? Por qué el exec ?

x11vnc

Cuando pasa del emulador a un dispositivo real, x11vnc te dispensa de comprar una pantalla:abre la pantalla como una ventana en tu host, e incluso puede enviar clics del mouse al dispositivo.

Habilite x11vnc paquete en Buildroot y reconstruir.

Para probar primero en QEMU, use las opciones (vea también ¿Cómo usar SSH de host a invitado usando QEMU? | Unix &Linux Stack Exchange):

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

luego en invitado startx y ejecuta:

x11vnc

Y de vuelta en el host:

sudo apt-get install vinagre
vinagre localhost::5901

Resultado:

  • a la izquierda, QEMU ejecutando X11, x11vnc y glmark2
  • a la derecha, vinagre en host, mostrando exactamente lo mismo
  • Puedo hacer clic e interactuar con cualquiera de los dos, y el otro se actualiza instantáneamente
Relacionado:¿Análisis de XML desde un script de shell?

Administrador de visualización (intento fallido)

Si quieres olvidarte por completo del terminal, habilita también:

  • Paquetes objetivo
    • Bibliotecas gráficas y aplicaciones
      • X.Org X Window System :ambos hacen clic en y y luego enter entrar
        • X11R7 Applications
          • xconsole (ejecutado por xdm por defecto)
          • xdm

Ahora, cuando inicia QEMU, se le presenta una pantalla de inicio de sesión gráfica como las distribuciones "modernas":

TODO:no se puede iniciar sesión. Nombre de usuario root / La contraseña vacía me funcionó en otra prueba con TODOS los paquetes X11 instalados. xdm coloca los registros en /var/log/xdm.log , y puede obtener un shell TTY para inspeccionarlo con:¿Cómo puedo presionar ctrl-alt-f# para acceder a un TTY en una sesión de QEMU? | Pregúntale a Ubuntu

La cadena de llamadas que inicia el administrador de visualización es:

  • /init (proporcionado por BusyBox)
  • /etc/inittab línea ::sysinit:/etc/init.d/rcS
  • /etc/init.d/rcS
  • /etc/init.d/S99xdm
  • /usr/bin/xdm

Linux
  1. Cómo verificar la versión del sistema operativo y Linux

  2. Cómo instalar ManageEngine OpManager en Linux

  3. Cómo cambiar la identidad de un sistema Linux

  4. ¿Cómo Instalar R 3.3.1 En El Directorio Propio?

  5. ¿Cómo instalo 'convertir' en un sistema Linux?

Cómo instalar el cliente VPN de Surfshark en el sistema Linux

Cómo instalar y usar YouTube-DL en el sistema Linux

Cómo instalar y configurar AnyDesk en el sistema Linux

Cómo instalar y configurar Django en un sistema Linux

Cómo instalar y configurar PrestaShop en el sistema Linux

Cómo instalar y configurar Elasticsearch en el sistema Linux