Мы собираем несколько легких машин с единственной целью - показать одну веб-страницу на большом экране. Мне нужно, чтобы машина, по сути, загружалась максимально легко и как можно быстрее, и, по сути, чтобы она запускала браузер (WebKit?) В полноэкранном режиме, загружая одну страницу, которая будет динамически контролироваться JavaScript. Я буду использовать двухъядерный процессор Intel D525 со встроенным графическим процессором, поэтому мне не нужно устанавливать какие-либо проприетарные графические драйверы. После того, как я правильно настрою одну из этих машин, я смогу просто установить dd
жесткий диск на мой компьютер и затем сбросить его на каждую новую машину.
У меня есть следующие вопросы:
Как я могу создать «дистрибутив», который включает в себя только то, что мне нужно? Полагаю, мне понадобится ядро (;]), X и какой-то веб-браузер, но в действительности не так уж много другого. Могу я взять что-то вроде Ubuntu Server и просто установить X Server и найти способ автоматического входа в систему, запуска X и запуска веб-браузера, без вопросов? Есть ли книга, которую я могу прочитать или статья или что-то?
Что я могу использовать для хорошего, урезанного веб-браузера, который по сути работает с Chrome без хрома? Эти машины не будут принимать пользовательский ввод вообще. Если мне нужно управлять ими, я буду использовать SSH.
источник
Прежде всего, вы можете не захотеть изобретать велосипед ... Существует несколько дистрибутивов, ориентированных на киоски. Один из них может сэкономить вам много работы.
Во-вторых, если вы знакомы с Kickstart в Fedora и RHEL (или CentOS или Scientific Linux), вы можете использовать инструменты Fedora, чтобы создать собственный вариант любого из этих дистрибутивов. Документация немного разбросана, но начнем здесь .
источник
Начните с минимального дистрибутива, такого как Arch Linux , затем установите нужные вам пакеты. Для простого веб-браузера попробуйте Uzbl .
источник
Это довольно сложный вопрос, и, поскольку ваш проект не совсем понятен, некоторые из этих предложений могут быть неуместны, но подумайте о них, чтобы оценить.
Вам может не понадобиться веб-браузер на любом компьютере, который является частью массива дисплея. Если вы пытаетесь показать одну страницу на нескольких экранах, скорее всего, вы захотите использовать какую-то технологию массового отображения. Существует несколько вариантов Xorg, которые специализируются на создании одного большого дисплея из видеоустройств на нескольких машинах.
Даже если вы используете отдельные X-серверы на каждой машине, вы можете использовать X-forwarding для отправки отображаемых данных с одного или нескольких других компьютеров, поэтому браузерам все равно не придется работать локально.
Вы захотите либо вообще не использовать оконный менеджер и использовать геометрические спецификации для запуска полноэкранного приложения, либо использовать настраиваемый диспетчер окон плитки или структуры (например,
awesome
) для управления окнами на каждом X-дисплее. Это облегчает сортировку и управление полноэкранными окнами и позволяет создавать сценарии.Что касается браузера, я думаю, что
uzbl
это, вероятно, четкий выбор.Это может быть хорошим приложением для загрузки по сети. Вы можете настроить сервер с ядром нетбука, доступным через TFTP, и файловой системой, доступной через nfs. Все, что нужно вашим клиентам, - это использовать сетевую карту с поддержкой сетевой загрузки, чтобы связаться с этим сервером, загрузить их ядро и начать работу. Нет жесткого диска! И простота в обслуживании. Все машины могут потенциально загружать один и тот же образ.
Ваш «дистрибутив», вероятно, должен состоять из двух вещей. 1) набор пакетов и 2) набор файлов конфигурации. Набор пакетов - это список пакетов, которые необходимо установить. Обычно его можно собрать в текстовом файле, и затем вы можете использовать большинство менеджеров пакетов дистрибутива для установки этого списка пакетов на цель (либо на жесткий диск, либо в каталог, который будет вашей точкой монтирования nfs). Файлы конфигурации, вероятно, должны храниться в
git
другой системе управления исходным кодом и содержать несколько сценариев, а также любые моды конфигурации, которые необходимо выполнить для базовой системы, установленной с набором пакетов. Построение новой системы становится:package_manager --install-distro --package-set=/path/packagelist.txt --target=/path
cd /target/path
git clone /path/to/repo
(или иным образом извлеките ваш код конфигурации в системный корень)Какой дистрибутив вы используете в качестве основы, должен зависеть от того, что вам наиболее удобно. Я бы использовал PLD-Linux для себя, но, вероятно, рекомендую ArchLinux как похожую, но лучше документированную систему для работы с новичком. Нет никаких причин, по которым Debian , Fedora или Gentoo не будут работать для этого.
источник
dwm
илиawesome
. Как я могу сказать диспетчеру окон запустить приложение без строки заголовка в полноэкранном режиме?apt-get
илиaptitude
на Debian.Buildroot 2016.05 + Midori
Buildroot - отличный инструмент для создания минимальных дистрибутивов:
.config
файлMidori - минималистичный браузер на основе WebKit , а Buildroot имеет встроенный пакет Midori.
.config
используемый файл: https://github.com/cirosantilli/buildroot-configs/blob/32d1174e0bf8d00b92323eebe8901af3f8c389d3/2016.05/qemu_x86_64_x11_midori_defconfigКак создать этот файл конфигурации:
make menuconfig
mesa3d
Очистите сборку, потому что мы изменили набор инструментов, и соберите снова:
Подожди часов. Тогда обычный:
И изнутри QEMU:
и из графического интерфейса X11 щелкните
xterm
окно и запустите:Результат:
Размер изображения: 220М! Сравните это с 28M простой системы X11. Как установить X11 в моей собственной системе Linux Buildroot? - Unix & Linux Stack Exchange . Вероятно, из-за зависимостей WebKit + GTK3.
Протестировано на хосте Ubuntu 16.04, QEMU 2.5.0.
NetSurf
Написан на SDL, который поддерживает fbdev: http://www.netsurf-browser.org/about/screenshots/#framebuffer
fbdev - это интерфейс более низкого уровня, предлагаемый модулем ядра Linux, который не проходит через X11 (я думаю, что X11 может дополнительно использовать его в качестве бэкэнда). Вы просто пишете в память, и это отображается на экране.
Чтобы использовать fbdev в Ubuntu, вы должны использовать TTY (например, Ctrl + Alt + F1).
Таким образом, вы, вероятно, можете сойти с изображения, намного меньшего, чем у Мидори.
Buildroot 2016.05 имеет пакет,
netsurf-buildsystem
который должен предоставить его, но я не тестировал. Если кому-то удастся запустить его, отредактируйте ссылку на файл .config, снимок экрана и размер изображения.источник
Однажды я написал небольшой bash-скрипт, который принимает ISO-образ Arch Linux и генерирует новый ISO-файл с измененным корневым образом, который выполняет полностью автоматическую установку. Это включает в себя создание разделов, а также настройку и настройку системы с помощью Xorg, FVWM и Chromium. Установленная система автоматически войдет в систему и запустит Chromium. Просто поместите новый ISO на флешку и откиньтесь назад. ;-)
Отказ от ответственности: сценарий предоставляется как есть, гарантия не предоставляется. Я не использовал его некоторое время, поэтому может потребоваться настройка здесь или там. Изменить по необходимости.
источник
Для такой системы я бы порекомендовал Puppy .
Несмотря на то, что вы можете создать свой дистрибутив, используя любую версию Linux, Puppy очень легко создает пользовательские загрузочные образы, компактна и имеет отличную поддержку файловой системы.
Нет - я бы порекомендовал создать загрузочный образ, который вы можете разумно поддерживать - предложенный вами подход вернется и укусит вас.
источник
Несколько человек упомянули uzbl, и я согласен, что это хороший выбор, но вы можете найти luakit еще лучше.
Как Калеб уже упоминалось, вы на самом деле не нужен какой - либо оконный менеджер. Вот пример сценария, который я создал для запуска сервера Xorg без WM с развернутым браузером luakit:
Он использует xdotool для максимизации окна сразу после запуска luakit. Может быть, есть лучшее решение для этого, хотя ...
Для базы такой системы я бы определенно рекомендовал Gentoo. Это не только потому, что я знаю это лучше;), но и потому, что он использует довольно уникальный подход глобального управления параметрами времени сборки всего установленного программного обеспечения. Я имею в виду флаги USE . Используя их, вы определяете набор функций / библиотек / стандартов, которые используются всеми программами, которые их поддерживают - например, если вы хотите, чтобы ваши программы использовали ALSA и не нуждались в дополнительных аудиобэкэндах, таких как esd, jack или pulseaudio, вы поместите
alsa -jack -esd -pulseaudio
среди своих флагов USE. После этого каждый программный продукт, который вы создаете, можетИспользование дополнительных аудио бэкендов кроме ALSA будет построено без поддержки тех. Так как это происходит на уровне конфигурации / сборки, у вас получается более тонкое программное обеспечение. Так что это философия построения (при соблюдении всех зависимостей) вместо того, чтобы убирать (что может привести к тому, что будет глючно и очень сложно поддерживать).источник
Я упомяну это, потому что я удивлен, что никто больше не имеет.
Linux from Scratch - это книга (pdf), которая поможет вам создать собственный дистрибутив Linux. Это может быть излишним для того, что вы пытаетесь достичь (на самом деле, это потому, что у вас уже есть необходимые инструменты), но это может оказаться бесценным инструментом для понимания того, как работает система. Это действительно не так сложно, и в этом нет никакого программирования.
источник