Linux易嵌入式应用程序

时间:2017-08-01 18:23:22

标签: linux embedded

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

该设备运行ubuntu 14.4。

任何指针都将不胜感激。

也许:

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

1 个答案:

答案 0 :(得分:2)

如果它是全屏SDL应用程序(自助服务终端风格),那么我的建议就是简单的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 +德尔
  • Ctrl + Alt +退格
  • Ctrl + Alt + FN
  • ALT + SysRq组合

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

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

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