Linux kernel 在Linux中,如何写入VGA内存(不是视频缓冲区、内存)以在屏幕上显示徽标?

Linux kernel 在Linux中,如何写入VGA内存(不是视频缓冲区、内存)以在屏幕上显示徽标?,linux-kernel,ioctl,vga,Linux Kernel,Ioctl,Vga,我想从用户空间写入VGA内存(视频内存,而不是缓冲区),方法是在用户空间中映射mmap并将地址发送到内核空间,在内核空间中,我将使用pfn remap将这些mmap ed地址映射到VGA内存(我将通过lspci获取地址)。通过这样做,我想在屏幕上显示一个图像/徽标?这方面有什么帮助吗?无需跳过所有这些障碍 通过直接访问pci内存,将相应的/sys/devices/pci/resource-文件映射到进程的内存中。您想做什么是不可理解的,但当我使用“lspci”命令获得视频内存的物理范围时,您可以

我想从用户空间写入VGA内存(视频内存,而不是缓冲区),方法是在用户空间中映射mmap并将地址发送到内核空间,在内核空间中,我将使用pfn remap将这些mmap ed地址映射到VGA内存(我将通过lspci获取地址)。通过这样做,我想在屏幕上显示一个图像/徽标?这方面有什么帮助吗?

无需跳过所有这些障碍


通过直接访问pci内存,将相应的
/sys/devices/pci/resource
-文件映射到进程的内存中。

您想做什么是不可理解的,但当我使用“lspci”命令获得视频内存的物理范围时,您可以写入/dev/fb0,我将重新映射通过ioctl从用户应用程序获得的mmap的虚拟地址,以将这些地址映射到视频内存的物理地址。然后,我想在用户应用程序的屏幕上显示一个徽标/图像。帮助?您可能需要确定在特定安装上代理或通过访问软件“帧缓冲区”的驱动程序,并检查其源代码,以查看它如何与硬件视频内存交互。还要注意的是,虽然一些图形卡有专用的视频RAM,但另一些图形卡使用一部分主内存。在现代系统上,要注意错误优化的风险,因为您试图提高效率,但最终会禁用复杂的效率优化,这可能会使间接访问比简单的直接写入更有效。