web-dev-qa-db-ja.com

フレームバッファまたはX画面の相対位置を移動するにはどうすればよいですか?

ずっと前 はるか遠くの銀河でこの素晴らしいソリューション を使用してブート画面を修正しました。それ以来、仮想コンソールのフレームバッファーをX画面の位置に対して少し左右に(またはその逆に)移動する方法を探していました。これは、フレームバッファーが間違った位置に表示され、シンボルの一部が表示されないためです。 。切り抜きツールとfbgrabコマンドを使用して、この問題のルックアンドフィールを再現しました。

Console Screenshot

GRUBメニューも画面の左側を非表示にしますが、VirtualBoxなしでスクリーンショットを作成する方法がわかりません(このスクリーンショットが役立つとは思えません)。ただし、メインのX画面は正しい場所に表示され(私にはそう思われます)、仮想コンソールが表示されている場合でも、モニター(Acer AL1916)は常にこの位置に自動調整されます。

AskUbuntuを含む多くのソースを調べましたが、解決策は1つしか見つかりませんでした。VGAケーブルからDVIに切り替えることです。これは、グラフィックカード(NVIDIA 6150SE)にVGAポートしかないため受け入れられません。

また、fbsetコマンドは画面パラメーターを調整できますが、それがどのように機能するかを理解するための支援が必要であることがわかりました。 Sudo fbsetコマンドの出力は次のとおりです。

mode "1280x1024-77"
    # D: 131.096 MHz, H: 80.328 kHz, V: 76.649 Hz
    geometry 1280 1024 1280 1024 32
    timings 7628 160 32 16 4 160 4
    rgba 8/16,8/8,8/0,8/24
endmode

UPD:影響を受けていないバグの報告中に、次のような1行が見つかりました。

.proc.driver.nvidia.warnings.fbdev:
 Your system is not currently configured to drive a VGA console
 on the primary VGA device. The NVIDIA Linux graphics driver
 requires the use of a text-mode VGA console. Use of other console
 drivers including, but not limited to, vesafb, may result in
 corruption and stability problems, and is not supported.

それで、誰かが仮想コンソールまたはXスクリーンの相対的な位置を調整する方法を知っていますか?

2
Danatela

あなたの問題の核心はVGAの使用に非常に関連しているのではないかと思います。問題は、VGAシグナリングがアナログであるということです。基本的に、VGAポートのビデオカードによって放出されるアナログ信号は、電磁コイルを駆動し、古い学校のチューブベースのモニターで電子銃の出力を調整するためのものです。これらの古いモニターにはピクセルの個別のグリッドがなく、ディスプレイがエッジからエッジへとフラッシュすることはめったにありませんでした。

アナログデバイスではないLCDの場合、VGAを使用する場合、LCDディスプレイの回路は基本的に(ここでは詳細を劇的に簡略化しています)古いCRTモニターがどのように機能して、着信信号を各LCDピクセルのデータに変換するかをエミュレートします。これは完全なプロセスではなく、LCD回路がVGA信号スキャンラインの始まり。多くの場合、LCDアナログ入力のディスプレイには、ディスプレイ内で「再構成/再同期」アルゴリズムをトリガーする「自動調整」ボタンがあります。お勧めします。詳細については、LCDのマニュアルを確認してください。

この厄介な状況が、ピクセルデータがビデオカードからディスプレイにデジタルで送信されるDVIに切り替えるように勧められる理由です。

あなたのタイプの状況では、ビデオカードで使用される解像度とリフレッシュレートを変更することで問題を回避できることがよくあります。たとえば、Linuxテキストコンソールで、次のコマンドを試してください。

Sudo fbset -a 1280x1024-60

それが機能する場合は、LCDがビデオカードの出力との同期に問題があることを確認します。

NVIDIA独自のドライバーを使用する場合は、NVIDIA Linuxドライバーの注意に注意し、コンソールフレームバッファードライバーを無効にすることをお勧めします。フレームバッファのサポートが重要な場合は、ビデオカードの使用年数を考えると非常にうまく機能するnouveauドライバの使用を検討することをお勧めします。

幸運を。

2
etherfish