フレームバッファデバイスなし:有効にする方法


23

Debian Squeezeを実行して、ヘッドレスホームサーバーでPCMCIAチューナーカードを動作させようとしています。さて、VLCを使用して、キャプチャする正しいコマンドラインを見つけ、エンドストリームのビデオをネットワークにトランスコードするのに非常に大きな問題があるため、最初にローカル出力で作業することにしました。

そこで問題が発生します。接続された画面にグラフィックを表示するためにアクセスするフレームバッファデバイス(/ dev / fb0)がないようです。確かに、起動時にLinuxペンギンのイメージがないことに気付きました(画面が接続される前に注意を払わなかったが、常にオフになっており、とにかくコンピューターは常にオンになっています)。

私はLinuxグラフィックスにあまり詳しくないので、理解したいと思います。

  • これは特定のハードウェアに関連していますか(以下を参照)?それともDebian Squeeze /カーネルバージョン/ ...に固有ですか?
  • 手動でインストール/ロードする必要があるドライバーはありますか?

次に、いくつかの一般的な情報:

  • コンピューターには専用のグラフィックカードはありませんが、マザーボード(Gigabyte G31M-ES2L)に埋め込まれた組み込みグラフィックチップセット(Intel G31 Express)
  • フル機能のXサーバーをインストールしたくありません。この特定のテスト用のフレームバッファーデバイスがあるだけです。

問題に関するアイデア/コメントはありますか?


1
/dev/fb0起動して実行したら、必ず私の回答を受け入れてください。あまり一般的ではないトピックに関する実際の経験を持つ人々をめったにやりません。それらはUNIX-SEに存在します。これは比較的一般的ではない主題なので、専門家はあまりいません。
JMベッカー

回答:


36

以前にLinux FBで働いていたあなたの質問に対処できます。

LinuxのFBの仕組み。

  1. まず、ハードウェアに対応して、カーネルでFrameBufferをサポートする必要があります。最新のディストリビューションのほとんどは、カーネルモジュールを介してサポートされています。ディストリビューションにブートロゴが事前設定されているかどうかは関係ありません。私はそれを使用せず、FBをサポートしています。

  2. ハードウェアフレームバッファがサポートされている限り、統合されたグラフィックカードが機能する専用のグラフィックカードを持っているかどうかは関係ありません。

  3. Xは必要ありません。これは、FrameBufferを持つ最も魅力的な側面です。よく知らない人もいるので、誤解を回避するために何らかの形のXを提唱しました。

  4. FBを直接操作する必要はありませんが、多くの人が誤って想定しています。FrameBufferを使用して開発するための非常に素晴らしいライブラリDirectFBは、基本的なアクセラレーションをサポートしていることです。フル機能のFBベースのプロジェクト(Webブラウザー、ゲーム、GUIなど)を開始する場合は、少なくともチェックアウトすることを常にお勧めします

ハードウェア固有

  1. Vesa Generic FrameBufferを使用すると、そのモジュールが呼び出されvesafbます。コマンドがあれば、それをロードできます modprobe vesafb。多くのディストリビューションでは、事前に無効に設定されています/etc/modprobe.d/。チェックインできます。またはその他のブラックリストファイルで、blacklist vesafbコメントアウトする必要がある場合があります。#blacklist-framebuffer.conf

  2. 最適なオプションは、ハードウェア固有のKMSドライバーです。Intelの主なものはIntel GMAであり、そのモジュールの名前がわかりません。ディストリビューションドキュメントからそれについて読む必要があります。これは最高のパフォーマンスのFBオプションです。個人的には、可能な場合は常にKMSを最初に使用します。

  3. レガシハードウェア固有のFBドライバーを使用してください。バグがある場合があるためお勧めしません。最後の手段が必要でない限り、私はこのオプションを避けます。

これですべての質問がカバーされ、その/dev/fb0デバイスを利用できるようにするための情報が提供されるはずです。より具体的なものには配布の詳細が必要です。ある程度の経験がある場合は、RTFMで十分です。(これを読んだ後)。

私の助けになれば幸いです。幸運にも私のトピックの1つについて質問してください!これはUNIX-SEでは軽視されているテーマです。誰もが(意図的に)Linux FrameBufferを使用しているわけではないためです。

注:UvesaFBまたはVesaFBですか?

パフォーマンスが向上したため、人々がuvesafboverを使用することを読んだかもしれませんvesafb。これは一般に真実でしたが、現代のハードウェアを備えた現代のディストリビューションではそうではありませんでした。お使いのグラフィックハードウェアが保護モードVESA(VESA> = 2.0)をサポートしており、やや最近のカーネルをお使いvesafbの方が良い選択である場合。


1
ご回答ありがとうございます!!! 深さと品質の点で私が期待していたものをはるかに超えています!! 特定の問題に関する解決策を提供するだけでなく、同じまたは関連する状況で他の人に役立つ内部作業に関する一般的な情報を提供するため、あなたのような投稿/回答を見つけることができて本当に感謝しています!
フェデリコ

1
私の問題に関しては、満足のいく結果が得られたらすぐに、あなたの意見に基づいて調査し、ここに報告します
Federico

3
だからmodprobe vesa、私はシステムにモジュールが存在しないため失敗しました(ここで質問する前に試したことを覚えています)(FATAL: Module vesafb not found.)->これが私のハードウェアまたはLinuxディストリビューション(Debian Squeezeに関連するかどうかを理解する必要があります)。良いニュースは、それがmodprobe uvesafb機能し、/dev/fb0デバイスを作成することです。ただし、回答を読んだので、適切な方法でセットアップし、KMSドライバーを見つけようとします
Federico

