web-dev-qa-db-ja.com

インストールRT Ubuntu用のLinuxパッチ

RT Linuxにパッチを当てて/インストールしてカーネルを変更することにより、私の一般的なUbuntuをリアルタイムUbuntuにしようとしましたが、ストレートなセットアップが見つかりませんでした。誰かが手順を手伝ってくれませんか?

10
Abhay Nayak

ステップ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」は、システムがリアルタイムカーネルを実行していることを検証します。

13
Abhay Nayak

(@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
3
mrRo8o7

これは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.gzpatch-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 …
2