uvesafb - VBE2+ 相容顯示卡的通用驅動

1. 要求

uvesafb 應該適用於任何具有符合 VBE 2.0 標準的 Video BIOS 的顯示卡。

與其他驅動程式不同,uvesafb 使用一個名為 v86d 的使用者空間輔助程式。 v86d 用於在模擬和受控環境中執行 x86 Video BIOS 程式碼。 這使得 uvesafb 可以在 x86 以外的架構上執行。 有關當前支援的架構列表,請檢視 v86d 文件。

v86d 原始碼可以從以下網站下載

有關詳細的配置和安裝說明,請參閱 v86d 文件。

請注意,為了使 uvesafb 正常工作,v86d 使用者空間輔助程式必須始終可用。 如果您想在啟動早期使用 uvesafb,您必須將 v86d 包含到 initramfs 映像中,並將其編譯到核心中或用作 initrd。

2. 注意事項和限制

uvesafb 是一個_通用_驅動程式,它支援各種各樣的顯示卡,但最終受到 Video BIOS 介面的限制。 最重要的限制是

  • 缺乏任何型別的加速。

  • 一套嚴格且有限的支援的影片模式。 通常,您的設定的本機或最合適的解析度/重新整理率將無法與 uvesafb 一起使用,這僅僅是因為 Video BIOS 不支援您想要使用的影片模式。 這對於寬屏面板來說尤其令人痛苦,因為本機影片模式沒有 4:3 的寬高比,而這正是大多數 BIOS 限制的。

  • 僅當 Video BIOS 符合 VBE 3.0 時,才能調整重新整理率。 請注意,許多 nVidia Video BIOS 聲稱符合 VBE 3.0,但它們只是忽略任何重新整理率設定。

3. 配置

uvesafb 既可以編譯為模組,也可以直接編譯到核心中。 在這兩種情況下,它都支援相同的配置選項集,這些選項在核心命令列上給出或作為模組引數給出,例如

video=uvesafb:1024x768-32,mtrr:3,ywrap (compiled into the kernel)

# modprobe uvesafb mode_option=1024x768-32 mtrr=3 scroll=ywrap  (module)

接受的選項

ypan

使用 VESA 保護模式介面啟用顯示平移。 可見螢幕只是影片記憶體的一個視窗,控制檯滾動透過更改視窗的起始位置來完成。 此選項僅在 x86 上可用,並且是該架構上的預設選項。

ywrap

與 ypan 相同,但假設您的 gfx 板可以環繞影片記憶體(即,如果到達影片記憶體的末尾,則從頂部開始讀取)。 比 ypan 快。 僅在 x86 上可用。

redraw

透過重繪螢幕的受影響部分進行滾動,這是非 x86 上的預設設定。

(如果您使用 uvesafb 作為模組,則以上三個選項用作 scroll 選項的引數,例如 scroll=ypan。)

vgapal

使用標準 VGA 暫存器進行調色盤更改。

pmipal

使用保護模式介面進行調色盤更改。 如果保護模式介面可用,則這是預設設定。 僅在 x86 上可用。

mtrr:n

為幀緩衝設定記憶體類型範圍暫存器,其中 n

  • 0 - 停用(相當於 nomtrr)

  • 3 - 寫合併(預設)

除 0 和 3 以外的值將導致警告,並將被視為與 3 相同。

nomtrr

不要使用記憶體類型範圍暫存器。

vremap:n

重新對映 'n' MiB 的影片 RAM。 如果為 0 或未指定,則根據影片模式重新對映記憶體。

vtotal:n

如果您的顯示卡的 Video BIOS 錯誤地確定了影片 RAM 的總量,請使用此選項覆蓋 BIOS(以 MiB 為單位)。

<mode>

您要設定的模式,採用標準 modedb 格式。 有關詳細說明,請參閱 modedb 預設影片模式支援。 當 uvesafb 編譯為模組時,模式字串應作為 'mode_option' 選項的值提供。

vbemode:x

強制使用 VBE 模式 x。 只有在 VBE 提供的支援模式列表中找到該模式時,才會設定該模式。 注意:模式編號 'x' 應以 VESA 模式編號表示法指定,而不是 Linux 核心表示法(例如 257 而不是 769)。 提示:如果您使用此選項是因為正常的 <mode> 引數對您不起作用,並且您使用 X 伺服器,您可能需要設定 'nocrtc' 選項以確保在控制檯 <-> X 切換後正確恢復影片模式。

nocrtc

設定影片模式時不要使用 CRTC 時序。 僅當 Video BIOS 符合 VBE 3.0 時,此選項才有效。 如果您在使用標準方式設定的模式時遇到問題,請使用它。 請注意,使用此選項意味著任何重新整理率調整都將被忽略,並且重新整理率將保持在您的 BIOS 預設值(60 Hz)。

noedid

不要嘗試獲取和使用 EDID 提供的模式。

noblank

停用硬體消隱。

v86d:path

設定 v86d 可執行檔案的路徑。 此選項僅作為模組引數可用,而不作為 video= 字串的一部分。 如果您需要使用它並且已將 uvesafb 構建到核心中,請使用 uvesafb.v86d="path"。

此外,還可以提供以下引數。 它們都會覆蓋 EDID 提供的值和 BIOS 預設值。 請參閱您的顯示器的規格,以獲取 maxhf、maxvf 和 maxclk 的正確值。

maxhf:n

最大水平頻率(以 kHz 為單位)。

maxvf:n

最大垂直頻率(以 Hz 為單位)。

maxclk:n

最大畫素時鐘(以 MHz 為單位)。

4. sysfs 介面

uvesafb 提供了多個 sysfs 節點,用於可配置的引數和其他資訊。

驅動程式屬性

/sys/bus/platform/drivers/uvesafb
v86d

(預設值:/sbin/v86d)

v86d 可執行檔案的路徑。 如果守護程序的例項尚未執行,則 uvesafb 會啟動 v86d。

裝置屬性

/sys/bus/platform/drivers/uvesafb/uvesafb.0
nocrtc

如果設定為 1,則使用預設重新整理率 (60 Hz)。

oem_product_name, oem_product_rev, oem_string, oem_vendor

有關卡及其製造商的資訊。

vbe_modes

Video BIOS 支援的影片模式列表,以及它們的 VBE 模式編號(十六進位制)。

vbe_version

一個 BCD 值,指示已實現的 VBE 標準。

5. 雜項

如果您在 fb_var_screeninfo 中將 pixclock 設定為 0,Uvesafb 將使用 Video BIOS 中的預設重新整理率和時序設定影片模式。

Michal Januszewski <spock@gentoo.org>

上次更新:2017-10-10

uvesafb 選項的文件大致基於 什麼是 vesafb?