LinuxカーネルをコンパイルするときにGUIを無効にする方法は?

LinuxカーネルをコンパイルするときにGUIを無効にする方法は?

だから私はDebian 11で6.0.3カーネルをコンパイルしています。私の使命は、起動してインターネットに接続できる最小のカーネルを取得することです。

私はカーネルを合計89回コンパイルし、私のカーネルには599個の静的モジュールと0個のロード可能モジュールがありました。

私はそのコマンドを使用していますが、make nconfigGUIを無効にする部分を見つけましたが、見つかりませんでした。私のOSはまだGUIを使用して起動しており、この方法で多くのモジュールを削除してカーネルを小さくすることができると確信しているので、GUIを無効にしたいと思います。

メニューのどの部分にこのオプションがあるかを知っている人はいますか?

編集する:

ミッションを完了し、最終的に533個の静的モジュール+ 0個の動的モジュールを持つようになりました。
文字通りモジュールを削除できなくなり、GUIはまだ機能しており、メニューには無効にするセクションはありません。

頑張ってくれてありがとう!

答え1

最小限のカーネルを構築するには、make tinyconfig代わりに使用する必要がありますmake nconfig

グラフィカルインターフェイスを無効にするには、次を使用します。

sudo systemctl set-default multi-user.target

再び覆う:

sudo systemctl set-default graphical.target

しかし、コアが小さくなるわけではありません。

答え2

カーネルは要件に合った方法で GUI を管理しないため、カーネル構成で「GUI を無効にする」ことはできません。

カーネルは、デバイスドライバ、最低レベルのネットワークインタラクション、メモリ、ファイルシステム管理を処理します。

「GUI」と呼ばれるものは(ほとんどのシステムでは)XorgまたはWaylandによって処理され、その上にレイヤーとして使用するウィンドウまたはデスクトップマネージャによって処理されます。

GAD3Rが公開したように実行すると、GUIは無効になりますが、カーネルが小さくなったり再度有効にしてもカーネルは大きくなりません。

もしあなたなら本物カーネルからできるだけ多くを絞り込むには、initramfsを除くすべてのファイルシステムサポートとすべてのブロックデバイスを無効にしてからinitramfsを変更して、dhcpクライアントを含めて実行できます。技術的に言えば起動し、インターネットに接続します。それはただ有用な仕事をしません。

答え3

システムはUEFIスタイルで起動しますか、それともクラシックBIOSスタイルで起動しますか?

GUIを無効にする場合(たとえば、sudo systemctl set-default multi-user.target永続性のためにsudo systemctl isolate multi-user.targetすぐに適用する)make nconfig- >でオプションを最小限に抑えることができます。Device driversGraphics support

Device driversオプション -> Firmware drivers-> Mark VGA/VBE/EFI FB as generic system framebuffer()が設定されている場合は、デフォルトSYSFB_SIMPLEFBSimple framebuffer driverDRM_SIMPLEDRM)のみを選択してくださいGraphics support

設定しない場合は、UEFIに-> -> -> ->()が選択されていることをSYSFB_SIMPLEFB確認する必要があります。Device driversGraphics supportFrame buffer DevicesSupport for frame buffer devicesEFI-based Framebuffer SupportFB_EFI

クラシックBIOSが設定されていない場合は、SYSFB_SIMPLEFB同じパスでVESA VGA graphics support()を使用するFB_VESAか、すべてのフレームバッファデバイスを無効にしてDevice Drivers-> Graphics support-> Console display driver support-> VGA text console()が設定されていることを確認してください。VGA_CONSOLE

(同じパスで)VGA_CONSOLE無効にすることもできますが、これを使用するクラシックBIOSスタイルの起動でのみ機能するか、実際に利用可能なコンソールが必要です。Framebuffer console supportFRAMEBUFFER_CONSOLEVGA_CONSOLESYSFB_SIMPLEFBFB_EFIFB_VESAFRAMEBUFFER_CONSOLE

を使用している場合は、エラーを防ぐためにブートローダ機能をVGA_CONSOLE無効にするようにブートローダ設定を調整する必要がありますplymouth。フレームバッファドライバがないと、システム起動時にきれいな画像を表示できず、テキストのみを表示できます。

(私が正しく理解した場合、BIOSの「デフォルト表示モード」は拡張ASCIIおよび文字固有の表示属性を使用するVGAテキストモードですが、UEFIの「基本表示」は基本的に単純なAグラフィック対応フレームバッファです。テキストを簡単にレンダリングするため)。

答え4

簡単に言えば、Linuxカーネルはオペレーティングシステムを実行するエンジンです。持っているほとんどなしグラフィカルユーザーインターフェイスに関連しています。 GUIは、XFCE、GNOME、KDE ​​Plasmaなど、カーネル自体の一部ではなくデスクトップ環境によって制御されます。カーネルを小さくするためにコンピュータを起動する必要がない不要なオプションと他のデバイスドライバの両方を無効にしたいと思います。役に立ったことを願っています!

関連情報