コンソールサイズの変更

コンソールサイズの変更

ソースからコンパイルされたISOイメージを使用してVMware内でLinuxカーネルを実行しようとしています。
現在initramfsを起動しようとしていますが、何らかの理由で競合が発生します。私の問題はTTYのサイズのためですが、その理由がわかりません。
.configファイルでCONFIG_DUMMY_CONSOLE_ROWSを25から60に変更しましたが、何も変更されませんでした。
また何ができますか?

ベストアンサー1

VMwareで初期起動の問題を解決するときは、シリアルポートをコンソールとして使用するようにカーネルを設定すると便利です。これにはカーネルブートオプションが必要です。あなたの場合、これを指定する唯一の方法はカーネルCONFIG_CMDLINE設定オプションを介してまたは 。FDARGS="..."FDINITRD=make isoimage

あなたの場合、console=ttyS0,115200 console=tty0仮想COM1シリアルポートのすべての出力をファイルに保存するオプションを追加し、VMwareを設定する必要があるかもしれません。これにより、Linuxカーネルブートメッセージの完全なリストをファイルに入れる必要があります。

(このconsole=tty0セクションでは、コンソール出力もVMwareコンソールウィンドウに送信されます。これを無効にすると、コンソール出力はシリアルポートに送信されます。ただ、VGA仮想ディスプレイをまったく使用しません。 )

これらのシリアルポートを正常に使用するには、カーネル設定オプションCONFIG_SERIAL_8250=yCONFIG_SERIAL_8250_CONSOLE=y


私の考えは、CONFIG_DUMMY_CONSOLE_ROWS仮想CONFIG_DUMMY_CONSOLE_COLUMNS「仮想」コンソールデバイスにのみ影響し、実際のコンソールデバイスドライバが引き継がれるまでのみ機能します。実際のコンソールドライバは、コンソールで使用される表示モードに応じて行/列を設定します。

これ最初にコメントするdrivers/video/console/dummycon.cこれを確認するようです:

// SPDX-License-Identifier: GPL-2.0-only
/*
 *  linux/drivers/video/dummycon.c -- A dummy console driver
 *
 *  To be used if there's no other console driver (e.g. for plain VGA text)
 *  available, usually until fbcon takes console over.
 */

さらに、drivers/video/console/vgacon.c(つまり、実際のVGAコンソールテキストモードドライバ)はCONFIG_DUMMY_CONSOLE_ROWSまったく使用されていません。

vgacon.c上記のように設定されたクラシックVGAテキストコンソールを使用している場合は、Artem S Tashkinovの説明で提案されているように、カーネルブートオプションCONFIG_VGA_CONSOLE=yvga=ask結果出力を見て適切な(S)VGAテキストモード番号を選択した場合)のvga=<mode number>質問が適切です。

最新のLinuxディストリビューションはCONFIG_FRAMEBUFFER_CONSOLE=y通常、initramfsから適切なフレームバッファデバイスドライバをロードします。これは、従来のVGAよりも高い解像度モードを持つためです。ただし、初期起動の問題を解決するためですので、モニター(VMware表示ウィンドウ)に出力できるようにカーネルに入れる必要があります。従来のBIOSスタイルを使用して仮想マシンを起動する場合(おそらくmake isoimageそれを行う方法)、問題のドライバはですCONFIG_FB_VESA=y。 UEFIスタイルを使用して起動するのはCONFIG_FB_EFI=y良い考えです。

CONFIG_FB_VESA従来の理由から、起動vga=オプションは初期コンソールディスプレイの解像度を設定するためにも使用されますが、これらのモードはvga=ask;バラよりDocumentation/fb/vesafb.rst はここにあります。または、選択できるモードのリストと詳細については、カーネルソースツリーを参照してください。

UEFI(またはデフォルトで別のフレームバッファコンソールドライバCONFIG_FB_VESA)を使用している場合は、ブートパラメータを使用して目的の表示モードを指定する必要がありますvideo=Documentation/fb/modedb.rstカーネルソースツリーから詳細を確認してください。

簡単に言えば、ビデオモード選択パラメータCONFIG_FB_EFI(実際にはVESA以外のフレームバッファコンソールに似ています)は次のとおりです。

video=efifb:1280x1024@60

これにより、ビデオモードに適したテキスト解像度が自動的に選択されます。

おすすめ記事