我们正在组装一些轻型机器,其明确目的是在大屏幕上显示单个网页。我需要机器本质上尽可能轻量且尽可能快地启动,并本质上让它全屏运行浏览器(WebKit?),加载一个由 JavaScript 动态控制的页面。我将使用带有集成 GPU 的 Intel D525 双核处理器,因此我不需要设置任何专有的图形驱动程序。一旦我正确设置其中一台机器,我应该能够将dd
硬盘驱动器安装到我的计算机上,然后将其转储到每台新机器上。
我有以下问题:
如何创建一个仅包含我需要的“发行版”?我想我需要内核 (;])、X 和某种网络浏览器,但除此之外不需要太多。我可以采用像 Ubuntu Server 这样的东西,只需安装 X Server 并找到一种方法让机器自动登录、启动 X 并启动 Web 浏览器,而不询问任何问题吗?有什么我可以读的书或文章之类的吗?
我可以用什么来创建一个漂亮的、精简的、本质上运行“chromeless Chromium”的网络浏览器?这些机器根本不会接受用户输入。如果我需要管理它们,我将使用 SSH。
答案1
许多发行版都有一些用于最小安装的工具;本质上,您只手动选择那些您明确希望安装的软件包。 Debian 具有这种能力,并且在您的情况下,与其他明显的最小竞争者 Arch Linux 相比,Debian 会是更好的选择。
Arch 的滚动发布状态可能会提供您希望避免的持续复杂性。 Debian 将提供您正在寻找的简单、最小的基础,并提供稳定性。有一篇关于使用的博客文章Debian 作为信息亭这可能会提供一些有用的提示。
对于浏览器来说,如beav_35建议,乌兹布尔是一个不错的选择。我的建议是Vim可能,一个可编写脚本、键盘驱动并可通过 SSH 进行有效控制的 WebKit 浏览器。
作为窗口管理器,我会推荐数据管理: SLOC 不到 2000,非常轻巧,可以轻松配置为自助服务终端类型设置。
答案2
首先,您可能不想重新发明轮子......有几个以信息亭为中心的发行版。其中之一可能会为您节省大量工作。
其次,如果您熟悉 Fedora 和 RHEL(或 CentOS 或 Scientific Linux)上的 Kickstart,您可以使用 Fedora 工具来制作您自己的任何这些发行版。文档有点分散,但是从这里开始。
答案3
答案4
Buildroot 2016.05 + Midori
构建根是构建最小发行版的绝佳工具:
- 你给它一个
.config
文件 - 它下载并编译所有必需的软件和依赖项,并生成图像
绿简约的网络工具包基于浏览器,并且 Buildroot 有一个内置的 Midori 包。
如何生成该配置文件:
- 跟随:如何在我自己的Linux Buildroot系统上安装X11? | Unix 和 Linux 堆栈交换使用 X11 创建图像。
make menuconfig
- 工具链
- C库
- glibc(用于 midori)
- C库
- 目标包
- 图形库和应用程序
mesa3d
- 选择所有 Gallium 和 DRI 驱动程序,因为我不明白需要哪一个(对于 OpenGL EGL)
- OpenGL EGL(用于 libgtk3)
- 图书馆
- 图形1.libgtk3(用于midori)
- 图形库和应用程序
- 工具链
清理构建,因为我们更改了工具链并再次构建:
rm -rf output
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
从 QEMU 内部:
root
startx
从 X11 GUI 单击一个xterm
窗口并运行:
midori
结果:
图片大小:220M!与裸 X11 系统的 28M 进行比较如何在我自己的Linux Buildroot系统上安装X11? - Unix 和 Linux 堆栈交换。可能是因为 WebKit + GTK3 依赖性。
在 Ubuntu 16.04 主机、QEMU 2.5.0 上测试。
网上冲浪
用SDL编写,支持fbdev:http://www.netsurf-browser.org/about/screenshots/#framebuffer
fbdev 是 Linux 内核模块提供的较低层接口,不通过 X11(我认为 X11 可以选择将其用作后端)。基本上,您只需写入内存即可将其显示在屏幕上。
要在 Ubuntu 上使用 fbdev,您必须使用 TTY(例如 Ctrl + Alt + F1)。
所以你可能可以通过图像逃脱方式比 Midori 还小。
Buildroot 2016.05 有一个包netsurf-buildsystem
应该提供它,但我还没有测试。如果有人设法让它运行,请编辑 .config、屏幕截图和图像大小的链接。