RT Linuxにパッチを当てて/インストールしてカーネルを変更することにより、私の一般的なUbuntuをリアルタイムUbuntuにしようとしましたが、ストレートなセットアップが見つかりませんでした。誰かが手順を手伝ってくれませんか?
ステップ0-作業ディレクトリを作成します
作業ディレクトリを作成する
#Move to working directory
mkdir ~/kernel && cd ~/kernel
ステップ1-カーネルとパッチをダウンロードします
https://www.kernel.org/pub/linux/kernel/ にアクセスし、目的のバージョンのカーネルを〜/ kernelにダウンロードします。同様に、 https://www.kernel.org/pub/linux/kernel/projects/rt/ に移動し、RTと同じバージョンのパッチをダウンロードしますダウンロードしたカーネルバージョン。使用したカーネルとパッチは、linux-4.9.115.tar.gzとpatch-4.9.155-rt93.patch.gzでした。
ステップ2-カーネルを解凍します
tar -xzvf linux-4.9.115.tar.gz
ステップ3-カーネルにパッチを適用します
#Move to kernel source directory
cd linux-4.9.115
gzip -cd ../patch-4.9.115-rt93.patch.gz | patch -p1 --verbose
ステップ4-リアルタイム処理を有効にしますこのステップにはlibncurses-devが必要です
Sudo apt-get install libncurses-dev libssl-dev
次のコマンドは、ターミナルでグラフィカルメニューを起動して、構成ファイルを生成します。
make menuconfig
場所に移動し、それに応じて変更を加えます
##Graphical Menu##
Processor type and features ---> [Enter]
Preemption Model (Voluntary Kernel Preemption (Desktop)) [Enter]
Fully Preemptible Kernel (RT) [Enter] #Select
[Esc][Esc]
Kernel hacking --> [Enter]
Memory Debugging [Enter]
Check for stack overflows #Already deselected - do not select
[Esc][Esc]
[Right Arrow][Right Arrow]
<Save> [Enter]
.config
<Okay> [Enter]
<Exit> [Enter]
[Esc][Esc]
[Right Arrow]
<Exit> [Enter]
ステップ5-カーネルをコンパイルします
make -j20
Sudo make modules_install -j20
Sudo make install -j20
ステップ6-確認および更新initrd.img-4.9.115-rt93、vmlinuz-4.9.115-rt93、およびconfig-4.9.115を確認します-rt93は/ bootディレクトリに生成され、GRUBを更新します。
cd /boot
ls
Sudo update-grub
/boot/grub/grub.cfg
ファイルに「menuentry 'Ubuntu、with Linux 4.9.115-rt93'」というテキストを含むmenuentryがあることを確認します
Grubのデフォルトのカーネルを変更するには、GRUB_DEFAULT
の/etc/default/grub
値を目的のカーネルに編集します。
注:0は最初のメニューエントリです
7-再起動して確認
Sudo reboot
システムが再起動したら、ターミナルを開き、uname -a
を使用してカーネルバージョンを確認します。次のようになります。
Linux abhay-home 4.9.115-rt93 #1 SMP PREEMPT RT Mon May 13 03:32:57 EDT 2019 x86_64 x86_64 x86_64 GNU/Linux
注:「SMP PREEMPT RT」は、システムがリアルタイムカーネルを実行していることを検証します。
(@Abhay Nayakが投稿したような)新しいカーネルをインストールした後、カーネルパニックに陥りました。問題は、initrdイメージが大きすぎることでした。私はそれを解決しました:
ステップ1-カーネルモジュールを削除する
cd /lib/modules/<new_kernel>
find . -name *.ko -exec strip --strip-unneeded {} +
ステップ2-initramfs圧縮を変更します
ファイル/etc/initramfs-tools/initramfs.confを編集します。
COMPRESS=xz
ステップ3-initramfsを更新
Sudo update-initramfs -u
Sudo update-grub2
これはUbuntu 19.10以降のバージョンです。Linux5.3(Ubuntu 19.10のベース)にはrtカーネルパッチがないため、Linux 5.4.5 rtカーネルパッチをパッチしました。
0。作業ディレクトリを作成します
# Make dir and move to working directory
$ mkdir ~/kernel && cd ~/kernel
1。カーネルとパッチをダウンロードする
https://www.kernel.org/ からカーネルとrtパッチをダウンロードします。以下から入手できます。
(カーネル) https://www.kernel.org/pub/linux/kernel/
(rtパッチ) https://www.kernel.org/pub/linux/kernel/projects/rt/
Rtパッチとカーネルのバージョンは同じである必要があります。 linux-5.4.5.tar.gzとpatch-5.4.5-rt3.patch.gzを使用しました。
これらを〜/ kernelからダウンロードする場合は、以下をスキップしてステップ2に進んでください。
# Move these Zip file to ~/kernel
$ cd ~/Download
$ mv linux-5.4.5.tar.gz patch-5.4.5-rt3.patch.gz ~/kernel/.
2。カーネルソースを抽出し、rtカーネルにパッチを適用します
# Extract kernel sources
$ cd ~/kernel
$ tar xvzf linux-5.4.5.tar.gz
# Patch rt kernel
$ cd linux-5.4.5
$ gzip -cd ../patch-5.4.5-rt3.patch.gz | patch -p1 --verbose {}
3。必要なパッケージをインストールします
Menuconfig GUIを使用するには、libncurses-dev
が必要です。 flex
およびbison
は、カーネルをコンパイルするときに必要になります。
# For using gui
$ Sudo apt install libncurses-dev libssl-dev
# For compiling kernel
$ Sudo apt install flex bison
4。カーネルをRT用に構成する
$ make menuconfig
そして、menuconfig GUIに入ります。
# Make preemptible kernel setup
General setup ---> [Enter]
Preemption Model (Voluntary Kernel Preemption (Desktop)) [Enter]
Fully Preemptible Kernel (RT) [Enter] #Select
# Select <SAVE> and <EXIT>
# Check .config file is made properly
GUI構成にCheck for stack overflows
オプションがなくなったことに注意してください。 「オーバーフロー」で検索できます。タイプ / およびグラフィカルメニューのoverflow
。
5。カーネルをコンパイルする
$ make -j20
$ Sudo make modules_install -j20
$ Sudo make install -j20
6。カーネルイメージを明るくする
@ mrRo8o7が以前に述べたように、大きなinitrd
イメージがカーネルパニックを発生させる可能性があります。したがって、次の方法でこの問題を解決できます。
# Strip unneeded symbols of object files
$ cd /lib/modules/5.4.5-rt3 # or your new kernel
$ Sudo find . -name *.ko -exec strip --strip-unneeded {} +
# Change the compression format
$ Sudo vi /etc/initramfs-tools/initramfs.conf
# Modify COMPRESS=lz4 to COMPRESS=xz (line 53)
COMPRESS=xz
[:wq]
次にinitramfsを更新します
$ Sudo update-initramfs -u
7。 grubを確認して更新します
そのディレクトリを確認し、GRUBを更新します。
# Make sure that initrd.img-5.4.5-rt3, vmlinuz-5.4.5-rt3, and config-5.4.5-rt3 are generated in /boot
$ cd /boot
$ ls
# Update grub
$ Sudo update-grub
8。再起動して確認します
$ Sudo reboot
# After the reboot
$ uname -a
次に、新しいカーネルのバージョンを確認できます
Linux [Prompt] 5.4.5-rt3 …