|
|
1
12
你的任务有几个部分。请记住,其中一些可能是非常特定于发行版的;但是既然您说了Ubuntu,我们将讨论Ubuntu! 另外,您还标记了这个问题C,不过我从一个常见的Linux模式开始:一个带有bash shell脚本包装器的本机应用程序。如果必须的话,也许一旦你把事情做好,你就可以把这个功能折叠成C。 正在检测x是否正在运行生根有很大帮助。一些有用的东西。
利用现有的X会话您没有特别提到它,但是如果您是控制台的根用户,或者如果您想以已经登录的同一用户的身份运行应用程序,那么这非常简单。
你必须得到
为了
为了
一旦有了这两个变量,运行X代码就很容易了,例如:
停止X
如果你是根,这个很容易:
如果你是一个用户,杀了你自己的
开始X
我建议你
例如:
您还可以告诉xinit运行x的分辨率,x对您来说可能重要,也可能不重要。(这在下面的全屏部分很重要。) 问题是,您将没有窗口管理器-没有最大化和最小化按钮。这不仅仅是化妆品。通常一个应用程序是无用的,因为弹出窗口不能被移动,或者你不能集中在正确的输入框上。但是,如果你有一个特殊的应用程序,它就足够了(见下面的全屏)。 下一步将是我对一切的回答: 另一个shell脚本包装器 !一些简单的启动窗口管理器,然后成为您的程序应该可以工作。
执行(成为)主程序很重要,因为一旦第一个程序退出,X将关闭。 全屏运行我对此不是百分之百肯定。一些想法:
总结其他人是对的。X不是严格必要的sine opengl可以在framebuffer上运行。然而,考虑到X的普及程度以及自动化它用于分发的工作量,我可能会将精力投入到X路径上,因为它可能更容易长期使用,即使有点复杂。 (顺便说一下,我 真诚希望 当你说“终端机”时,你的意思是你在文本中。 慰问 不是 终端 那太糟糕了!:) |
|
|
2
2
我不确定我的回答是否能帮到你。 很久以前,当我还是学生的时候,我就通过安装帧缓冲区(frame buffer)来做到这一点(从一个只有终端的Linux安装中启动OpenGL应用程序)。只要我还记得,我需要重新编译内核(因为framebuffer是/是内核模块)。 这可能是5年前在Debian发行版上,我不知道它现在作为Ubuntu在最新的Debian发行版上是如何工作的。也许framebuffer是在Ubuntu默认提供的二进制内核中静态编译的。可能不是。也许framebuffer现在不相关了…或者我可能是完全错误的,5年前我没有记住自己冒险的每一个细节。 看看谷歌!;-) 希望能有帮助… ** 更新:
**
|
|
|
3
1
正如Yves指出的,如果使用framebuffer,就可以避免运行X服务器。实际上,framebuffer模块通常还可用(例如,它们在内核启动时使用tux徽标,或者在后台使用具有花哨图像的文本终端),这取决于您使用的分布和设置。 内核方面非常原始,所以我建议使用一些更高级的库,例如 DirectFB . framebuffer可以毫无问题地使用,但不要期望与完全成熟的X服务器具有相同的成熟度级别。 |
|
|
4
0
您想让监视器上的视频直接连接到计算机上吗? X是否在服务器上运行?
如果x正在运行,可以
它告诉X应用连接到本地主机上的X服务器,而不是“你来自哪里”。 如果你真的在本地登录(从一个直接终端)是的,您需要安装X并运行。 |
|
|
MaPo · Linux,设置锁定ICMP_过滤器选项 1 年前 |
|
Doohyeon Won · 内联函数上的奇怪现象?[关闭] 1 年前 |
|
|
Bobby · 复合字面值总是左值吗? 1 年前 |
|
9-Pin · C: 嵌套结构的堆栈内存分配 1 年前 |