跳转至内容

Uvesafb

来自 ArchWiki

本文正在被考虑存档

原因: 不再打包。 (请在 Talk:Uvesafb 讨论)

本文或本节需要在语言、wiki 语法或风格方面进行改进。请参阅 Help:Style 获取参考。

原因: 存在许多 Help:Style 问题 (请在 Talk:Uvesafb 讨论)

与其他帧缓冲驱动程序相比,uvesafb 需要一个用户空间虚拟化守护进程,称为 v86dAUR。在 x86 上模拟 x86 代码可能显得很愚蠢,但如果希望在其他架构(特别是非 x86 架构)上使用帧缓冲代码,这一点很重要。它是在内核 2.6.24 中添加的,并且比标准的 vesafb 具有更多的功能,包括

  1. 延迟后的正确空白和硬件挂起
  2. 支持系统 BIOS 中的自定义分辨率。

它应该支持与 vesafb 一样多的硬件。

安装

安装 uvesafb-dkmsAUR[broken link: package not found] 包。

配置

引导加载程序配置中删除任何与帧缓冲相关的 内核参数,以禁用旧的 vesafb 帧缓冲加载。以下命令应不返回任何结果

$ grep vga /proc/cmdline
$ grep -ir vga /etc/modprobe.d/

如果您在任何地方都有 vga= 选项,则需要将其删除。

mkinitcpio 钩子

将 v86d 钩子添加到 /etc/mkinitcpio.conf 中的 HOOKS。这允许 uvesafb 在启动时接管。

HOOKS=(base udev v86d ...)

定义分辨率

uvesafb 的设置定义在 /usr/lib/modprobe.d/uvesafb.conf 中。

有关 mode_option 的文档可在 [1] 找到。

为防止在包更新时覆盖您的自定义设置,请将此文件复制到 /etc/modprobe.d/uvesafb.conf

# cp /usr/lib/modprobe.d/uvesafb.conf /etc/modprobe.d/uvesafb.conf

然后确保 /etc/mkinitcpio.confHOOKS 数组中包含 modconf

要使更改生效,请 重新生成 initramfs 并重新启动系统。

优化分辨率

可以通过以下命令生成可能的解决方​​案列表

$ cat /sys/bus/platform/drivers/uvesafb/uvesafb.0/vbe_modes

用户随后可以修改 /usr/lib/modprobe.d/uvesafb.conf,其中包含上面返回的任何条目。

检查当前分辨率

可以使用以下任一命令显示当前帧缓冲分辨率,作为健全性检查,以查看设置是否生效

$ cat /sys/devices/virtual/graphics/fbcon/subsystem/fb0/virtual_size
$ cat /sys/class/graphics/fb0/virtual_size

内核模块参数

如果您自己编译内核,那么您也可以将 uvesafb 编译到内核中,然后稍后运行 v86d。在这种情况下,可以将选项作为 内核参数 传递,格式为 video=uvesafb:options

故障排除

Uvesafb 无法保留内存

检查您是否忘记删除任何 vga= 内核参数 — 这会用标准的 VESA 帧缓冲覆盖 UVESA 帧缓冲。

尝试将 video=vesa:off vga=normal 添加到 内核命令行

参见

© . This site is unofficial and not affiliated with Arch Linux.

Content is available under GNU Free Documentation License 1.3 or later unless otherwise noted.