Estamos ensamblando algunas máquinas livianas con el propósito expreso de mostrar una sola página web en una pantalla grande. Necesito que la máquina se inicie esencialmente de la manera más ligera y rápida posible y esencialmente haga que ejecute un navegador (¿WebKit?) En pantalla completa, cargando una página que JavaScript controlará dinámicamente. Usaré un procesador Intel D525 de doble núcleo con GPU integrada, por lo que no debería necesitar configurar ningún controlador de gráficos propietario. Una vez que configure una de estas máquinas correctamente, debería poder cargar dd
el disco duro en mi computadora y luego volcarlo en cada nueva máquina.
Tengo las siguientes preguntas:
¿Cómo puedo crear una "distribución" que incluya solo lo que necesito? Supongo que necesitaré el kernel (;]), X y un navegador web de algún tipo, pero en realidad no mucho más. ¿Podría tomar algo como Ubuntu Server y simplemente instalar X Server y encontrar la manera de que la máquina inicie sesión automáticamente, inicie X e inicie el navegador web, sin hacer preguntas? ¿Hay un libro que pueda leer o un artículo o algo?
¿Qué puedo usar para un navegador web agradable y sencillo que esencialmente ejecute un "Chromium sin cromo"? Estas máquinas no aceptarán la entrada del usuario en absoluto. Si necesito administrarlos, usaré SSH.
fuente
En primer lugar, es posible que no desee reinventar la rueda ... Hay varias distribuciones centradas en el quiosco. Uno de esos puede ahorrarte mucho trabajo.
En segundo lugar, si está familiarizado con Kickstart en Fedora y RHEL (o CentOS o Scientific Linux), puede usar las herramientas de Fedora para hacer su propio giro de cualquiera de esas distribuciones. La documentación está un poco dispersa, pero comienza aquí .
fuente
Comience con una distribución mínima como Arch Linux , luego instale los paquetes que necesita. Para un navegador web simple, prueba Uzbl .
fuente
Esta es una pregunta bastante complicada, y dado que su proyecto no está del todo claro, algunas de estas sugerencias pueden estar fuera de lugar, pero considérelas como cosas para evaluar.
Es posible que no necesite un navegador web en cualquier computadora que sea parte de la matriz de visualización. Si está intentando mostrar una sola página en muchas pantallas, es probable que desee utilizar algún tipo de tecnología de visualización masiva. Hay varias variantes de Xorg que se especializan en generar una gran pantalla a partir de dispositivos de video en varias máquinas.
Incluso si usa servidores X separados en cada máquina, puede usar el reenvío X para enviar datos de visualización desde una o más computadoras, por lo que los navegadores aún no tendrían que ejecutarse localmente.
No querrá usar ningún administrador de ventanas y usar especificaciones de geometría para iniciar la pantalla completa de su aplicación, o usar un mosaico configurable o un administrador de ventanas de marco (como
awesome
) para administrar las ventanas en cada pantalla X. Esto facilita la clasificación y el control de ventanas de pantalla completa y es altamente programable.En cuanto a un navegador, creo que
uzbl
es una opción clara.Esta podría ser una buena aplicación para el arranque de red. Puede configurar el servidor con un núcleo de netbook disponible a través de TFTP y un sistema de archivos disponible a través de nfs. Todo lo que sus clientes deben hacer es usar una NIC con arranque de red para contactar a este servidor, descargar su núcleo y listo. No hay disco duro involucrado! Y fácil mantenimiento. Todas las máquinas pueden potencialmente arrancar la misma imagen.
Su "distribución" probablemente debería consistir en dos cosas. 1) Un conjunto de paquetes y 2) un conjunto de archivos de configuración. El conjunto de paquetes es una lista de paquetes que deben instalarse. Esto generalmente se puede ensamblar en un archivo de texto y luego puede usar la mayoría de los administradores de paquetes de la distribución para instalar esta lista de paquetes en un destino (ya sea un disco duro o un directorio que será su punto de montaje nfs). Los archivos de configuración probablemente deberían mantenerse en
git
otro sistema de control de fuente y contener algunos scripts y cualquier modificación de configuración que deba realizarse en el sistema base instalado con el conjunto de paquetes. Construir un nuevo sistema se convierte en:package_manager --install-distro --package-set=/path/packagelist.txt --target=/path
cd /target/path
git clone /path/to/repo
(o de lo contrario, verifique su código de configuración en la raíz del sistema)La distribución que use como base dependerá de con qué se sienta más cómodo. Me gustaría utilizar PLD-Linux para mí, pero probablemente lo recomendaría Arch Linux como un sistema similar pero mejor documentado para un novato de trabajar. No hay razón para que Debian , Fedora o Gentoo no funcionen para esto.
fuente
dwm
oawesome
. ¿Cómo puedo decirle a un administrador de ventanas que inicie una aplicación sin la barra de título en modo de pantalla completa?apt-get
oaptitude
en Debian.Buildroot 2016.05 + Midori
Buildroot es una gran herramienta para construir distribuciones mínimas:
.config
archivoMidori es un navegador minimalista basado en WebKit , y Buildroot tiene un paquete Midori incorporado.
.config
archivo utilizado: https://github.com/cirosantilli/buildroot-configs/blob/32d1174e0bf8d00b92323eebe8901af3f8c389d3/2016.05/qemu_x86_64_x11_midori_defconfigCómo generar ese archivo de configuración:
make menuconfig
mesa3d
Limpia la compilación porque cambiamos la cadena de herramientas y compila nuevamente:
Espera horas Entonces lo de siempre:
Y desde adentro QEMU:
y desde la GUI X11, haga clic en una
xterm
ventana y ejecute:Salir:
Tamaño de imagen: 220M! Compare eso con los 28M de un sistema X11 simple ¿Cómo instalar X11 en mi propio sistema Linux Buildroot? - Intercambio de pila de Unix y Linux . Probablemente debido a las dependencias de WebKit + GTK3.
Probado en el host Ubuntu 16.04, QEMU 2.5.0.
NetSurf
Escrito en SDL, que admite el fbdev: http://www.netsurf-browser.org/about/screenshots/#framebuffer
fbdev es una interfaz de nivel inferior que ofrece un módulo de kernel de Linux que no pasa por X11 (creo que X11 puede usarlo opcionalmente como back-end). Básicamente solo escribes en la memoria y se muestra en la pantalla.
Para usar fbdev en Ubuntu, debe estar en un TTY (por ejemplo, Ctrl + Alt + F1).
Entonces, probablemente pueda salirse con una imagen mucho más pequeña que la de Midori.
Buildroot 2016.05 tiene un paquete
netsurf-buildsystem
que debería proporcionarlo, pero no lo he probado. Si alguien logra que se ejecute, edítelo en un enlace a una configuración, captura de pantalla y tamaño de imagen.fuente
Una vez escribí un pequeño script bash que toma un ISO de Arch Linux y genera un nuevo ISO con una imagen raíz modificada que hace una instalación totalmente automatizada. Esto incluye particionar, así como configurar y configurar el sistema con Xorg, FVWM y Chromium. El sistema instalado iniciará sesión automáticamente e iniciará Chromium. Simplemente coloque el nuevo ISO en una unidad flash USB y recuéstese. ;-)
Descargo de responsabilidad: el script se proporciona tal cual, sin garantía. No lo he usado en mucho tiempo, por lo que podría necesitar un ajuste aquí o allá. Modifique según sea necesario.
fuente
Para un sistema como este, recomendaría Puppy .
Si bien puede crear su distribución utilizando cualquier versión de Linux, Puppy hace que sea muy fácil crear imágenes de arranque personalizadas, está diseñada para ser compacta y tiene un excelente soporte de sistema de archivos de superposición.
No, recomendaría crear una imagen de arranque que pueda mantener con sensatez; el enfoque que sugiera volverá y lo morderá.
fuente
Varias personas mencionaron uzbl y estoy de acuerdo en que es una buena opción, pero es posible que encuentre luakit aún mejor.
Como Caleb ya mencionó, realmente no necesita ningún administrador de ventanas. Aquí hay un script de ejemplo que diseñé para ejecutar un servidor Xorg sin WM con el navegador luakit maximizado:
Utiliza el xdotool para maximizar la ventana justo después de que luakit ha comenzado. Tal vez hay una mejor solución para eso ...
Para la base de dicho sistema, definitivamente recomendaría Gentoo. Eso no es solo porque lo conozco mejor;) sino también porque utiliza un enfoque bastante único de administrar globalmente las opciones de tiempo de compilación de todo el software instalado. Me refiero a las banderas USE . Al usarlos, usted determina el conjunto de características / bibliotecas / estándares que utilizan todos los programas que los admiten, por lo que, por ejemplo, si desea que sus programas usen ALSA y no necesite backends de audio adicionales como esd, jack o pulseaudio, usted poner
alsa -jack -esd -pulseaudio
entre sus banderas USE. Después de eso, cada pieza de software que construyas que puedautilizar backends de audio adicionales aparte de ALSA se construirá sin el soporte para esos. Como esto sucede en el nivel de configuración / compilación, terminas con un software significativamente más delgado. Entonces, esta es una filosofía de construcción (respetando todas las dependencias) en lugar de desmantelar (lo que puede terminar siendo defectuoso y muy difícil de mantener).fuente
Mencionaré esto porque me sorprende que nadie más lo haya hecho.
Linux from Scratch es un libro (pdf) que lo guía a través de la creación de su propia distribución de Linux. Puede ser excesivo para lo que está tratando de lograr (en realidad, es porque ya tiene las herramientas que necesita), pero puede resultar una herramienta invaluable para comprender cómo funciona un sistema. Realmente no es tan difícil y no hay programación involucrada.
fuente