S3 恢復後的影片問題¶
2003-2006, Pavel Machek
在 S3 恢復期間,硬體需要重新初始化。 對於大多數裝置來說,這很容易,並且核心驅動程式知道如何去做。 不幸的是,有一個例外:顯示卡。 這些通常由 BIOS 初始化,並且核心沒有足夠的資訊來啟動顯示卡。(核心通常甚至不包含顯示卡驅動程式 -- vesafb 和 vgacon 被廣泛使用)。
對於 swsusp 這不是問題,因為在 swsusp 恢復期間,BIOS 正常執行,因此顯示卡通常會被初始化。 對於 S1 待機,這不應該是個問題,因為硬體應該在待機期間保持其狀態。
我們要麼需要在早期恢復期間執行影片 BIOS,要麼稍後使用 vbetool 解釋它,或者在特定系統上可能不需要任何操作,因為影片狀態被保留。 不幸的是,不同的方法在不同的系統上起作用,並且沒有已知的方法適用於所有系統。
已經開發了一個名為 s2ram 的使用者空間應用程式; 它包含一個長長的系統白名單,並自動為給定的系統選擇有效的方法。 它可以從 www.sf.net/projects/suspend 的 CVS 下載。 如果您遇到不在白名單中的系統,請嘗試找到有效的解決方案,並提交白名單條目,以便不需要重複工作。
目前,VBE_SAVE 方法(下面的 6)在大多數系統上有效。 不幸的是,vbetool 僅在使用者空間恢復後執行,因此它使得早期恢復問題的除錯變得困難/不可能。 不依賴使用者空間的方法是更可取的。
詳情¶
以下是 S3 恢復後影片可以正常工作的幾種型別的系統
影片狀態在 S3 期間被保留的系統。
可以在 S3 恢復期間呼叫影片 BIOS 的系統。 不幸的是,此時呼叫影片 BIOS 是不正確的,但它在某些機器上恰好有效。 使用 acpi_sleep=s3_bios。
將顯示卡初始化為 vga 文字模式,並且 BIOS 工作良好到足以設定影片模式的系統。 在這些系統上使用 acpi_sleep=s3_mode。
在某些系統上,s3_bios 將影片啟動到文字模式,並且需要 acpi_sleep=s3_bios,s3_mode。
radeon 系統,X 可以軟啟動您的顯示卡。 您需要足夠新的 X 和純文字控制檯(沒有 vesafb 或 radeonfb)。 有關更多資訊,請參見 http://www.doesi.gmxhome.de/linux/tm800s3/s3.html。 或者,您應該使用 vbetool (6) 代替。
其他 radeon 系統,vbetool 足以使系統恢復執行。 它需要文字控制檯才能工作。 執行 vbetool vbestate save > /tmp/delme; echo 3 > /proc/acpi/sleep; vbetool post; vbetool vbestate restore < /tmp/delme; setfont <whatever>,您的影片應該可以工作。
在某些系統上,可以啟動大部分核心,然後 POSTing bios 才能工作。 Ole Rohne 在 http://dev.gentoo.org/~marineam/patch-radeonfb-2.6.11-rc2-mm2 有一個補丁來做到這一點。
在某些系統上,您可以使用 video_post 實用程式,或者執行 echo 3 > /sys/power/state && /usr/sbin/video_post - 這將初始化控制檯模式下的顯示。 如果您在 X 中,您可以使用 CTRL+ALT+F1 - CTRL+ALT+F7 切換到虛擬終端並返回到 X,以使顯示再次在圖形模式下工作。
現在,如果您傳遞 acpi_sleep=something,並且它不適用於您的 bios,您將在恢復期間遇到嚴重崩潰。 請小心。 此外,使用普通的舊 VGA 控制檯進行實驗是最安全的。 vesafb 和 radeonfb(等等)驅動程式在恢復期間容易導致機器崩潰。
您可能有一個上述方法都不起作用的系統。 此時,您可以發明另一個有效的醜陋 hack,或者為您的顯示卡編寫合適的驅動程式(祝您好運獲得文件 :-()。 也許從 X 掛起(合適的 X,瞭解您的硬體,而不是 XF68_FBcon)可能更有可能工作。
已知可工作的筆記型電腦列表
型號 |
hack(或“如何做”) |
|---|---|
Acer Aspire 1406LC |
ole 的後期 BIOS 初始化 (7),關閉 DRI |
Acer TM 230 |
s3_bios (2) |
Acer TM 242FX |
vbetool (6) |
Acer TM C110 |
video_post (8) |
Acer TM C300 |
vga=normal(僅在控制檯上掛起,不在 X 中),vbetool (6) 或 video_post (8) |
Acer TM 4052LCi |
s3_bios (2) |
Acer TM 636Lci |
s3_bios,s3_mode (4) |
Acer TM 650 (Radeon M7) |
vga=normal 加上 boot-radeon (5) 使文字控制檯恢復 |
Acer TM 660 |
??? [1] |
Acer TM 800 |
vga=normal,X 補丁,請參閱網頁 (5) 或 vbetool (6) |
Acer TM 803 |
vga=normal,X 補丁,請參閱網頁 (5) 或 vbetool (6) |
Acer TM 803LCi |
vga=normal,vbetool (6) |
Arima W730a |
需要 vbetool (6) |
Asus L2400D |
s3_mode (3) [2](S1 也可以正常工作) |
Asus L3350M (SiS 740) |
|
Asus L3800C (Radeon M7) |
s3_bios (2)(S1 也可以正常工作) |
Asus M6887Ne |
vga=normal,s3_bios (2),在 x.org 中使用 radeon 驅動程式代替 fglrx |
Athlon64 桌面原型 |
s3_bios (2) |
Compal CL-50 |
??? [1] |
Compaq Armada E500 - P3-700 |
none (1)(S1 也可以正常工作) |
Compaq Evo N620c |
vga=normal,s3_bios (2) |
Dell 600m, ATI R250 Lf |
none (1),但需要 xorg-x11-6.8.1.902-1 |
Dell D600, ATI RV250 |
vga=normal 和 X,或嘗試 vbestate (6) |
Dell D610 |
vga=normal 和 X(可能也需要 vbestate (6),但未經過測試) |
Dell Inspiron 4000 |
??? [1] |
Dell Inspiron 500m |
??? [1] |
Dell Inspiron 510m |
??? |
Dell Inspiron 5150 |
需要 vbetool (6) |
Dell Inspiron 600m |
??? [1] |
Dell Inspiron 8200 |
??? [1] |
Dell Inspiron 8500 |
??? [1] |
Dell Inspiron 8600 |
??? [1] |
eMachines athlon64 機器 |
需要 vbetool (6)(有人可以告訴我型號嗎) |
HP NC6000 |
s3_bios,可能不使用 radeonfb (2); 或 vbetool (6) |
HP NX7000 |
??? [1] |
HP Pavilion ZD7000 |
需要 vbetool post,X 需要開源 nv 驅動程式 |
HP Omnibook XE3 athlon 版本 |
none (1) |
HP Omnibook XE3GC |
none (1),影片是 S3 Savage/IX-MV |
HP Omnibook XE3L-GF |
vbetool (6) |
HP Omnibook 5150 |
none (1),(S1 也可以正常工作) |
IBM TP T20, 型號 2647-44G |
none (1),影片是 S3 Inc. 86C270-294 Savage/IX-MV,vesafb 變得“有趣”,但 X 可以工作。 |
IBM TP A31 / Type 2652-M5G |
s3_mode (3) [使用 BIOS 1.04 2002-08-23 工作正常,但使用 BIOS 1.11 2004-11-05 完全不工作 :-(] |
IBM TP R32 / Type 2658-MMG |
none (1) |
IBM TP R40 2722B3G |
??? [1] |
IBM TP R50p / Type 1832-22U |
s3_bios (2) |
IBM TP R51 |
none (1) |
IBM TP T30 236681A |
??? [1] |
IBM TP T40 / Type 2373-MU4 |
none (1) |
IBM TP T40p |
none (1) |
IBM TP R40p |
s3_bios (2) |
IBM TP T41p |
s3_bios (2),恢復後切換到 X |
IBM TP T42 |
s3_bios (2) |
IBM ThinkPad T42p (2373-GTG) |
s3_bios (2) |
IBM TP X20 |
??? [1] |
IBM TP X30 |
s3_bios, s3_mode (4) |
IBM TP X31 / Type 2672-XXH |
none (1),使用 radeontool (http://fdd.com/software/radeon/) 關閉背光。 |
IBM TP X32 |
none (1),但長時間掛起後背光亮起且影片損壞。 s3_bios, s3_mode (4) 也有效。 也許這會得到更好的結果? |
IBM Thinkpad X40 Type 2371-7JG |
s3_bios,s3_mode (4) |
IBM TP 600e |
none(1),但需要切換到控制檯並返回到 X |
Medion MD4220 |
??? [1] |
Samsung P35 |
需要 vbetool (6) |
Sharp PC-AR10 (ATI rage) |
none (1),背光不關閉 |
Sony Vaio PCG-C1VRX/K |
s3_bios (2) |
Sony Vaio PCG-F403 |
??? [1] |
Sony Vaio PCG-GRT995MP |
none (1),使用 ‘nv’ X 驅動程式 |
Sony Vaio PCG-GR7/K |
none (1),但需要 radeonfb,使用 radeontool (http://fdd.com/software/radeon/) 關閉背光。 |
Sony Vaio PCG-N505SN |
??? [1] |
Sony Vaio vgn-s260 |
X 或 boot-radeon 可以初始化它 (5) |
Sony Vaio vgn-S580BH |
vga=normal,但從 X 掛起。 除非您返回 X,否則控制檯將為空白。 |
Sony Vaio vgn-FS115B |
s3_bios (2),s3_mode (4) |
Toshiba Libretto L5 |
none (1) |
Toshiba Libretto 100CT/110CT |
vbetool (6) |
Toshiba Portege 3020CT |
s3_mode (3) |
Toshiba Satellite 4030CDT |
s3_mode (3)(S1 也可以正常工作) |
Toshiba Satellite 4080XCDT |
s3_mode (3)(S1 也可以正常工作) |
Toshiba Satellite 4090XCDT |
??? [1] |
Toshiba Satellite P10-554 |
s3_bios,s3_mode (4) [3] |
Toshiba M30 |
|
Uniwill 244IIO |
??? [1] |
已知可工作的桌面系統¶
主機板 |
顯示卡 |
hack(或“如何做”) |
|---|---|---|
Asus A7V8X |
nVidia RIVA TNT2 model 64 |
s3_bios,s3_mode (4) |