Estamos montando algumas máquinas leves com o objetivo expresso de exibir uma única página da web em uma tela grande. Eu preciso que a máquina inicialize essencialmente o mais leve e o mais rápido possível e, essencialmente, execute um navegador (WebKit?) Em tela cheia, carregando uma página que será controlada dinamicamente por JavaScript. Usarei um processador Intel D525 de núcleo duplo com GPU integrada, portanto, não preciso configurar nenhum driver gráfico proprietário. Depois de instalar uma dessas máquinas corretamente, devo conseguir acessar dd
o disco rígido do meu computador e despejá-lo em cada nova máquina.
Tenho as seguintes perguntas:
Como posso criar uma "distribuição" que inclua apenas o que eu preciso? Suponho que precisarei do kernel (;]), X e de um navegador da Web de algum tipo, mas não muito mais. Eu poderia pegar algo como o Ubuntu Server e simplesmente instalar o X Server e encontrar uma maneira de a máquina fazer login automaticamente, iniciar o X e iniciar o navegador da web, sem perguntas? Existe um livro que eu possa ler ou um artigo ou algo assim?
O que posso usar para um bom navegador despojado que essencialmente executa um "cromo sem cromo?" Essas máquinas não aceitarão a entrada do usuário. Se eu precisar gerenciá-los, usarei o SSH.
fonte
Antes de tudo, você pode não querer reinventar a roda ... Existem várias distribuições focadas no quiosque. Um deles pode economizar muito trabalho.
Segundo, se você estiver familiarizado com o Kickstart no Fedora e RHEL (ou CentOS ou Scientific Linux), poderá usar as ferramentas do Fedora para fazer sua própria rotação de qualquer uma dessas distribuições. A documentação está um pouco dispersa, mas comece aqui .
fonte
Comece com uma distribuição mínima, como o Arch Linux , e instale os pacotes necessários. Para um navegador simples, tente o Uzbl .
fonte
Essa é uma pergunta bastante envolvente e, como o seu projeto não está totalmente claro, algumas dessas sugestões podem ser estranhas, mas considere essas coisas a serem avaliadas.
Talvez você não precise de um navegador da Web em qualquer computador que faça parte da matriz de exibição. Se você está tentando mostrar uma única página em várias telas, é provável que queira usar algum tipo de tecnologia de exibição em massa. Existem várias variantes do Xorg que se especializam em gerar uma grande tela de dispositivos de vídeo em várias máquinas.
Mesmo se você usar servidores X separados em cada máquina, poderá usar o encaminhamento X para enviar dados de exibição de um ou mais outros computadores, para que os navegadores ainda não precisem ser executados localmente.
Você deseja não usar nenhum gerenciador de janelas e usar especificações de geometria para iniciar o aplicativo em tela cheia ou usar um
awesome
gerenciador de janelas configurável em bloco ou estrutura (como ) para gerenciar as janelas em cada exibição do X. Isso facilita a classificação e o controle das janelas de tela cheia e é altamente programável.Quanto a um navegador, acho que
uzbl
é provavelmente a escolha certa .Esse pode ser um bom aplicativo para inicialização em rede. Você pode configurar o servidor com um kernel de netbook disponível via TFTP e um sistema de arquivos disponível via nfs. Tudo que seus clientes precisam fazer é usar uma NIC compatível com netboot para entrar em contato com este servidor, baixar o kernel e partir. Nenhum disco rígido envolvido! E manutenção fácil. Todas as máquinas podem potencialmente inicializar a mesma imagem.
Sua "distribuição" provavelmente deve consistir em duas coisas. 1) Um conjunto de pacotes e 2) um conjunto de arquivos de configuração. O conjunto de pacotes é uma lista de pacotes que precisam ser instalados. Isso geralmente pode ser montado em um arquivo de texto e, em seguida, você pode usar a maioria dos gerenciadores de pacotes da distro para instalar essa lista de pacotes em um destino (um disco rígido ou um diretório que será o seu ponto de montagem nfs). Os arquivos de configuração provavelmente devem ser mantidos em
git
ou em outro sistema de controle de origem e conter alguns scripts e quaisquer mods de configuração que precisam ser feitos no sistema básico instalado com o conjunto de pacotes. A construção de um novo sistema se torna:package_manager --install-distro --package-set=/path/packagelist.txt --target=/path
cd /target/path
git clone /path/to/repo
(ou faça o checkout do seu código de configuração na raiz do sistema)A distribuição que você usa como base deve depender do que você se sente mais confortável. Eu usaria o PLD-Linux para mim, mas provavelmente recomendo o ArchLinux como um sistema semelhante, mas melhor documentado, para um novato trabalhar. Não há razão para que o Debian , o Fedora ou o Gentoo não funcionem para isso.
fonte
dwm
ouawesome
. Como posso dizer a um gerenciador de janelas para iniciar um aplicativo sem a barra de título no modo de tela cheia?apt-get
ouaptitude
no Debian.Buildroot 2016.05 + Midori
O Buildroot é uma ótima ferramenta para criar distribuições mínimas:
.config
arquivoO Midori é um navegador minimalista baseado no WebKit e o Buildroot possui um pacote Midori embutido.
.config
arquivo usado: https://github.com/cirosantilli/buildroot-configs/blob/32d1174e0bf8d00b92323eebe8901af3f8c389d3/2016.05/qemu_x86_64_x11_midori_defconfigComo gerar esse arquivo de configuração:
make menuconfig
mesa3d
Limpe a compilação porque alteramos a cadeia de ferramentas e compilamos novamente:
Espere horas. Então o de sempre:
E de dentro do QEMU:
e, na GUI do X11, clique em uma
xterm
janela e execute:Resultado:
Tamanho da imagem: 220M! Compare isso com os 28M de um sistema X11 vazio Como instalar o X11 no meu próprio sistema Linux Buildroot? - Unix e Linux Stack Exchange . Provavelmente por causa das dependências do WebKit + GTK3.
Testado no host Ubuntu 16.04, QEMU 2.5.0.
NetSurf
Escrito em SDL, que suporta o fbdev: http://www.netsurf-browser.org/about/screenshots/#framebuffer
O fbdev é uma interface de nível inferior oferecida por um módulo do kernel Linux que não passa pelo X11 (acho que o X11 pode opcionalmente usá-lo como back-end). Você basicamente escreve na memória e isso aparece na tela.
Para usar o fbdev no Ubuntu, você precisa estar em um TTY (por exemplo, Ctrl + Alt + F1).
Portanto, você provavelmente poderá obter uma imagem bem menor que a de Midori.
O Buildroot 2016.05 tem um pacote
netsurf-buildsystem
que deve fornecer, mas eu não testei. Se alguém conseguir executá-lo, edite em um link para um .config, captura de tela e tamanho da imagem.fonte
Eu escrevi um pequeno script bash uma vez que pega um ISO do Arch Linux e gera um novo ISO com uma imagem raiz modificada que faz uma instalação totalmente automatizada. Isso inclui particionamento, além de instalar e configurar o sistema com Xorg, FVWM e Chromium. O sistema instalado fará login automaticamente e iniciará o Chromium. Basta colocar o novo ISO em uma unidade flash USB e recuar. ;-)
Isenção de responsabilidade: o script é fornecido como está, sem garantia. Eu não o uso há algum tempo, por isso pode precisar de um ajuste aqui ou ali. Modifique conforme necessário.
fonte
Para um sistema como esse, eu recomendo o Puppy .
Embora você possa criar sua distro usando qualquer versão do Linux, o Puppy facilita muito a criação de imagens inicializáveis personalizadas, foi projetado para ser compacto e possui excelente suporte ao sistema de arquivos de sobreposição.
Não - eu recomendo a criação de uma imagem inicializável que você possa manter com sensibilidade - a abordagem que você sugere voltará e o morderá.
fonte
Várias pessoas mencionaram o uzbl e eu concordo que é uma boa escolha - mas você pode achar o luakit ainda melhor.
Como Caleb já mencionou, você realmente não precisa nenhum gerenciador de janelas. Aqui está um exemplo de script que eu criei para executar um servidor Xorg sem WM e com o navegador luakit maximizado:
Ele usa o xdotool para maximizar a janela logo após o início do luakit. Talvez exista uma solução melhor para isso ...
Para a base desse sistema, eu recomendaria definitivamente o Gentoo. Isso não é apenas porque eu o conheço melhor;), mas também porque ele usa uma abordagem bastante única de gerenciar globalmente as opções de tempo de compilação de todo o software instalado. Quero dizer, o bandeiras USE . Com esses, você determina o conjunto de recursos / bibliotecas / padrões que são usados por todos os programas que os suportam - por exemplo, se você deseja que seus programas usem o ALSA e não precise de recursos adicionais de áudio como esd, jack ou pulseaudio, coloque
alsa -jack -esd -pulseaudio
entre suas bandeiras USE. Depois disso, cada software que você cria que podeo uso de back-end de áudio adicionais além do ALSA será construído sem o suporte para eles. Como isso acontece no nível de configuração / compilação, você acaba com um software significativamente mais fino. Portanto, essa é uma filosofia de construir (respeitando todas as dependências) em vez de remover (o que pode acabar sendo de buggy e muito difícil de manter).fonte
Vou mencionar isso porque estou surpreso que ninguém mais o fez.
Linux from Scratch é um livro (pdf) que orienta você na criação de sua própria distribuição Linux. Pode ser um exagero para o que você está tentando realizar (na verdade, é porque você já possui as ferramentas necessárias), mas pode ser uma ferramenta inestimável para entender como um sistema funciona. Realmente não é tão difícil e não há programação envolvida.
fonte