私の全体的な目標は、修正可能なRT_PREEMPTカーネルを構築することです。中間段階でRT_PREEMPTではなく、通常のカーネルをビルドしてインストール(そしてgrubエントリとして実行)してみました。しかし、以下の質問は、RT_PREEMPTが言及されていないにもかかわらず正しいと思います。
シナリオは次のとおりです。
- .iso から Debian 11 を新規インストール
- 私の考えでは、kernel.orgから同じカーネルソースコードに最も近いものをダウンロードしてください。
- 立つ、
- 次の理由で起動が失敗します。
Loading initial ramdisk ...
error: out of memory.
Press any key to continue ...
キーを押すとルートをマウントできないため、カーネルパニックが発生する前にプロセスがしばらく続行されます。私はLinuxに初めて触れましたが、これは基本的なようで、うまく機能するようです。だから私は何か間違っていますが、それが何であるかわかりません。 Out of memory エラーは一般的ではないようで、ここに助けを求めます。私のプロセスの詳細は次のとおりです。
- debian.org(debian-11.2.0-amd64-netinst.iso)から.isoをダウンロードしてインストールします。インストールは完全に一般的で、私が追加したのはKDEとSSHだけでした。
- ログインして 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ソースコードを操作し、すべての操作を手動で実行するよりも、このパスに従うことをお勧めします。