code:work:pi:rtpreempt:start
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| code:work:pi:rtpreempt:start [2017/03/08 18:50] – [Xenomai Pi Compiled] david | code:work:pi:rtpreempt:start [2017/03/09 01:06] (current) – [Xenomai Pi 3 Compile HOWTO] david | ||
|---|---|---|---|
| Line 306: | Line 306: | ||
| scripts/ | scripts/ | ||
| cd ~/ | cd ~/ | ||
| - | KERNEL=kernel7 | + | export |
| make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- bcm2709_defconfig | make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- bcm2709_defconfig | ||
| make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- bcm2835_defconfig | make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- bcm2835_defconfig | ||
| Line 350: | Line 350: | ||
| * This is an excellent example that has a real time thread and a non-real time thread that communicate. | * This is an excellent example that has a real time thread and a non-real time thread that communicate. | ||
| + | |||
| + | ===== Xenomai Pi 3 Compile HOWTO ===== | ||
| + | |||
| + | Using this as the basis: | ||
| + | |||
| + | [[https:// | ||
| + | |||
| + | |||
| + | - Grab Xenomai < | ||
| + | cd ~/ | ||
| + | wget << | ||
| + | </ | ||
| + | - What patches do we have? < | ||
| + | cd ~/work/pi/ | ||
| + | tar xf download/ | ||
| + | ls xenomai-3.0.3/ | ||
| + | # | ||
| + | # results | ||
| + | ipipe-core-3.10.32-arm-13.patch | ||
| + | ipipe-core-3.14.44-arm-16.patch | ||
| + | </ | ||
| + | - Grab the source code from the **git** repository < | ||
| + | git clone https:// | ||
| + | cd linux | ||
| + | git checkout rpi-4.4.y | ||
| + | </ | ||
| + | - Create a new Xenomai branch < | ||
| + | git checkout -b xenomai-3.0.3 | ||
| + | </ | ||
| + | - Dry run the patch < | ||
| + | patch --dry-run -p1 < | ||
| + | </ | ||
| + | - Patch the kennel assuming you saw no FAILS in the dry run test < | ||
| + | cd .. | ||
| + | xenomai-3.0.3/ | ||
| + | </ | ||
| + | - Build the default configuration < | ||
| + | KERNEL=kernel7 | ||
| + | cd linux | ||
| + | make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- bcm2709_defconfig | ||
| + | make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- bcm2835_defconfig | ||
| + | </ | ||
| + | - Configure the kernel < | ||
| + | make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig | ||
| + | </ | ||
| + | - Make these changes | ||
| + | - Kernel Features | ||
| + | - Preemptible Kernel (Low-Latency Desktop) | ||
| + | - DISBLE Allow for memory compaction | ||
| + | - DISABLE Contiguous Memory Allocator | ||
| + | - CPU Power Management | ||
| + | - Kernel hacking | ||
| + | - DISABLE KGDB: kernel debugger | ||
| + | - Compile! < | ||
| + | make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- zImage modules dtbs -j 6 | ||
| + | </ | ||
| + | - Ran this with the 3.1.18 kernel... seems like that might work. | ||
code/work/pi/rtpreempt/start.1488999002.txt.gz · Last modified: by david
