仮定:
プラットフォーム:anisha@linux-dopx:~/> uname -a
Linux linux-dopx 2.6.34-12-desktop #1 SMP PREEMPT 2010-06-29 02:39:08 +0200 x86_64 x86_64 x86_64 GNU/Linux
ダウンロードしたカーネルは、kernel.orgからの最新の安定版です。
make menuconfig
のオプションはデフォルトのままにしておきます(変更しません)。make
、make install
、grub-update
と入力して、再起動します。さて、これらの仮定に従って、エラーのない再起動を確実にするために、ファイルにいくつかの追加の変更を加えるか、いくつかの追加のドライバーをコンパイルする必要がありますか?
はいの場合、それらの変更は何に依存していますか?
編集1:
anisha@linux-dopx:/> Sudo /sbin/lspci -n
00:00.0 0600: 8086:29c0 (rev 10)
00:02.0 0300: 8086:29c2 (rev 10)
00:1b.0 0403: 8086:27d8 (rev 01)
00:1c.0 0604: 8086:27d0 (rev 01)
00:1c.1 0604: 8086:27d2 (rev 01)
00:1d.0 0c03: 8086:27c8 (rev 01)
00:1d.1 0c03: 8086:27c9 (rev 01)
00:1d.2 0c03: 8086:27ca (rev 01)
00:1d.3 0c03: 8086:27cb (rev 01)
00:1d.7 0c03: 8086:27cc (rev 01)
00:1e.0 0604: 8086:244e (rev e1)
00:1f.0 0601: 8086:27b8 (rev 01)
00:1f.1 0101: 8086:27df (rev 01)
00:1f.2 0101: 8086:27c0 (rev 01)
00:1f.3 0c05: 8086:27da (rev 01)
01:00.0 0200: 10ec:8136 (rev 01)
ただのmake menuconfig
。必要な設定は次の3つに依存します。
the hardware being used
the features used by the OS/distribution
the features by you (file-systems, raid, ..etc)
したがって、私の見解で推奨される「デフォルト」構成は次のとおりです。
cd your_kernel_src
cp /boot/your-distribution-config .config
make localmodconfig
make menuconfig
ディストリビューションのカーネル構成 も参照してください。最初の段落:
カーネルの構成は、かつてはかなり単純なプロセスであり、サポートする必要のあるハードウェアについての知識のみが必要でした。時間の経過とともに、物事は一般的に複雑になってきていますが、ディストリビューションでは、特定のカーネル機能に対する独自の一連の依存関係が追加されています。そのため、Linus Torvaldsは、ディストリビューション固有のカーネル構成オプションを追加するためのRFC提案を発表しました。
実際のハードウェア/ディストリビューションは、defconfigでは適切に動作しない可能性があります
前述のように この回答について 、ディストリビューションまたはハードウェアベンダーから提供されていないものは、微妙な、またはそれほど微妙ではない方法で失敗する可能性が非常に高くなります。例:
さらに、特定の構成に加えて、ベンダーがバニラカーネルの上に大きなパッチセットを適用するのは通常のことです。たとえば、Ubuntuでもこれを行います。
特にUbuntu/Debianの場合、サポートされているカーネルをソースからコンパイルする方法を次の場所で説明しました https://askubuntu.com/questions/281763/is-there-any-prebuilt-qemu-ubuntu-image32bit- online/1081171#1081171 この場合、安定したカーネルベースを変更することは、あなたができる最も健全なことです。
QEMUはdefconfigと連携します
defconfig
がうまく機能することの1つは、カーネルv4.20、QEMU 2.12でテストされたQEMUで起動することです。
これは Buildrootを使用した完全に自動化された例 です。
そのリンクに記載されているように、ディスクから起動するには次のオプションが必要です。
CONFIG_VIRTIO_PCI=y
CONFIG_VIRTIO_BLK=y
initrdには必要ありませんが。
別のArchへのクロスコンパイル(例: aarch64、あなたは必要です:
make Arch=arm64 defconfig
しかし ここで説明されているように 、arm64はQEMUで起動しますが、非常に肥大化したカーネルを生成します。 ここで説明 。
何make defconfig
完全に一致しますか?
詳細なビルドで使用された構成ファイルを簡単に確認できます。
make V=1 defconfig
これはv4.19で出力します:
make -f ./scripts/Makefile.build obj=scripts/basic
rm -f .tmp_quiet_recordmcount
make -f ./scripts/Makefile.build obj=scripts/kconfig defconfig
scripts/kconfig/conf --defconfig=Arch/x86/configs/x86_64_defconfig Kconfig
ここから、使用するファイルは Arch/x86/configs/x86_64_defconfig である必要があると結論付けます。
参照: https://stackoverflow.com/questions/41885015/what-exactly-does-linux-kernels-make-defconfig-do
make help
には、alldefconfig
やsavedefconfig
など、他の興味深いデフォルト関連ターゲットも表示されます。