我正在构建一个简单的SDL应用程序,一个啤酒厂应用程序,在我的车库中运行。我正在寻找一种直接的方法让我的应用程序在启动时运行,并且不提供对系统的其他访问。如果我需要改变任何东西,我将能够使用rsh来改变板上的东西。一位朋友告诉我,我可以通过某种方式修改lightdm脚本轻松地做到这一点,但没有找到像这样的东西的引用。
该设备运行ubuntu 14.4。
任何指针都将不胜感激。
也许:
我可以转到〜/ .xinitrc并将我的应用程序路径放在exec行上。如果我的应用程序全屏运行?
答案 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
,而不是&
)
xsetroot -solid gray & #set the background
exec xterm #run a terminal
对于扩展示例,您可以查看/etc/X11/xinit/xinitrc
,如果您未指定任何内容,则可以使用默认脚本。
完成后,您仍然有几个热键来访问系统。我能想到的那些:
但所有这些都很容易被禁用。无论如何,如果可能的话,隐藏键盘和使用全触摸屏系统会更好。但要注意任何可用的USB端口!
然后是启动程序。您需要保护grub以避免更改引导选项。和BIOS一起使用密码,并禁用“更改启动顺序”选项(如果可用)。
然后可以访问硬件(USB端口,螺钉,电源按钮),但这取决于安装的安全要求。