在咖啡机上运行MS团队? (或:嵌入式Linux FrameBuffer VNC客户端)

2021-04-09 18:14:55

跳过主要内容以填补一段时间在编译期间,我试图在咖啡机上运行的VNC客户端,专门向MS团队展示。在工作中,我在C ++中为这些咖啡机开发软件,这使我能够做出如此有趣的东西,因为从软件的角度来看,它只是一个运行Linux的ARM PC,带有框架缓冲器。我编译了一些帧缓冲的VNC客户端,触发了一个SSH隧道并使用X11VNC共享一个特定的窗口,经过几次尝试,团队在我的&#39上运行;新'第二个Monitor。这篇文章包含我的小型冒险,但它不是全面指南,因为我的其他大部分文章。向您展示如何使用Variscite特定的工具链设置OpenEmbedded服务器是太多的工作来交叉编译简单的C程序,但自那个'我的日常工作,为什么不用它乐趣。它包含X11VNC的一些提示,并向您展示两个不同的FrameBuffer VNC客户端,FBVNC和DirectVNC。

重要的免责声明:这是一个有趣的方面项目,既不承认也不承认越过我的雇主。他们的咖啡机无法在正常情况下运行定制软件。

此帖子中的说明适用于任何Linux FrameBuffer设备。它可能是覆盆子PI甚至是您自己的机器。我没有测试用户输入(鼠标/键盘),因为我打算将设备用作视图屏幕。

对于本地开发,我有时会这样做反向的方式,在我的本地机器上运行Thecoffee Machine UI。手动测试是一种稀有电流,因为到迄今为止,我们的代码库的大部分是由unittests覆盖的,并且有一个广泛的HTTP API。但是,有时,有必要的本地测试,我们有存根,可以在本地运行Qt UI,甚至普遍使用一些篮球运行。当然,一堆咖啡有待测试,但谁喜欢行走和手动按下按钮,如果你可以自动化那个东西?

那么为什么不获得实际的第二屏幕?好吧,我个人使用截止值,因为我试着一次做一件事。一件事通常会令我关注的关注和关注,所以第二个屏幕,各种各样的股票都没有为我工作。

但是,不经常,我错过了第二屏幕。在聊天会话或Videocall' s'重组编程或打开数据表。在Supcase中,我想要一个小屏幕,当它不再被了,易于关闭。

我的一位朋友是视频编辑器,他有一个单独的5"屏幕,用于最终切割。那件事昂贵(由于颜色正确)和onaliexpress我只能找到这些东西,仍然昂贵。

然后它发生了,我们的咖啡机都有7"触摸屏幕,他们runlinux,我在yodesk上有一堆弗兰肯斯坦的咖啡机进行测试。为什么不使用这样的屏幕偶尔聊天窗口?

机器使用Flash UI,Qt UI或WardlessUI进行闪存,使用MQTT和内部HTTP API来运行GNASH。 Qt UI Alsouses HTTP API,Flash仍然运行自定义通信协议。

Qt和gnash都在帧缓冲区上运行,没有x服务器,因此roundalvnc客户端无法正常工作。或者实际的团队为这一事件二进制。

我使用以下命令仅在localhost上启动VNC服务器(因为它在没有密码的情况下运行,FBVNC不支持该)。特殊的事情是该命令允许我选择一个窗口,该窗口是Sharedover VNC,而不是整个桌面或屏幕区域。

赋予-geometry和-scale参数是因为机器屏幕分辨率。这看起来不那么奇怪。

由于VNC服务器仅通过LocalHost访问,因此我使用SSH到Setupa安全隧道到咖啡机并将我的机器和#39; S VNCPORT转发给咖啡机:

咖啡机通常没有SSH运行或暴露。对于LocalDevelopment,我们可以打开它,但它涉及签名包和UART。

现在,就咖啡机而言,它在localhost上有一个端口:5900,它也是一个工作的VNC显示器:0。伟大的! Let' s继续到VNC客户端。

FrameBuffer的VNC客户端都与特定的工具链进行了交叉编译,对其他地方的说明并不真正适用。在覆盆子PI或其他ARM板上,您可以安装GCC(APT安装Build-Essential)并沿着。

我发现的第一个客户是DirectVNC。超过9岁,似乎是德德,但我可以找到一个开阔的jedded配方,这是它的工作原理,所以很容易。它显得太容易了,因为它部分工作。你可以在下面的图像上看到,屏幕的一半是黑色的,而且颜色有点脱落(工作)半:

我提出了一个github问题,但我不期待它将是固定的,因为Project似乎已经死了。好奇的事情是其他代码在整个屏幕上使用DirectFB Didework,没有问题运行示例。用于帧缓冲渲染的DirectVncused DirectFB。

我尝试了/ etc / directfbrc中的所有可能的选项,快速查看代码,但没有找到任何让它工作的东西。自'在业余时间的sideproject以来,我决定继续前进到我发现的下一个客户端fbvnc。

如果您'重新编译自己,您可以克隆存储库(git clonehttps://github.com/drinkmilk/directvnc)并运行autoreconf -vfi然后automake,然后是./configure和make完成。该文件夹中应该有一个新的二进制文件。确保您有Adwer的DirectFB,IT'依赖。

FBVNC是一个较小的更赤裸的骨骼工具。旧的网页课程是outhousoffline,但archive.org仍然有副本。然而,为了我的惊喜,Git存储库从其作者开始了,Ali Golemi Rudi最近犯了协议!

Git Clone并在我的交叉编译设置中制作FBVNC我有一个工作二进制。连接起初失败了,因为我有密码保护。删除密码后,它立即运行。方式简单的方式设置(无AutoTools),没有对DirectFB的依赖,Savesa很多工作。

FBVNC硬编码主机127.0.0.1和端口5900,但是您可以在命令行上指定其他人:

没有帮助或指示,只是连接失败或initFailed。源很小且可读,所以弄清楚何时易行的事情。启动它后,Ctrl + C退出DONN' t工作,停止它必须停止x11vnc。

以下是我的整个KDE桌面运行的屏幕截图(在咖啡机上缩放,Vy VNC:

表演明智,它'好吧,我期待。一个Tad Bit Laggy,但是可以使用Andeven进行视频通话,而不是那么多口吃。因为它''所有在MyWorkStation上运行,只有渲染就在咖啡机上,我没有较少。如果我有更多的业余时间,我会尝试在有时拍摄的视频。对于偶尔的第二屏幕,它' s只是完美。

标签:AutoTools,博客,开发,框架,有趣,Linux,Microsoft,VNC