Montujemy niektóre lekkie maszyny, których wyraźnym celem jest wyświetlenie jednej strony internetowej na dużym ekranie. Potrzebuję maszyny, aby uruchomiła się jak najprościej i tak szybko, jak to możliwe, i zasadniczo ma uruchomić przeglądarkę (WebKit?) Na pełnym ekranie, ładując jedną stronę, która będzie kontrolowana dynamicznie przez JavaScript. Będę używał dwurdzeniowego procesora Intel D525 ze zintegrowanym układem GPU, więc nie muszę konfigurować żadnych zastrzeżonych sterowników graficznych. Po prawidłowym skonfigurowaniu jednego z tych komputerów powinienem móc po prostu podłączyć dd
dysk twardy do mojego komputera, a następnie zrzucić go na każdą nową maszynę.
Mam następujące pytania:
Jak mogę utworzyć „dystrybucję”, która zawiera tylko to, czego potrzebuję? Przypuszczam, że będę potrzebował jądra (;]), X i jakiejś przeglądarki internetowej, ale nie za bardzo. Czy mogę wziąć coś takiego jak Ubuntu Server i po prostu zainstalować X Server i znaleźć sposób, aby urządzenie automatycznie się zalogowało, uruchomiło X i uruchomiło przeglądarkę internetową, bez zadawania pytań? Czy jest książka, którą mogę przeczytać, artykuł lub coś takiego?
Czego mogę użyć do ładnej, pozbawionej przeglądarki przeglądarki, która zasadniczo obsługuje „Chromium bez chromu”? Te maszyny w ogóle nie akceptują danych użytkownika. Jeśli będę musiał nimi zarządzać, skorzystam z SSH.
źródło
Po pierwsze, możesz nie chcieć odkrywać koła od nowa ... Istnieje kilka dystrybucji ukierunkowanych na kioski. Jeden z nich może zaoszczędzić ci dużo pracy.
Po drugie, jeśli znasz Kickstart na Fedorze i RHEL (lub CentOS lub Scientific Linux), możesz użyć narzędzi Fedory, aby stworzyć własny obrót dowolnej z tych dystrybucji. Dokumentacja jest nieco rozproszona, ale zacznij tutaj .
źródło
Zacznij od minimalnej dystrybucji, takiej jak Arch Linux , a następnie zainstaluj potrzebne pakiety. W przypadku prostej przeglądarki internetowej wypróbuj Uzbl .
źródło
To dość zaangażowane pytanie, a ponieważ twój projekt nie jest do końca jasny, niektóre z tych sugestii mogą być nie na miejscu, ale zastanów się nad nimi do oceny.
Przeglądarka internetowa może nie być potrzebna na żadnym komputerze, który jest częścią tablicy wyświetlacza. Jeśli próbujesz wyświetlić jedną stronę na wielu ekranach, prawdopodobnie będziesz chciał użyć jakiejś technologii wyświetlania masowego. Istnieje kilka wariantów Xorg, które specjalizują się w generowaniu jednego dużego wyświetlacza z urządzeń wideo na kilku komputerach.
Nawet jeśli używasz osobnych serwerów X na każdym komputerze, możesz użyć przekazywania X do wysyłania danych wyświetlanych z jednego lub więcej innych komputerów, aby przeglądarki nadal nie musiały działać lokalnie.
Będziesz chciał albo w ogóle nie używać menedżera okien i używać specyfikacji geometrii, aby uruchomić aplikację na pełnym ekranie, lub użyć konfigurowalnego menedżera okien lub kafelków ram (np.
awesome
) Do zarządzania oknami na każdym ekranie X. Ułatwiają one sortowanie i sterowanie oknami pełnoekranowymi i są wysoce skryptowalne.Jeśli chodzi o przeglądarkę, myślę, że
uzbl
jest to oczywisty wybór.To może być dobra aplikacja do uruchamiania z sieci. Możesz skonfigurować serwer z jądrem netbooka dostępnym przez TFTP i systemem plików dostępnym przez nfs. Wszystko, co musisz zrobić, to użyć karty sieciowej obsługującej netboot, aby skontaktować się z tym serwerem, pobrać jądro i przejść. Nie dotyczy dysku twardego! I łatwa konserwacja. Wszystkie maszyny mogą potencjalnie uruchomić ten sam obraz.
Twoja „dystrybucja” powinna prawdopodobnie składać się z dwóch rzeczy. 1) Zestaw pakietów i 2) zestaw plików konfiguracyjnych. Zestaw pakietów to lista pakietów, które należy zainstalować. Zwykle można to złożyć w plik tekstowy, a następnie można użyć menedżerów pakietów większości dystrybucji, aby zainstalować tę listę pakietów w celu (dysku twardym lub katalogu, który będzie punktem montowania twojego nfs). Pliki konfiguracyjne powinny być prawdopodobnie przechowywane w
git
innym systemie kontroli źródła i zawierać kilka skryptów oraz wszelkie modyfikacje konfiguracji, które należy wprowadzić w systemie podstawowym zainstalowanym z zestawem pakietów. Zbudowanie nowego systemu staje się następnie:package_manager --install-distro --package-set=/path/packagelist.txt --target=/path
cd /target/path
git clone /path/to/repo
(lub w inny sposób wyewidencjonuj swój kod konfiguracji do systemowego katalogu głównego)To, czego użyjesz jako podstawy, powinno zależeć od tego, z czym czujesz się najlepiej. Chciałbym używać PLD Linux dla siebie, ale prawdopodobnie polecam ArchLinux jako podobny ale lepiej udokumentowanego systemu dla początkujących pracować. Nie ma powodu , dla którego Debian , Fedora lub Gentoo nie mogłyby na to działać.
źródło
dwm
lubawesome
. Jak mogę powiedzieć menedżerowi okien, aby uruchomił aplikację bez paska tytułu w trybie pełnoekranowym?apt-get
lubaptitude
na Debianie.Buildroot 2016.05 + Midori
Buildroot to świetne narzędzie do budowania minimalnych dystrybucji:
.config
plikMidori to minimalistyczna przeglądarka oparta na WebKit , a Buildroot ma wbudowany pakiet Midori.
.config
użyty plik: https://github.com/cirosantilli/buildroot-configs/blob/32d1174e0bf8d00b92323eebe8901af3f8c389d3/2016.05/qemu_x86_64_x11_midori_defconfigJak wygenerować ten plik konfiguracyjny:
make menuconfig
mesa3d
Wyczyść kompilację, ponieważ zmieniliśmy zestaw narzędzi i skompiluj ponownie:
Godziny oczekiwania. Następnie zwykłe:
I od wewnątrz QEMU:
i z GUI X11 kliknij
xterm
okno i uruchom:Wynik:
Rozmiar obrazu: 220 mln! Porównaj to z 28M samego systemu X11. Jak zainstalować X11 na własnym systemie Linux Buildroot? - Wymiana stosów Unix i Linux . Prawdopodobnie z powodu zależności WebKit + GTK3.
Testowany na hoście Ubuntu 16.04, QEMU 2.5.0.
NetSurf
Napisane w SDL, który obsługuje fbdev: http://www.netsurf-browser.org/about/screenshots/#framebuffer
fbdev to interfejs niższego poziomu oferowany przez moduł jądra Linuksa, który nie przechodzi przez X11 (myślę, że X11 może opcjonalnie używać go jako backendu). Zasadniczo po prostu piszesz do pamięci, która pokazuje się na ekranie.
Aby korzystać z fbdev na Ubuntu, musisz mieć TTY (np. Ctrl + Alt + F1).
Więc prawdopodobnie możesz uciec z obrazem znacznie mniejszym niż obraz Midori.
Buildroot 2016.05 ma pakiet,
netsurf-buildsystem
który powinien go dostarczyć, ale nie testowałem. Jeśli komuś uda się go uruchomić, edytuj link do pliku .config, zrzutu ekranu i rozmiaru obrazu.źródło
Napisałem kiedyś mały skrypt bash, który pobiera Arch Linux ISO i generuje nowy ISO ze zmodyfikowanym obrazem root, który wykonuje w pełni zautomatyzowaną instalację. Obejmuje to partycjonowanie, a także konfigurowanie i konfigurowanie systemu za pomocą Xorg, FVWM i Chromium. Zainstalowany system zaloguje się automatycznie i uruchomi Chromium. Wystarczy umieścić nowy ISO na dysku flash USB i odchylić się do tyłu. ;-)
Oświadczenie: skrypt jest dostarczany w stanie, w jakim się znajduje, bez gwarancji. Nie używałem go od dłuższego czasu, więc może potrzebować poprawki tutaj lub tam. Zmodyfikuj w razie potrzeby.
źródło
Do takiego systemu polecam Puppy .
Chociaż możesz zbudować dystrybucję za pomocą dowolnej wersji Linuksa, Puppy ułatwia tworzenie niestandardowych obrazów rozruchowych, jest kompaktowy i ma doskonałą obsługę systemu plików nakładek.
Nie - polecam zbudowanie obrazu rozruchowego, który można rozsądnie utrzymać - sugerowane podejście wróci i ugryzie.
źródło
Kilka osób wspomniało o uzbl i zgadzam się, że to dobry wybór - ale możesz znaleźć luakit jeszcze lepiej.
Jak już wspomniano Caleb, tak naprawdę nie potrzebujesz żadnego menedżera okien. Oto przykładowy skrypt, który stworzyłem, aby uruchomić serwer Xorg bez WM z maksymalną przeglądarką luakit:
Używa xdotool, aby zmaksymalizować okno zaraz po uruchomieniu luakit. Może jest na to lepsze rozwiązanie ...
Jako podstawę takiego systemu zdecydowanie polecam Gentoo. Nie tylko dlatego, że wiem to najlepiej;), ale także dlatego, że używa raczej unikalnego podejścia do globalnego zarządzania opcjami kompilacji całego zainstalowanego oprogramowania. Mam na myśli flagi USE . Korzystając z nich, określasz zestaw funkcji / bibliotek / standardów, które są używane przez wszystkie programy, które je obsługują - więc na przykład, jeśli chcesz, aby twoje programy korzystały z ALSA i nie potrzebowały dodatkowych backendów audio, takich jak esd, jack lub pulseaudio, umieść
alsa -jack -esd -pulseaudio
wśród swoich flag USE. Następnie każdy program, który zbudujesz, możeużycie dodatkowych backendów audio oprócz ALSA zostanie zbudowane bez ich obsługi. Ponieważ dzieje się tak na poziomie konfiguracji / kompilacji, powstaje znacznie cieńsze oprogramowanie. Jest to więc filozofia budowania (przy jednoczesnym poszanowaniu wszystkich zależności) zamiast rozbiórki (co może w końcu być błędne i bardzo trudne do utrzymania).źródło
Wspomnę o tym, bo jestem zaskoczony, że nikt inny tego nie ma.
Linux from Scratch to książka (pdf), która przeprowadzi cię przez proces tworzenia własnej dystrybucji Linuksa. Może to być przesada w stosunku do tego, co próbujesz osiągnąć (faktycznie widać, że masz już potrzebne narzędzia), ale może okazać się nieocenionym narzędziem w zrozumieniu, jak działa system. To naprawdę nie jest takie trudne i nie wymaga programowania.
źródło