【问题标题】:How to write into the VGA memory (not video buffer, memory) to display a logo on screen, in Linux?如何在 Linux 中写入 VGA 内存(不是视频缓冲区,内存)以在屏幕上显示徽标?
【发布时间】:2012-12-01 13:36:54
【问题描述】:

我想通过用户空间中的 mmap-ing 并将地址发送到内核空间从用户空间写入 VGA 内存(视频内存,而不是缓冲区),在内核空间中,我将使用 pfn remap 来映射那些 mmap-ed 地址到vga内存(我将通过lspci获取地址)。通过这样做,我想在屏幕上显示图像/徽标?对此有何帮助?

【问题讨论】:

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

标签: linux-kernel ioctl vga


【解决方案1】:

无需跳过所有这些障碍。

通过mmap 将相应的/sys/devices/pci<addr>/resource<N> 文件映射到进程的内存中,等等,直接访问PCI 内存。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-03-03
    • 2013-09-19
    • 2010-10-07
    • 1970-01-01
    • 1970-01-01
    • 2017-01-19
    • 2014-11-11
    相关资源
    最近更新 更多