カーネルで何を有効にすべきかはどうすればわかりますか?

カーネルで何を有効にすべきかはどうすればわかりますか?

私はGentooユーザーです。カーネルをコンパイルするときは、ハードウェアに応じて有効にするオプションがたくさんあります。

私の質問は、どのように有効/無効にするかを知る方法、使用しているハードウェア(プロセッサのコマンドセット、コア数など/マザーボードNB、SB/Sataドライブなど)を知っていますが、どのオプションを選択するのかはまだわかりません。カーネル設定スクリプトで何をすべきかわからないとき。

それで、私はいくつかの奇妙な問題に遭遇しました(#gentooの助けを借りて解決しました)。誰かがこのトピックに関する参考資料を提供できますか?人々はこれをどのように学びますか?

PS:カーネルをコンパイルしてはいけないと言わないでください。カーネルをコンパイルしてはいけないことを学びたいので、スピードを上げてハードウェアをよりよく活用するのはどうですか?

答え1

Gentooユーザーがこのような質問をするのを見ると、気分は変です。

慎重な選択を行うには、各オプションの意味を理解する必要があるため、カーネルが何であるか、どのように機能するかを基本的に理解することをお勧めします。

まず、Gentooのマニュアルを読んでください。http://www.gentoo.org/doc/en/kernel-config.xmlhttp://kernelnewbies.org/あるいは、LinuxカーネルをGoogleで検索してみてください。

答え2

正しいオプションを確認する最も簡単な方法は、「デフォルト」.configファイルをインポートすることです。ほとんどのカーネルソースには、さまざまな構成の正しいオプションセットをすべて含む基本ファイルが付属しています。これはデフォルトのカーネルディレクトリのconfigsディレクトリに保存されます。アーキテクチャ/システムがこれをサポートしている場合、入力は次のように簡単です。

make rconfig

ここで、rconfig は configs フォルダーにあるシステムのデフォルトの .config ファイルの名前です。

これが完了すると、すべてのデフォルトオプションが設定されているカーネルルートディレクトリに.configファイルが作成されます。この時点で、次のように入力します。

make menuconfig

新しい.configファイルからすべてのデフォルト設定をロードするので、これで作業が簡単になりました。オプションを参照して、特定の構成要件を満たすために直接変更する必要があるかどうかを確認できます。 .configファイルはテキストファイルで、grepを使用してデフォルトのオプションがどこにあるかを確認できます。

基本設定ファイルがあり、そのファイルでトンネリングサポートを実装する方法を理解しているとします。単に次のことができます。

grep -in 'tun' .config

次の行が出力されるのがわかります。

#CONFIG_TUN = N

コメントを削除して N の代わりに Y を使用すると、カーネル設定がトンネルドライバを提供するように変更されます。

答え3

これが新しいハードウェアにGentooをインストールするときに私がすることです。

  • 基本構成から始めるカーネルシード

  • livecdによってロードされたモジュールを確認(lsmod、、modinfo)して(Gentooをインストールするために実行中です)、有効にします。

これにより、起動可能なカーネルで起動した後、引き続きオプションを調整し、そのカーネルをバックアップとして保持しました。

答え4

自分だけのカーネルをコンパイルしても、より良い速度を得ることはできません。痛みを伴う経験と思い出が得られます。正しく実行すると、数百キロバイトのメモリが節約されます。

少なくともmake localmodconfig現在カーネルにロードされているすべてのドライバを含めるには、実行してください。これにより、現在使用されているいくつかの重要なドライバが失われないようにすることができます。

いつか追加できるすべてのUSBおよびその他のホットプラグ対応デバイス用のモジュールとして、追加のドライバを引き続き含める必要があります。カーネルに直接起動するために必要なすべての項目も含まれていることを確認してください。 initramfs機能のみを含め、他のすべてをモジュール化すると、この点で簡単になります。しかし、initramfsを再構築することを忘れないでください。

関連情報