1
私はあなたのコメントに賛成票を投じました。最後のコメントに対処するために、ソリューション2について間違っています。Xなしで絶対にKMSを取得できます。正しいハードウェアモジュールの名前はと呼ばれinteldrmfb、簡単な調査を行っていることがわかりました。私は常にATIを使用しているため、Intel GPU関連のサポートは私の最強点ではありません。パッケージをインストールする必要があるかもしれませ、私が見つけられるかどうかを確認します。
JMベッカー

1
ちょっと待って、間違えた...インテルのネットブックをチェックしたところ、モジュールはですがi915、それはinteldrmfbとして知られるフレームバッファをロードします。パッケージをインストールするか、インストールlibdrm-intel1されているかどうかを確認する必要がある場合があります。
JMベッカー

10

私はついに私の問題の解決策を見つけました!!

まず第一に、貢献してくれたすべての人、特にTechZillaと彼が提供しなかった詳細な説明に感謝します。

したがって、基本的に行う必要があるのはmodeset=1i915カーネルモジュールのロード時にモード設定を有効にすることです()。これは通常の方法で実行できます。

  • GRUBのカーネルパラメーターを介して、
  • の設定ファイル経由 /etc/modprobe.d
  • またはコマンドラインで:

    # rmmod i915
    # modprobe i915 modeset=1
    

実際には、あなたは、パッケージインストールした場合は何もする必要はありませんxserver-xorg-video-intel作成し、/etc/modprobe.d/i915-kms.conf含有しましたoptions i915 modeset=1。ただし、誰かがXをインストールしたくない場合(私の場合のように)、KMSは自動的に有効になりません。これは、FrameBufferデバイスが作成されなかった理由を説明しています...


2
「どうやってKMSをsqueezeで有効にするか」は最初の質問ではなかったので、私の答えを受け入れるべきです。私はあなたの最初の質問に答え、あなたの意図した道を指し示したと思います。もう1つの理由は、「他の」人に回答を与えることでポイントを獲得することだけです。誰も近くに来ない場合は自己賞を得るのは良いことですが、この場合は意味がありません。回答を投稿したままにしておくか、問題の情報を統合してください。どちらの方法でも構いません。私が助けてくれて本当に嬉しいです!KMSソリューションが動作するようになったことは本当にうれしいです。プレーンVESAよりも高速であるはずです。
JMベッカー

1
私はあなたの受け入れられた答えを元に戻しました!ここではちょっと新しいので、私は何をすべきか正確には知りませんでした。質問自体に解答を入れるか、受け入れられた答えへのコメントに入れるか、新しい答えとして投稿します。新しい受け入れられた答えを作成することによって、人々は最初に質問を読み、それからより多くの賛成票があるので一番上にあるあなたの答えを読み、それから私の答えを...-
Federico

他の答えは徹底的ですが、これは受け入れられた答えでなければなりません。著者がどれほど雄弁に懇願するかに関係なく。
ムーグ


-2

これが派手なものがなく、標準のカーネルを備えた標準のdebianインストールである限り、「vga = 792」(24ビット1024×768)などのカーネルパラメータを持つフレームバッファデバイスを使用するVGAコンソールを雇うことができます。 )。カーネルは非推奨として報告しますが、動作します。

カーネルパラメーターについては、http://www.kernel.org/doc/Documentation/kernel-parameters.txtを参照してください。興味深いことに、「vga =」パラメーターは非推奨として表示されません。

変更後は必ずupdate-grub(2)と同類を再実行してください。

また、http://packages.debian.org/squeeze/svgalib-binをご覧ください。完璧ではありませんが、コンソール上で派手なグラフィックを作成できます。


3
いいえ、それは多くの状況でもう機能しません。これは私がいつも話している答えです。GRUB2を使用する場合、これは従来の16減速で起動する場合にのみ機能します。また、非推奨です。これは、少なくともあなたが認めているように、実用的には新しいセットアップを行わないでください。vga=ハードウェアモジュールを無効にしていて/etc/modprobe.d/、多くのディストリビューションがそのように事前設定されている場合、古いゴミは起動に失敗します。
JMベッカー

したがって、次の問題は、svgalib-binが「/ dev / fb0」デバイスではないライブラリです。svgalibを必要とするものはすべて、svgalibで開発する必要があります。FBを置き換えるために使用できますが、FBを「文字通り」置き換えることはありません。私は『そうな標準VGAにフォールバックされます、FBのロードに失敗「、私は意味「ブートに失敗する』と言ったとき、私は実際には、最後のコメントのエラーをした
JMベッカー

3
これは本当にあなたのせいでもない、私たちのコミュニティは恐ろしく古くなったドキュメントを残します。誰もがインターネット上で古い答えを繰り返し、獣では現代の理解を難しくしています。本当の答えは新しいものであり、長年の廃止されたソリューションに埋もれているため、多くの人々は単にあきらめます。
JMベッカー

1
squeezeを使用すると、「vga =」パラメーターが機能します。それが置き換えられたものを調査するのではなく、簡単な迅速な修正であるため、私はそれを単に提案しました。kernel.org/doc/Documentation/kernel-parameters.txtは、非推奨として「vga =」を表示しません。私が知っている唯一の理由は、カーネルによるかろうじて読めるブートメッセージのためです...混乱が続きます...ですから、kernel.orgのテキストによると、「vga =」は非推奨ではありません。私たちは何を信じますか?
aseq

1
ちなみに、svgalibを使用するという私の提案は、ユーザーがXを使用したくないためです。svgalibの原因は理解していますが、他のオプションはほとんどありません。
aseq
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.