linux - 带独立应用程序的嵌入式 Linux

标签 linux linux-kernel embedded-linux

我想让 Linux 操作系统全屏只运行一个应用程序,而不在启动时显示任何登录窗口或标题栏和最小化/最大化/关闭按钮。

有什么办法吗?它是嵌入式平台,我已经为它构建了 Linux 操作系统,我也有应用程序。

最佳答案

简而言之 - X 系统非常灵活。

当您的系统启动时,它会执行以下步骤:

  1. 加载并运行内核(以及相关的 initrd,如果有的话,但它是不相关的)
  2. 启动 init(进程 1)
  3. 启动系统服务、网络等。
  4. 启动 X 服务器
  5. 启动窗口管理器(负责调整窗口大小等的应用程序)
  6. 启动您的应用程序。

您需要做的是首先禁用 GUI 登录和 session (最容易禁用 X)- 您将能够通过控制台终端登录(您始终可以使用 Ctrl-Alt-F1 访问它)

然后,按照

的方式启动一些东西
X &
DISPLAY=:0 ./yourapp.exe

如果您的应用可以自行全屏显示,那就可以了。 将其添加到您的启动脚本中即可。


更多解释

窗口管理器的目的是管理窗口。就这么简单:)

基本上,典型的 X session 有 3 个组成部分。

  • X 服务器 - 围绕硬件(GPU 驱动程序、键盘、鼠标、触摸屏等)提供抽象层的软件。它有一个窗口的概念——X 客户端可以进入的区域。
  • X 客户 - 其他一切。你的软件,如果它绘制了一些东西,很可能就是一个。网络浏览器等也是如此。连接到 X 服务器,然后绘制。
  • 窗口管理器 - 一种特殊类型的 X 客户端,该软件能够控制屏幕上的窗口。它经常绘制窗口装饰(最小化、最大化按钮),有时绘制任务栏等。

您可以随意混合搭配它们。更简单、极简主义的窗口管理器,例如我的 ratpoison,我更喜欢它用于许多原型(prototype)嵌入式系统,它只有全屏窗口的概念,并且可以在全屏应用程序之间切换(想想 Windows 8 Metro)。其他人绘制窗口装饰,并允许重叠和层叠窗口。

由于开发窗口管理器是一项简单且模块化的任务,因此实际上有数百种可供选择。您也可以选择完全不使用,此时您的窗口必须进行 self 管理(默认情况下您将无法移动它们)。许多应用程序都遵循 -geometry 1920x1080+0+0 参数,告诉它们在 0,0 角以 1920x1080 分辨率打开一个窗口 - 有效地全屏。

关于linux - 带独立应用程序的嵌入式 Linux,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25202647/

相关文章:

linux - 如何在 openldap 复制(synrepl)中使用 slapadd 添加条目

linux - posix_fadvise(WILLNEED) 使 IO 变慢?

Linux slab 分配器和缓存性能

c - 来自 strtol 的意外输出

embedded-linux - 使用 Hob 将 Firefix 图层添加到 yocto

linux - IMAP 文件夹差异?

linux - 无法在 bash 中增加变量

python - 无法使用 Python3 格式化来自 Linux 的输出数据

linux - 定义了全局描述符和局部描述符表的数据结构的文件?

linux - 如何在 Linux 中添加具有 VID/PID 的设备