首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Linux easy嵌入式应用程序

Linux easy嵌入式应用程序
EN

Stack Overflow用户
提问于 2017-08-02 02:23:22
回答 1查看 60关注 1票数 1

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

该设备运行ubuntu 14.4。

如有任何建议,我们将不胜感激。

也许:

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

EN

回答 1

Stack Overflow用户

发布于 2017-08-02 03:49:51

如果它是一个全屏SDL应用程序(kiosk风格),那么我的建议是使用普通的X。

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

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

代码语言:javascript
复制
 su - user -c /usr/bin/startx /usr/bin/myapp

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

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

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

~/.xinitrc

代码语言:javascript
复制
xsetroot -solid gray & #set the background
exec xterm             #run a terminal

作为一个扩展示例,您可以查看您的/etc/X11/xinit/xinitrc,如果您没有指定任何脚本,这将是默认脚本。

这样做之后,您仍然有几个热键可以访问系统。我能想到的是:

  • Ctrl+Alt+Del
  • Ctrl+Alt+Backspace
  • Ctrl+Alt+Fn
  • Alt+SysRq

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

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

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45445152

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档