如何在Linux中写入VGA存储器(不是视频缓冲区,内存)以在屏幕上显示徽标?
问题描述:
我想从用户空间写入到VGA存储器(视频内存,而不是缓冲区),通过在用户空间中映射并将地址发送到内核空间,我将使用pfn重映射将这些mmap-ed地址映射到vga内存(我会通过lspci获取地址)。通过这样做,我想在屏幕上显示图像/徽标?有关于此的任何帮助?如何在Linux中写入VGA存储器(不是视频缓冲区,内存)以在屏幕上显示徽标?
答
没有必要跳过所有这些篮球。
将相应的/sys/devices/pci<addr>/resource<N>
文件映射到您的进程内存中,通过mmap
等等直接访问PCI内存。
这是不明白你想做什么,但你可以写到/ dev/fb0 – 0x90
当我通过使用'lspci'命令获得视频内存的物理范围时,我将重新映射我得到的mmap的虚拟地址从用户应用程序到ioctl,将这些地址映射到视频内存的物理地址。然后,我想从用户应用程序在屏幕上显示徽标/图像。帮帮我? – neo
您可能需要识别任何驱动程序将代理或通过访问特定安装上的软件“framebuffer”并检查其来源,以查看它是如何与硬件视频内存进行交互的。另外请注意,虽然有些显卡有专用的视频RAM,但其他显卡则使用主内存的一部分。在现代系统中,要小心错误优化的风险,其中您的高效尝试最终会导致复杂的效率优化,从而导致间接访问更加高效,而不是简单直接编写的尝试。 –