更改Linux framebuffer背景颜色

4
我的问题是关于Linux内核的。当framebuffer设备初始化(我想这是vesafb)时,屏幕会被填充为黑色。我该如何更改颜色?我应该编辑哪个文件?我想这是在drivers/video/中的某些内容。
我只知道如何更改控制台背景(drivers/tty/vt/vt.c),但这不是我需要的。VGA控制台已关闭。
如果我的描述不清楚,我有一个video展示了我的虚拟机系统启动过程。在内核加载后,QEMU窗口的大小变为640x480并完全变成黑色(0:03-0:04)。这就是我想要修改的。之后我的init开始运行。它向framebuffer输出文本,然后死机,导致内核恐慌并在1秒钟内重新启动。然后一切都重新开始。
1个回答

4

vt.c中的控制台实现最初是基于VGA控制台,但现在用于所有控制台。(“属性字节”被映射为底层硬件驱动程序实际支持的任何内容。)

更改vc_init()vc_def_color的初始化。

自3.12版本以来,这也可以通过内核参数vt.color进行更改。


我将其更改为 vc->vc_def_color = 0x07;,但没有结果。顺便说一下,如果我启用VGA控制台,它可以工作,但结果通常是相同的:在最开始时,屏幕会被黑色填充。 - tpimh
0x07 是旧的默认设置。在GPU驱动程序初始化之前,您会得到由BIOS设置的文本模式,它始终具有黑色背景。 - CL.
好的。这是否意味着内核甚至没有屏幕填充代码?如果是这样,我需要添加它。仍然有人在填充屏幕(请参见我的视频0:07处,屏幕已清除旧数据),也许是BIOS。 - tpimh
当GPU驱动程序初始化时,内核会填充屏幕。 - CL.
请问您能告诉我用于填充屏幕的具体函数名称吗? - tpimh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接