Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
software:linux:realtime:preempt_rt:build_kernel [2019-02-13 17:01]
mgehrig2
software:linux:realtime:preempt_rt:build_kernel [2019-02-15 10:52] (aktuell)
mgehrig2
Zeile 40: Zeile 40:
  
  
-  * **a.) Full module support** **(recommended)** A normal Linux distribution, like Ubuntu, will install a kernel and most of the available kernel modules. Many of them are never used, because they are drivers for hardware, which is not installed on the PC. This variant contains the same modules like a full Ubuntu kernel. +  * **a.) Full module support** **(The easy way)** A normal Linux distribution, like Ubuntu, will install a kernel and most of the available kernel modules. Many of them are never used, because they are drivers for hardware, which is not installed on the PC. This variant contains the same modules like a full Ubuntu kernel. 
-  * **b.) Minimal**: This will only build modules which are essential. Some basic function like WiFi drivers may be missing. Some basic Ethernet drive are in the monolithic part of the kernel and will still work. You can add all modules you need manually.+  * **b.) Minimal**: **(The propper way)** This will only build modules which are essential. Some basic functionality, like WiFi driversmay be missing. Some common Ethernet drive are in the monolithic part of the kernel and will still work. You can add all modules you need manually. This method is recommended in order to obtain a system that is as stable as possible. If fewer drivers are loaded, there is less risk that an unused driver will cause high latency.
  
 ==== Configure the kernel ==== ==== Configure the kernel ====
Zeile 53: Zeile 53:
  
 === b.) Minimal === === b.) Minimal ===
-TODO+You have three different options: 
 +  * **1.)** Configure the kernel to add only the bare minimum. Add all additional modules manually. 
 +  * **2.)** Configure the kernel to add all modules, which are currently loaded on the host pc. 
 +  * **3.)** Configure the kernel to add all modules, which are currently loaded on a different pc.
  
 +== 1.) Bare minimum ==
 +  - ''cd <pathToKernelSrc>''
 +  - Depending on the CPU architecture:
 +    - X86 - 64bit ''make x86_64_defconfig''
 +    - X86 - 32bit ''make i386_defconfig''
 +    - See ''<pathToKernelSrc>/arch/<architecture>/configs'' for more possibilities
 +  - Open the configuration menu ''make menuconfig''
 +  - Add all modules and drivers you need.
 +
 +== 2.) Copy module configuration from host ==
 +  - ''cd <pathToKernelSrc>''
 +  - ''make localmodconfig''
 +  - Open the configuration menu ''make menuconfig''
 +  - Add all additional modules and drivers you need.
 +
 +**Note**: Most modules are only loaded when they are needed.
 +
 +
 +== 3.) Copy module configuration from a different machine ==
 +On target machine (with generic kernel loaded):
 +  - ''lsmod > /tmp/mylsmod''
 +
 +On host:
 +  - ''cd <pathToKernelSrc>''
 +  - Copy the '//mylsmod//' file:
 +    - ''scp <targetUsername>@<targetHostname>:/tmp/mylsmod ./''
 +  - ''make LSMOD=./mylsmod localmodconfig''
 +  - Open the configuration menu ''make menuconfig''
 +  - Add all additional modules and drivers you need.
  
 === Additional configurations === === Additional configurations ===