利用可能なすべてのドライバでLinuxカーネルをコンパイルする

利用可能なすべてのドライバでLinuxカーネルをコンパイルする

ポータブルUSBスティック用のカーネルをコンパイル中です。これは、コンパイルされるシステムだけでなく、すべてのハードウェアで実行する必要があることを意味します。カーネル構成で何を選択する必要がありますか?make allyesconfigこれは適切ですか?

これに備えて、これはDebian Stretch(OS)のネイティブカーネルに必要な最新のドライバが含まれていないためです(一部の2019 Lenovoノートブックのタッチパッドサポートは5.1でのみ提供されています)。

答え1

カスタムカーネルをコンパイルする必要はなく、関連するカーネルモジュールをinitramfsに追加するだけです。私のプロジェクトでは、ロードする各モジュールを一覧表示するinitramfs-toolsフォルダに「modules」というファイルを作成して実行しました。

mkinitramfs -o "initrd.img" initramfs-tools

それを構築します。

詳細はこちらからご覧いただけます。http://manpages.ubuntu.com/manpages/trusty/man8/initramfs-tools.8.html


デスクトップ環境にのみ適用する場合は、ファイルを/etc/modules編集してモジュールを追加して、起動時にモジュールを自動的にロードできます。

答え2

make allyesconfigメインカーネルにできるだけ多くのドライバを構築すると、膨大なカーネルファイルが生成されます。説明する<kernel source>/Documentation/admin-guide/README.rst

不要なドライバがあると、カーネルが大きくなり、場合によっては問題が発生する可能性があります。存在しないコントローラカードを検索すると、他のコントローラが混乱する可能性があります。

返品:

「カーネルハッキング」構成の詳細は、カーネルの問題(kmalloc())を見つけるために誤ったコードを積極的に破棄しようとするいくつかのルーチンを構成することによって、カーネルの安定性を低下させることがあります。かき混ぜます。したがって、「開発」、「実験」、または「デバッグ」機能に関する質問には「n」と答える必要があります。

make allmodconfigできるだけ多くのドライバとロード可能なモジュールを構築することでmake allyesconfig

1つをつかむことを検討することもできます。linux-configDebian テストのパッケージまたはストレッチから後ろに移植されたそこからカーネル構成を選択します。これは5.1ではいくつかのカーネルバージョンにすぎないため、この構成で実行するのは難しいことではありませんmake oldconfig

Debian のカーネルパッケージはすでにできるだけ一般的に構成されている必要があります。これを新しいカーネル構成の基礎として使用すると、システムコンソール固有のデバッグ機能や設定に関するいくつかのトラップを回避できます。使用可能なシステムコンソールドライバがないため、失敗したカーネル設定をデバッグすることは特別な問題です。

関連情報