Linux
沒有幀緩衝設備:如何啟用它?
我正在嘗試使 PCMCIA 調諧器卡在執行 Debian Squeeze 的無頭家庭伺服器中工作。現在,由於我很難找到正確的命令行來擷取,使用 VLC 將影片轉碼到網路,我決定一步一步地進行,首先處理本地輸出。
這就是問題所在:**似乎沒有幀緩衝設備(/dev/fb0)可以訪問以在附加螢幕上顯示圖形!**事實上,我注意到我在啟動時沒有 Linux 企鵝圖像(之前沒有註意,因為連接了螢幕,但總是關閉,無論如何電腦總是打開)。
由於我對Linux圖形不是很熟悉,我想了解:
- 這是否與我的特定硬體有關(見下文)?還是它特定於 Debian Squeeze/核心版本/…?
- 我需要手動安裝/載入一些驅動程序嗎?
現在一些一般資訊:
- 該電腦沒有專用顯卡,而是嵌入式圖形晶片組(Intel G31 Express),嵌入在主機板上(技嘉G31M-ES2L)
- 我不想安裝一個功能齊全的 X 伺服器,只需要一個幀緩衝設備來進行這個特定的測試
對這個問題有任何想法/意見嗎?
我可以解決您的問題,之前曾使用過 Linux FB。
Linux 如何做它的 FB。
- 首先,您需要在核心中支持 FrameBuffer,與您的硬體相對應。大多數現代發行版都通過核心模組提供支持。如果您的發行版預配置了啟動徽標並不重要,我不使用它並且支持 FB。
- 如果你有一個獨立的顯卡並不重要,只要支持硬體幀緩衝區,集成就可以工作。
- 您不需要 X,這是擁有 FrameBuffer 最誘人的方面。有些人不太清楚,所以他們提倡某種形式的 X 來解決他們的誤解。
- 您不需要直接與 FB 合作,這是許多人錯誤地假設的。使用 FrameBuffer 開發的一個非常棒的庫是
DirectFB
它甚至具有一些基本的加速支持。如果您正在啟動一個基於 FB 的全功能項目(Web 瀏覽器、遊戲、GUI …),我總是建議您至少檢查一下特定於您的硬體
- 使用 Vesa Generic FrameBuffer,它的模組被稱為
vesafb
. 如果有可用的命令,您可以載入它modprobe vesafb
。許多發行版都將其預先配置為禁用,您可以簽入/etc/modprobe.d/
. 可能需要在或其他黑名單文件blacklist vesafb
中用 , 註釋掉。#``blacklist-framebuffer.conf
- 最佳選擇是特定於硬體的 KMS 驅動程序。英特爾的主要產品是英特爾 GMA,不確定它的模組名稱。您需要從您的發行版文件中了解它。這是性能最好的 FB 選項,如果可能,我個人總是會先使用 KMS。
- 使用 Legacy Hardware 特定的 FB 驅動程序,不推薦使用,因為它們有時會出錯。我會避免這個選項,除非最後的手段是必要的。
我相信這涵蓋了您的所有問題,並且應該提供資訊以使該
/dev/fb0
設備可用。任何更具體的內容都需要分發細節,如果您有一定的經驗,RTFM 應該是您所需要的。(閱讀後)。我希望我有幫助,你很幸運你問到我的一個話題!這是 UNIX-SE 上一個被忽視的主題,因為不是每個人(有意地)都使用 Linux FrameBuffer。
注意:UvesaFB 還是 VesaFB?
您可能已經閱讀過人們使用
uvesafb
overvesafb
,因為它具有更好的性能。這通常是正確的,但不是在具有現代硬體的現代發行版中。如果您的圖形硬體支持保護模式 VESA (VESA >= 2.0 ),並且您有一個較新的核心vesafb
,現在是更好的選擇。