Raspberry Pi用の公式カーネルを構築したいと思います。しかし、その過程で1つの機能を変更したいと思います。
私は基本的に次のチュートリアルに従いました。http://www.frank-durr.de/?p=203
ある時点でこれを実行する必要があるというメッセージが表示され、目的のmake menuconfig
カーネル機能を選択/変更するためにナビゲートできるメニューが開きます。Kernel Features → Preemption Model
に設定したいが、Fully Preemptible Kernel (RT)
手動でしたくない bash スクリプトを使用して実行したいと思います。
新しいカーネルがリリースされると、設定ファイルは無効になる可能性があるため、手動で一度だけ実行してから結果の設定ファイルをコピーすることはできません。だから私は常に現在のカーネルの基本的な機能と修正をしたいと思います。
基本構成とカスタム構成を作成して比較すると、次のような結果が得られます。
-CONFIG_TREE_RCU=y
+CONFIG_PREEMPT_RCU=y
-# CONFIG_TASKS_RCU is not set
+CONFIG_TASKS_RCU=y
-# CONFIG_RT_GROUP_SCHED is not set
-CONFIG_SLUB_CPU_PARTIAL=y
-CONFIG_OPROFILE=m
-CONFIG_JUMP_LABEL=y
-# CONFIG_STATIC_KEYS_SELFTEST is not set
CONFIG_HAVE_ARCH_JUMP_LABEL=y
-CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
-CONFIG_INLINE_READ_UNLOCK=y
-CONFIG_INLINE_READ_UNLOCK_IRQ=y
-CONFIG_INLINE_WRITE_UNLOCK=y
-CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
-CONFIG_MUTEX_SPIN_ON_OWNER=y
-CONFIG_RWSEM_SPIN_ON_OWNER=y
-CONFIG_LOCK_SPIN_ON_OWNER=y
+CONFIG_PREEMPT=y
+CONFIG_PREEMPT_RT_BASE=y
+CONFIG_PREEMPT_LAZY=y
-CONFIG_PREEMPT_VOLUNTARY=y
+# CONFIG_PREEMPT_VOLUNTARY is not set
-# CONFIG_PREEMPT_RT_FULL is not set
+CONFIG_PREEMPT_RT_FULL=y
+CONFIG_PREEMPT_COUNT=y
-CONFIG_NET_RX_BUSY_POLL=y
-CONFIG_BCACHE=m
-# CONFIG_BCACHE_DEBUG is not set
-# CONFIG_BCACHE_CLOSURES_DEBUG is not set
-CONFIG_LEDS_TRIGGER_CPU=y
+CONFIG_DEBUG_PREEMPT=y
-# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
-CONFIG_RING_BUFFER_ALLOW_SWAP=y
+# CONFIG_PREEMPT_TRACER is not set