Linux简易嵌入式应用

标签 linux embedded

我正在构建一个简单的 SDL 应用程序,一个啤酒厂应用程序,在我的车库中运行。我正在寻找一种直接的方法让我的应用程序在启动时运行并且不提供对系统的其他访问权限。如果我需要更改任何内容,我将能够使用 rsh 来更改板上的内容。一位 friend 告诉我,我可以通过某种方式修改 lightdm 脚本轻松地做到这一点,但还没有找到对此类内容的引用。

设备运行 ubuntu 14.4。

任何指针将不胜感激。

也许:

我可以转到 ~/.xinitrc 并将我的应用程序路径放在 exec 行吗?如果我的应用程序全屏运行?

最佳答案

如果它是全屏 SDL 应用程序(kiosk 样式),那么我的建议是使用纯 X。

也就是说,不要运行任何 WindowManager 或 CompositionManager,您不需要它们。 不要运行任何 DesktopManager 或 Greeter,您也不需要它们。

当系统启动时,只需将 X 服务器与您的应用程序一起运行,就像它是 WM 一样。例如来自 rc.local。我认为 Ubuntu 14 支持以非 root 身份运行它:

 su - user -c /usr/bin/startx /usr/bin/myapp

请注意,您可能需要在后台手动运行一些应用程序。您的 myapp 实际上是一个运行这些应用程序然后运行您的程序的脚本,这可能是个好主意。

或者,您可以不带参数运行 startx,它会自动运行 /home/user/.xinitrc

在脚本中你可以写所有的备份程序(用&)最后一行应该是你的程序(通常用exec/usr/bin/myapp , 没有 &)

~/.xinitrc

xsetroot -solid gray & #set the background
exec xterm             #run a terminal

对于扩展示例,您可以查看您的/etc/X11/xinit/xinitrc,如果您不指定任何脚本,那是默认脚本。


完成后,您仍然有一些热键可以访问系统。我能想到的:

  • Ctrl+Alt+Del
  • Ctrl+Alt+退格键
  • Ctrl+Alt+Fn
  • Alt+SysRq

但是所有这些都很容易被禁用。无论如何,如果可能的话,隐藏键盘并使用全触摸屏系统会更好。但请注意任何可用的 USB 端口!

然后是启动程序。您需要保护 grub 以避免更改引导选项。和 BIOS,使用密码,并禁用“更改启动顺序”选项(如果可用)。

然后是访问硬件(USB 端口、螺钉、电源按钮),但这取决于您安装的安全要求。

关于Linux简易嵌入式应用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45445152/

相关文章:

linux - 如何使用 udev 识别设备

c++ - 在linux中输入包含希腊字符的字符串

c++ - 尽管链接了库文件夹中的 .so 文件,但缺少 .h 文件

linux - rsync 可以仅用于创建硬链接(hard link)而不是复制吗?

linux - 等同于 Linux 上的 DYLD_PRINT_LIBRARIES?

linux - Perl + 如何在文件中的单词前添加行

c - 嵌入式 linux 编程入门套件

C - 将指针传递给字节

linux - 停止 qt 写入/dev/tty0

performance - 什么 dbus 性能问题会阻止它进入嵌入式系统?