カーネルモード設定とフレームバッファ


24

KMSでは、グラフィックドライバーがカーネルに移動されます。フレームバッファはすでにカーネルにあるので、これがフレームバッファの動作に影響するとは思わないでしょう。それでも、KMSはfbに取って代わり、fbを増強し、fbを必要とし、fbサポートを削除する必要があることを読みました。一体何?私が探している答えは、KMSとフレームバッファの関係の説明です。

私はttyでネイティブ解像度を取得するためにuvesafbを使用しています。ここでの私の目的は、KMSを使用したシステムでどのように機能するかを理解することです。KMSでのスクロールは高速ですか?fbtermやfbidaなどのユーティリティは同じように機能しますか?安定性は向上していますか?

回答:


6

まず、基本的な2種類のクラシックフレームバッファドライバーがあります。

  • 汎用ハードウェアおよびファームウェアドライバー(vga、vesafb / uvesafb、efifbなど)
  • ハードウェア固有のドライバー(たとえば、rivafb、atyfb)

従来のフレームバッファドライバはすべて基本的なモード設定サポートを備えていましたが、ハードウェアアクセラレーションのサポートはほとんどありませんでした。

従来のXデザインでは、これは実際には問題ではありませんでした。2Dアクセラレーションを取得するために、Xサーバーはルートとして実行され、ハードウェアに直接アクセスできました。基本的に、フレームバッファードライバーを完全にバイパスしました。3D(および新しいカードの2Dサポート)では、アクセスと管理されたビデオメモリを仲介するカーネルDRMドライバーも使用します。

この設定では、モード設定が行われた場所が2つありました。カーネルフレームバッファードライバーとユーザー空間Xサーバーの両方です。このコードの重複(および、VTスイッチなどでのドライバー間のたまの戦い)は理想的ではありませんでした。

さらに、同じハードウェアのカーネルには、フレームバッファードライバーとDRMドライバーの2つの別個のドライバーがありました。場合によっては(たとえば、km前のintelfb)、どちらか一方を読み込むことができますが、両方を同時に読み込むことはできません。

KMSはこれらの問題の解決策でした。それ:

  • カーネルハードウェア固有のフレームバッファードライバーとdrmドライバーを単一のドライバーにマージします。
  • Xサーバーがモード設定を制御するために使用するインターフェースを提供するため、Xサーバーはハードウェアに直接アクセスする必要がありません。(実際、KMSでは、Xサーバーはルート権限を必要としません。)

興味深いメモ:現在のKMSへの移行は、実際には2004年頃に開始されました。コンソールの再構築に関するJon Smirlのメールを参照してください。

より具体的な質問に答えるには:

  • 一般に、速度は加速されていない一般的なドライバー(VGA、vesafbなど)の1つより悪くなりませんが、KMSフレームバッファーテキストコンソールは速度よりも利便性と緊急使用のために設計されており、一部のドライバーではコンソールが完全に加速されません。長い行の折り返しは、たとえば、Intelカードではかなり悪いです。
  • 古いフレームバッファインターフェイスを使用するように設計されたアプリケーションは、引き続きKMSフレームバッファで動作します。

3

KMSは、ユーザー空間ではなくカーネル空間でディスプレイの解像度と深さを設定します。はい、それはそれを置き換えます。フレームバッファのネイティブ解像度を有効にします。

カーネルモード設定


4
KMSに関するWiki記事は簡単に見つかりますが、説明はひどいものです。KMSがfbに取って代わり、同時に有効にする方法を教えてください。fbは既にネイティブ解像度をサポートしていますが、何が違うのですか?fbユーティリティはKMSで動作しますか?
user5184

特にモニターがワイドスクリーンの場合、フレームバッファがネイティブ解像度をサポートするとは思わない。たとえば、私のLCDモニターのネイティブ解像度は1680x1050ですが、フレームバッファーは1280x1024解像度しか検出しません
LiuYan
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.