ドキュメントによると、vga=
カーネルパラメータの使用はGRUB2で非推奨になっています。私が持っているグラフィックスカードは7〜8年前のものであるため、一部の新しいカーネルが特定のアダプターでそれをサポートしていないように見えるという事実は問題ではありません。
ここでの問題は、デフォルトの80x25文字ではなく、80x50などの高解像度のテキストモードを使用したいことです。どうやらすべてのグラフィックス(VBE/VESA)モードは、このグラフィックスカード(ATI Rage XL)では問題外です-使用可能なモードのリストには0
から6
までしか表示されません。 6
は80x60
ですが、ひどいので、1
(80x50)を使用します。
デフォルトモードがサポートされていない場合(デフォルトでGRUB_TERMINAL=console
がコメントアウトされている場合)に利用可能なモードのリストを取得した後、80x50と80x60が機能することを確認し、選択するように求められました。
カーネルコマンドラインで設定することになっていない場合、モードを設定するにはどうすればよいですかandGRUB_GFXMODE
を使用するたびに(vbe
モジュールをプリロードする場合としない場合)そしてGRUB_GFXPAYLOAD_LINUX=keep
は失敗しますか?次のように失敗します。このマシンに搭載されているカードでは無効なグラフィックスモードであるため、画面に何も表示されません。
私のアイデアは、カーネルにnomodeset
を渡すことですが、それでもブートローダーはグラフィックモードを設定する必要があります。そして、それを行うためのvga=
カーネルパラメータ以外のオプションは表示されません。
注: GRUB2コンソールのvbetest
およびvideotest
コマンドは画面をブランクにし、ビデオ入力がないと主張した後、画面がスリープモードに切り替わります。 vbeinfo
およびvideoinfo
は、上記以外のいくつかの使用可能なモードを示していますが、これをどこに設定する必要があるかについての言及はありません。また、カーネルコマンドラインでvga=1
(nomodeset
なし)を渡すと、廃止予定であるという非常に短い警告が表示されますが、完全に読み取るには長すぎるため、出力が表示されません。 dmesg
にあります。
多分それは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
Vgaパラメーターは引き続きlinux16およびinitrd16コマンドでサポートされているため、「linux」を「linux16」または「initrd」を「initrd16」に変更すると、古い動作を得ることができます。他にどのような変更が発生するのかはわかりませんが、私には十分に機能しました。 :-)