新しいDebian 11にほとんど同じカーネルをインストールできないのはなぜですか?

新しいDebian 11にほとんど同じカーネルをインストールできないのはなぜですか?

私の全体的な目標は、修正可能なRT_PREEMPTカーネルを構築することです。中間段階でRT_PREEMPTではなく、通常のカーネルをビルドしてインストール(そしてgrubエントリとして実行)してみました。しかし、以下の質問は、RT_PREEMPTが言及されていないにもかかわらず正しいと思います。

シナリオは次のとおりです。

  1. .iso から Debian 11 を新規インストール
  2. 私の考えでは、kernel.orgから同じカーネルソースコードに最も近いものをダウンロードしてください。
  3. 立つ、
  4. 次の理由で起動が失敗します。
Loading initial ramdisk ...
error: out of memory.
Press any key to continue ...

キーを押すとルートをマウントできないため、カーネルパニックが発生する前にプロセスがしばらく続行されます。私はLinuxに初めて触れましたが、これは基本的なようで、うまく機能するようです。だから私は何か間違っていますが、それが何であるかわかりません。 Out of memory エラーは一般的ではないようで、ここに助けを求めます。私のプロセスの詳細は次のとおりです。

  1. debian.org(debian-11.2.0-amd64-netinst.iso)から.isoをダウンロードしてインストールします。インストールは完全に一般的で、私が追加したのはKDEとSSHだけでした。
  2. ログインして uname -a を実行します。出力は次のとおりです。
Linux sdcc13 5.10.0-11-amd64 #1 SMP Debian 5.10.92-1 (2022-01-18) x86_64 GNU/Linux

この部分が少し混乱していますが、カーネルバージョン5、パッチレベル10、下位レベル92という意味だと思います。 kernel.orgに最も近いバージョンは次のとおりです。

longterm:   5.10.93 

だから私が使用するコマンドは次のようになります。

wget https://www.kernel.org/pub/linux/kernel/v5.x/linux-5.10.93.tar.xz
xz -cd linux*.tar.xz | tar xvf 
cd linux-5.10.93/
cp /boot/config-$(uname -r) .config
sudo apt-get install git fakeroot build-essential ncurses-dev xz-utils libssl-dev bc flex libelf-dev bison
make -j11
sudo make modules_install
sudo make install
sudo reboot

これにより、上記のように再起動が失敗します。 CERTの問題を解決するために編集する必要がありましたが、.config他は変更しませんでした。これは非常に一般的で動作しそうですので、助けてくれてありがとう。私もこのプロセスのmake menuconfig一部としてこれを試しましたが、make oldconfig結果は同じでした。私は何を見逃していますか?

ついにDebianの作業指示を得ました(いくつかの行を追加)。そのため、既存のDebian 11システムと同じカーネルを構築するために、次のことを行いました。最も恐ろしいのは、デフォルトのカーネルを削除する必要があるということです。したがって、これを実行する前に、少なくとも別のカーネルを持つことが最善です。

sudo apt-get インストールビルド 必須 fakeroot

sudo apt-get ビルド-dep Linux

apt-getソースLinux

CD Linux-5.10.92/

fakeroot make -j10 -f debian/rules.gen バイナリ-arch_amd64

sudo apt delete --purge linux-image-5.10.0-11-amd64-unsigned

sudo dpkg -i linux-image-5.10.0-11-amd64-unsigned_5.10.92-1_amd64.deb

sudoの再起動

助けてくれてありがとう。

答え1

カーネルを構築するには、Debian ドキュメントを使用することをお勧めします。

https://kernel-team.pages.debian.net/kernel-handbook/ch-common-tasks.html#s-common-official

「オリジナル」kernel.org Linuxカーネルソースではなくカーネルソースパッケージからビルドすることもできます。カーネルを構築する方法は実際にはお勧めできません。

ここからdebian 11 / bullseye用のpreempt-rtカーネルパッケージとカーネルソースコードパッケージを見つけることもできます。

https://packages.debian.org/bullseye/linux-image-5.10.0-10-rt-amd64

これを Debian 用の正しい -rt パッケージをビルドするためのテンプレートとして使用できる必要があります。 kernel.orgソースコードを操作し、すべての操作を手動で実行するよりも、このパスに従うことをお勧めします。

関連情報