Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
software:linux:phycore-mpc5200b:manueller-rt-patch [2016-03-22 17:25] – angelegt mgehrig2software:linux:phycore-mpc5200b:manueller-rt-patch [2016-10-31 18:07] (aktuell) mgehrig2
Zeile 13: Zeile 13:
   * Die verfügbaren Versionen können angezeigt werden mit: <code>git tag -l</code>   * Die verfügbaren Versionen können angezeigt werden mit: <code>git tag -l</code>
   * Gewünschter Tag auschecken: <code>git checkout -b RTPatch tags/v4.1.15</code>   * Gewünschter Tag auschecken: <code>git checkout -b RTPatch tags/v4.1.15</code>
-  * Download des passenden RT-Patch von [[https://www.kernel.org/pub/linux/kernel/projects/rt/ | Quelle RT-Patch]]. Zum Beispiel:  [[https://www.kernel.org/pub/linux/kernel/projects/rt/4.1/patch-4.1.15-rt17.patch.gz | RT-Patch v4.1.15-rt17]]+  * Download des passenden RT-Patch von [[https://www.kernel.org/pub/linux/kernel/projects/rt/ | Quelle RT-Patch]]. Zum Beispiel:  [[https://www.kernel.org/pub/linux/kernel/projects/rt/4.1/older/patch-4.1.15-rt17.patch.gz | RT-Patch v4.1.15-rt17]]
   * RT-Patch entpacken <code>gunzip -k patch-4.1.15-rt17.patch.gz</code>   * RT-Patch entpacken <code>gunzip -k patch-4.1.15-rt17.patch.gz</code>
   * NTB MPC5200 Daten holen mit:  <code> git clone https://github.com/ntb-ch/linux-phycore-mpc5200b</code>   * NTB MPC5200 Daten holen mit:  <code> git clone https://github.com/ntb-ch/linux-phycore-mpc5200b</code>
Zeile 33: Zeile 33:
   * Defaultkonfiguration aus //linux-phycore-mpc5200b.git// nach //.config// in Wurzelverzeichnis kopieren. <code> cp ../linux-phycore-mpc5200b/kernel/linux-3.19/defconfig .config </code>   * Defaultkonfiguration aus //linux-phycore-mpc5200b.git// nach //.config// in Wurzelverzeichnis kopieren. <code> cp ../linux-phycore-mpc5200b/kernel/linux-3.19/defconfig .config </code>
   * Kernel Konfiguration überprüfen und anpassen (siehe [[software:linux:linux-kernel_crosscompilieren|Linux-Kernel crosscompilieren]]): <code> make menuconfig </code>   * Kernel Konfiguration überprüfen und anpassen (siehe [[software:linux:linux-kernel_crosscompilieren|Linux-Kernel crosscompilieren]]): <code> make menuconfig </code>
-  * Im erscheinenden Menue: "Kernel options  ---> Preemption Model (No Forced Preemption (Server))  --->  (X) Fully Preemptible Kernel (RT)" auswählen und Konfiguration speichern+  * Im erscheinenden Menue: "Kernel options  ---> **Preemption Model (No Forced Preemption (Server))  --->  (X) Fully Preemptible Kernel (RT)**" auswählen und Konfiguration speichern 
 +  * Je nach Hardware kann es sein, dass noch weitere Einstellungen angepasst werden müssen. Folgende Punkte müssen beachtet werden ([[http://stackoverflow.com/questions/17812548/cyclictest-for-rt-patched-linux-kernel | weitere Infos]]): 
 +    * Power management and ACPI otions ---> **[*] ACPI (Advanced Configuration and Power Interface) Support** ACPI muss aktiviert sein, aber alle Unteroptionen, die deaktiviert werden können müssen deaktiviert werden 
 +    * Power management and ACPI otions ---> CPU Freqency scaling ---> **[ ] CPU Frequency scaling** deaktivieren 
 +    * Power management and ACPI otions ---> CPU Idle ---> **[ ] CPU idle PM support** deaktivieren 
 +    * Kernel hacking ---> Memory Debugging ---> **[ ] Check for stack overflows** deaktivieren 
 +  * Um die Quelle von hohen Latenzen mit dem [[https://rt.wiki.kernel.org/index.php/Cyclictest#Run_it | Cyclictest ]] finden zu könnnen, müssen folgende Einstellungen aktiviert sein: 
 +    * CONFIG_PREEMPT_RT=y 
 +    * CONFIG_WAKEUP_TIMING=y 
 +    * CONFIG_LATENCY_TRACE=y 
 +    * CONFIG_CRITICAL_PREEMPT_TIMING=y 
 +    * CONFIG_CRITICAL_IRQSOFF_TIMING=y
   * uImage compilieren: <code>make uImage</code>   * uImage compilieren: <code>make uImage</code>
   * Das uImage wird im Ordner "KERNELDIR/arch/powerpc/boot" gespeichert    * Das uImage wird im Ordner "KERNELDIR/arch/powerpc/boot" gespeichert