
假設有足夠的 RAM 可用的環境中的 Linux Live CD,什麼配置可以最大限度地提高 X 視窗系統的兼容性?
我有一張基於 SliTaz 4 的 Linux Live CD,我需要將其作為首要任務,使其始終啟動到 X11 環境。因此,我正在尋找一種與過去 10 年來發布的幾乎所有顯示卡或嵌入式圖形晶片組相容的 Xorg 配置。我不在乎它是否會犧牲性能、禁用硬體加速、僅限於某個解析度 - 我想要的只是保證它可以在(幾乎)任何地方的任何 PC 上加載。
我應該有什麼 Xorg 配置,我需要編譯/安裝哪些模組等等才能實現這一目標?最好不必重新編譯具有某些擴充或靜態連結模組的核心。
答案1
經過數週的研究、開發和現場測試,結論是 Xorg 根本沒有 100% 相容的模式、驅動程式或設定。 Xorg 的 Vesa 驅動程式還可以,但距離保證合適還很遠(在沒有任何配置的情況下,整體成功率約為 70%)。
Xorg 有一個基於幀緩衝區的驅動程式 Xfbdev,它幾乎總是可以工作(約 95-99% 的時間),但效能很差,而且基本上開發不足、文件記錄不足、研究不足且通常未使用。它必須使用在啟動時設定的幀緩衝區,這意味著解析度是固定的,一旦啟動到 Linux 就無法更改。鑑於沒有相容的方法來停用輸出縮放,這意味著至少有一定比例的使用者會被拉伸到不正確的寬高比,並且幾乎永遠不會匹配正確的本機顯示解析度。
Xvesa,雖然不再開發或維護(羞恥,羞恥!)是最好的解決方案。它 100% 保證顯示您的 UI,因為它會從 BIOS 獲取任何設定或駭客攻擊,因此如果您可以看到 BIOS 初始螢幕,您就可以看到 Xvesa 顯示器。它具有(損壞的、不可靠的)解析度自動檢測功能,但真正的亮點是在啟動 Linux 後(以及啟動 Xvesa 後)可以更改解析度。有不同的技巧可以檢測原始分辨率,從而提高原始分辨率。我發現解析 的輸出--display-modes
實際上是一個相當好的解決方案,也許在 95% 的情況下,儘管我不明白為什麼自動檢測在我運行的 100% 測試案例中都失敗了,因為輸出--display-modes
實際上是正確的。
歸根結底,最接近自動配置顯示設定 X 環境的 Linux 是 Xvesa,而 X11 及其任何驅動程式都無法接近。顯然,X11 提供了許多優於Xvesa 的功能和優勢,但是對於許多人(尤其是製作Live CD 的公司)來說,如果在默認啟動環境中將用戶一半時間扔到控制台上,這些功能就毫無用處。