我的需求很简单:制作一个 Raspberry PI 3 瘦客户端。为此,我需要实现以下目标:
- Kiosk 模式软件,不允许用户更改配置
- 一个 Kiosk 模式软件,允许我调用外部二进制文件(例如
xfreerdp
) - 一个信息亭模式软件,允许我创建简单的表单(例如用户和密码),以便我可以将它们作为参数传递给其他软件(例如
xfreerdp
)- 需要以这种方式完成,因为我们有一个
.rdp
内置所有网关和连接代理逻辑的文件。我们不能只是启动连接并显示默认的 Windows 2012 登录(不起作用)。
- 需要以这种方式完成,因为我们有一个
问题:
我能找到的所有解决方案仅涉及在信息亭或全屏模式下使用浏览器。我需要的不仅仅是浏览互联网。
我当前的(不太好的)解决方案涉及创建这些表单和yad
一些脚本来捕获用户输入并将其传递给xfreedrp
,但我在这里思考未来,比如使用 puppet 来管理这些脚本或网页所有客户端都可以访问。而且也不xfreerdp
是用户将使用的唯一软件。显示网页和vmware-view-client
其他我需要填充瘦客户端的软件。
到目前为止我发现的:
- 使用像 XFCE 这样的简单窗口管理器:将花费时间来根据我的需求进行定制,并且需要时间来使同步功能发挥作用以在需要时保持更新。
- 出于明显的安全原因, Use
chromium-browser
或firefox
Kiosk 不允许我运行本地命令。 - 加糖似乎是创建 html5 表单的不错选择,但我仍然会受到外部软件的网络浏览器限制
- 皮特克似乎是一个很好的发行版,但它只安装了“东西”。所有这一切都可以通过安装 Debian/Raspbian 并输入一些
apt-get
. - 中号:层是一个用 python 编写的类似瘦客户端的界面。这似乎是我最好的选择,但我无法找到一种方法来捕获用户和密码并将其传递给
xfreerdp
(也许yad
从这里调用)
重要的东西:
xfreerdp
,,,一个网络浏览器、服务器、守护进程和一个 GUI,我可以在其中汇总信息,帮助我们的一级支持人员访问设备(基本上是 IP 地址和主机名)、一个时钟和一个关机按钮ocs-inventory-agent
。vmware-view-client
vnc
ssh
回到问题:关于发行版或易于定制的 GUI 的任何提示,我可以将所有这些“大图标”展示给用户?
答案1
我用两种方法做到了这一点,其中一种是使用简单的窗口管理器,正如您提到的。然而,当我说“简单”时,我的意思是台湾,这就是最简单的。定制实际上只不过是列出需要在 ~/.xinitrc 中启动的应用程序,再加上一些乱七八糟的东西twmrc 文件。
这个解决方案效果很好。 twm 是高度可定制的,因此很容易在“信息亭模式”(即全屏、无标题栏)下启动任意 GUI 应用程序。您还可以启动任何其他应用程序,例如x11vnc,在后台满足您的远程登录需求。这是值得研究的。我认为根据您的需求进行定制不会比任何其他方法花费更长的时间。
另一种效果很好但需要更多努力的选项是使用EGLFS插件。在这种情况下,您根本没有运行 X11,并且 Qt 应用程序中的顶级窗口是全屏运行的。这可能比您想要的要多得多,并且需要付出很多努力才能使远程访问正常工作。