[ 前回の記事では、Ubuntu 18.04のリアルタイムカーネルのインストールについて紹介しました](https://cloud.tencent.com/developer/article/1690961?from=10680)、Ubuntu16.04のリアルタイムカーネルの具体的なインストールは次のとおりです。
RTOS
apt-get install build-essential bc curl ca-certificates fakeroot gnupg2 libssl-dev lsb-release libelf-dev bison flex
現在使用しているものを見つけるには、uname-rを使用します。リアルタイムパッチは、一部のカーネルバージョンにのみ適用できます。以下を参照してください。
https://www.kernel.org/pub/linux/kernel/projects/rt/
kernel
現在の使用に最も近いバージョンを選択することをお勧めします。次のコマンドは、4.14.12-rt10パッチが適用された4.14.12カーネルバージョンを想定しています。別のバージョンを選択する場合は、番号を置き換えるだけです。バージョンを確認したら、curlを使用してソースファイルをダウンロードします。
curl -SLO https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.14.12.tar.xz
curl -SLO https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.14.12.tar.sign
curl -SLO https://www.kernel.org/pub/linux/kernel/projects/rt/4.14/older/patch-4.14.12-rt10.patch.xz
curl -SLO https://www.kernel.org/pub/linux/kernel/projects/rt/4.14/older/patch-4.14.12-rt10.patch.sign
そして、次のコマンドでそれらを解凍します。
xz -d linux-4.14.12.tar.xz
xz -d patch-4.14.12-rt10.patch.xz
ファイルが正しくダウンロードされたことを確認したら、ソースコードを抽出して、パッチを適用できます。
tar xf linux-4.14.12.tar
cd linux-4.14.12
patch -p1 <../patch-4.14.12-rt10.patch
次のステップは、カーネルを構成することです。
make oldconfig
これにより、テキストベースの構成メニューが開きます。プリエンプティブモデルを提供するように求められたら、完全にプリエンプティブなカーネルを選択します。
Preemption Model
1. No Forced Preemption (Server) (PREEMPT_NONE)
2. Voluntary Kernel Preemption (Desktop) (PREEMPT_VOLUNTARY)
3. Preemptible Kernel (Low-Latency Desktop) (PREEMPT__LL) (NEW)
4. Preemptible Kernel (Basic RT) (PREEMPT_RTB) (NEW)
> 5. Fully Preemptible Kernel (RT) (PREEMPT_RT_FULL) (NEW)
他のオプションはデフォルト値のままにしておくことをお勧めします。その後、カーネルをコンパイルできます。これは長いプロセスであるため、マルチスレッドオプション-jをCPUコアの数に設定します。
fakeroot make -j4 deb-pkg
これで、新しく作成したパッケージをインストールする準備が整いました。正確な名前は環境によって異なりますが、dbgサフィックスのないヘッダーとイメージパッケージを探しています。
sudo dpkg -i ../linux-headers-4.14.12-rt10_*.deb ../linux-image-4.14.12-rt10_*.deb
システムを再起動します。
これで、Grubブートメニューで、新しくインストールしたカーネルを選択できるようになります。現在使用されているものを確認するには、uname-aコマンドの出力を確認してください。これには、文字列PREEMPTRTと選択したバージョン番号が含まれている必要があります。さらに、/ sys / kernel / realtimeが存在し、番号1が含まれている必要があります。
sudo addgroup realtime
sudo usermod -a -G realtime $(whoami)
次に、リアルタイムグループ/etc/security/limits.confに次の制限を追加します。
@ realtime soft rtprio 99
@ realtime soft priority 99
@ realtime soft memlock 102400
@ realtime hard rtprio 99
@ realtime hard priority 99
@ realtime hard memlock 102400
Recommended Posts