= Building a Kernel for Barrett Products and Ubuntu 14.04 = == Notice - Pre-release instructions == This software has not been fully tested. It is meant for use with external PC's only (not the WAM's internal PC/104). We recommend using a standard OS and Kernel that ship with Barrett's products. == Version Info == Ubuntu Version: 14.04.1 Kernel Version: 3.14.17 Xenomai Version: 2.6.4 == Building Xenomai Packages == Install Prereq's: {{{ sudo apt-get update sudo apt-get install devscripts debhelper dh-kpatches findutils autotools-dev autoconf automake libtool }}} Get and unpack the tar.bz2 archive: {{{ wget https://xenomai.org/downloads/xenomai/stable/xenomai-2.6.4.tar.bz2 tar -jxf xenomai-2.6.4.tar.bz2 cd xenomai-2.6.4 debuild -uc -us }}} Install the packages {{{ cd sudo dpkg -i *.deb }}} == Patching the Kernel == Install Prereq's: {{{ sudo apt-get install kernel-package libncurses-dev fakeroot zlib1g-dev }}} Locate and copy the correct ipipe patch from Xenomai: {{{ cp /usr/src/xenomai-kernel-source/ksrc/arch/x86/patches/ipipe-core-3.14.17-x86-4.patch ~/ipipe-core-3.14.17-x86-4.patch }}} Download the kernel source archive and extract: {{{ wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.14.17.tar.xz tar -xf linux-3.14.17.tar.xz cd linux-3.14.17 }}} Patch the Kernel!! :D {{{ /usr/src/xenomai-kernel-source/scripts/prepare-kernel.sh --arch=amd64 --linux=. --adeos=../ipipe-core-3.14.17-x86-4.patch }}} == Update kernel config for Realtime == Update config as follows... {{{ make menuconfig }}} {{{ -> General setup -> Auditing support -> Enable system-call auditing support - DISABLE -> Real-time sub-system -> Nucleus -> Size of the system heap (Kb) - Set to 16384 -> Shared interrupts - ENABLE -> Drivers -> Serial Drivers -> 16550A UART driver - ENABLE -> CAN drivers -> RT-Socket-CAN, CAN raw socket interface - ENABLE -> Phillips SJA1000 CAN controller - ENABLE -> Standard ISA controllers - ENABLE for PC/104 only -> PEAK PCI Card - ENABLE for external PC only -> Real-time IPC drivers -> RTIPC protocol family - LEAVE ALONE (DISABLE for non-IPC) -> Processor type and features -> Intel Low Power Subsystem Support - DISABLE -> Linux guest support - DISABLE -> Memtest - DISABLE -> Processor family - Set to Core 2/newer Xeon -> Power management and ACPI options -> Power Management Debug Support -> Test suspend/resume and wakealarm during bootup - ENABLE -> Enable workqueue power-efficient mode by default - DISABLE -> ACPI (Advanced Configuration and Power Interface) Support -> Processor - DISABLE -> PCI slot detection driver - DISABLE -> Memory Hotplug - DISABLE -> Boottime Graphics Resource Table support - DISABLE -> ACPI Platform Error Interface (APEI) -> APEI Error Record Serialization Table (ERST) Debug Support - MODULE -> Extended Error Log support - DISABLE -> CPU Frequency scaling -> CPU Frequency scaling - DISABLE -> CPU Idle -> CPU idle PM support - DISABLE -> Bus options (PCI etc.) -> PCI support -> PCI Express Port Bus support -> PCI Express ASPM control -> Debug PCI Express ASPM - DISABLE -> Enable PCI resource re-allocation detection - DISABLE -> Support for PCI Hotplug -> ACPI PCI Hotplug driver - DISABLE -> Device Drivers -> Input device support -> Miscellaneous devices -> PC Speaker support - DISABLE }}} == Build the Kernel == {{{ CONCURRENCY_LEVEL=8 fakeroot make-kpkg --initrd --append-to-version -xenomai-2.6.4 kernel_image kernel_headers }}} Image and Headers will be in the home directory. Follow the steps at http://support.barrett.com/wiki/BuildingAPC/14-04-1_64_Install to complete the PC installation.