web-dev-qa-db-ja.com

GRUB2およびカーネルvga =パラメーター

ドキュメントによると、vga=カーネルパラメータの使用はGRUB2で非推奨になっています。私が持っているグラフィックスカードは7〜8年前のものであるため、一部の新しいカーネルが特定のアダプターでそれをサポートしていないように見えるという事実は問題ではありません。

ここでの問題は、デフォルトの80x25文字ではなく、80x50などの高解像度のテキストモードを使用したいことです。どうやらすべてのグラフィックス(VBE/VESA)モードは、このグラフィックスカード(ATI Rage XL)では問題外です-使用可能なモードのリストには0から6までしか表示されません。 680x60ですが、ひどいので、1(80x50)を使用します。

デフォルトモードがサポートされていない場合(デフォルトでGRUB_TERMINAL=consoleがコメントアウトされている場合)に利用可能なモードのリストを取得した後、80x50と80x60が機能することを確認し、選択するように求められました。

カーネルコマンドラインで設定することになっていない場合、モードを設定するにはどうすればよいですかandGRUB_GFXMODEを使用するたびに(vbeモジュールをプリロードする場合としない場合)そしてGRUB_GFXPAYLOAD_LINUX=keepは失敗しますか?次のように失敗します。このマシンに搭載されているカードでは無効なグラフィックスモードであるため、画面に何も表示されません。

私のアイデアは、カーネルにnomodesetを渡すことですが、それでもブートローダーはグラフィックモードを設定する必要があります。そして、それを行うためのvga=カーネルパラメータ以外のオプションは表示されません。

注: GRUB2コンソールのvbetestおよびvideotestコマンドは画面をブランクにし、ビデオ入力がないと主張した後、画面がスリープモードに切り替わります。 vbeinfoおよびvideoinfoは、上記以外のいくつかの使用可能なモードを示していますが、これをどこに設定する必要があるかについての言及はありません。また、カーネルコマンドラインでvga=1nomodesetなし)を渡すと、廃止予定であるという非常に短い警告が表示されますが、完全に読み取るには長すぎるため、出力が表示されません。 dmesgにあります。

16
0xC0000022L

多分それはgrub2で非推奨ですが、それでも動作するはずであり、動作し続ける必要があります。これは、grub2とdebian wheezy、およびrhel7.3(01-2017で確認済み)を使用して動作します。また、公式のドキュメントによると、それは廃止されていません:

https://www.kernel.org/doc/Documentation/x86/boot.txt

ブートローダーによって提供されるコマンドラインがユーザーによって入力された場合、ユーザーは次のコマンドラインオプションが機能することを期待するかもしれません。それらのすべてが実際にカーネルにとって意味があるわけではありませんが、通常はカーネルコマンドラインから削除しないでください。

ここでvga =は、整数(C表記では、10進数、8進数、または16進数)または「通常」(0xFFFFを意味する)、「ext」(0xFFFEを意味する)または「ask」(0xFFFDを意味する)のいずれかの文字列です。この値は、コマンドラインが解析される前にカーネルによって使用されるため、vid_modeフィールドに入力する必要があります。

そして https://www.kernel.org/doc/Documentation/svga.txt はあなたが知る必要があるすべてを教えてくれます。以下は、私がよく使用する解像度の例です。

vga=0x31b --> 1280x1024x32
vga=0x34d --> 1600x900x32
vga=0x31e --> 1600x1200x32

サポートされているモードのリストを取得するには、以下を使用します。

vga=ask

私が見つけた1024×768x24画面の場合、私が使用するほとんどすべてのシステムとモニターで動作します(今回は10進数と16進数):

vga=792
vga=0x318
10
aseq

Vgaパラメーターは引き続きlinux16およびinitrd16コマンドでサポートされているため、「linux」を「linux16」または「initrd」を「initrd16」に変更すると、古い動作を得ることができます。他にどのような変更が発生するのかはわかりませんが、私には十分に機能しました。 :-)

2
Adam M.