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/06 18:09] – [Xenomai Pi Compiled] david | code:work:pi:rtpreempt:start [2017/03/09 01:06] (current) – [Xenomai Pi 3 Compile HOWTO] david | ||
---|---|---|---|
Line 301: | Line 301: | ||
< | < | ||
cd ~/work/pi | cd ~/work/pi | ||
- | tar xf download/ | + | tar xf download/ |
- | mv linux-3.18.20 linux-3.18.20-ipipe | + | mv linux-4.4.43 linux-4.4.43-ipipe |
cd xenomai-3.0.3 | cd xenomai-3.0.3 | ||
- | 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.1488823779.txt.gz · Last modified: 2017/03/06 18:09 by david