リアルタイムOSのために Debian に RT-Linux をインストールしました。
環境:
Debian 11, Xfce
Intel Core i5-6300U vPro (2.4GHz, 2core, 4threads)
SSD 256GB
メモリ 8GB
14インチ液晶 フルHD (1920x1080)
ノートPC
Synaptic パッケージマネージャ (root 権限必要)
セクション:カーネルとモジュール
現在
linux-headers-5.10.0-9-amd64 5.10.70-1 Header files for Linux 5.10.0-9-amd64
linux-headers-5.10.0-9-common 5.10.70-1 Common header files for Linux 5.10.0-9
linux-headers-amd64 5.10.70-1 Linux amd64 構成向けヘッダファイル (メタパッケージ)
linux-image-5.10.0-8-amd64 5.10.46-5 Linux 5.10 for 64-bit PCs (signed)
linux-image-5.10.0-9-amd64 5.10.70-1 Linux 5.10 for 64-bit PCs (signed)
linux-image-amd64 5.10.70-1 64 ビットマシン用 Linux (メタパッケージ)
候補
linux-headers-5.10.0-9-rt-amd64 5.10.70-1 Header files for Linux 5.10.0-9-rt-amd64
linux-headers-5.10.0-9-common-rt 5.10.70-1 Common header files for Linux 5.10.0-9-rt
linux-headers-rt-amd64 5.10.70-1 Header files for Linux rt-amd64 configuration (meta-package)
linux-image-5.10.0-8-rt-amd64 5.10.46-5 Linux 5.10 for 64-bit PCs PREEMPT RT (signed)
linux-image-5.10.0-9-rt-amd64 5.10.70-1 Linux 5.10 for 64-bit PCs, PREEMPT RT (signed)
linux-image-rt-amd64 5.10.70-1 64 ビットマシン用 Linux (メタパッケージ)
指定してインストール。再起動後に RT-Linux になる。uname -a でシステム情報を確認
ドキュメント1
https://wiki.linuxfoundation.org/realtime/documentation/howto/applications/start
gcc example.c -pthread -o example
su
パスワード: ****
./example
※ su でないと実行できない (create pthread failed エラーが出る)。以下, 同じ
定周期タスクを実行する場合
gcc example_cyclic.c -pthread -o example_cyclic
./example_cyclic
こちらの rt_main.c を rt_main_sched.c に変えて, rt_main.obj を作成。リンカはそのまま
実行時, 他のすべてのアプリケーションを閉じる (例えば, Debian を CUI モードに切り替える)
/* 本プロセスの優先度を設定する */
#include <sched.h>
struct sched_param sp = { .sched_priority = 99 };
ret = sched_setscheduler(0, SCHED_FIFO, &sp);
if (ret == -1) {
perror("sched_setscheduler");
return 1;
}
/* 実行結果 */
□ Start, OnStep, Terminate 等で呼び出せるように書き換え
NewSimModel_main.zip (再掲)