Steps taken to modify and build kernel:
sudo apt-get install fakeroot build-essential crash kexec-tools makedumpfile kernel-wedge sudo apt-get build-dep linux sudo apt-get install git-core libncurses5 libncurses5-dev binutils-dev libelf-dev asciidoc xmlto
add this -> alias fdr='fakeroot debian/rules' at the end of your .bashrc
git clone git://kernel.ubuntu.com/ubuntu/ubuntu-lucid.git ubuntu-lucid
cd ubuntu-lucid
patch -p1 < hal-linux-2.6.xx.x-x86-x.x-xx.patch
cp debian.master/config/i386/config.flavour.generic debian.master/config/i386/config.flavour.rtai
cp debian.master/abi/2.6.32-xx.xx/i386/generic debian.master/abi/2.6.32-xx.xx/i386/rtai
cp debian.master/abi/2.6.32-xx.xx/i386/generic.modules debian.master/abi/2.6.32-xx.xx/i386/rtai.modules
We need to edit the following files
* debian.master/etc/getabis * debian.master/rules.d/i386.mk
File: debian.master/etc/getabis
Search for the line:
getall i386 generic generic-pae 386
Change it to:
getall i386 generic generic-pae 386 rtai
File: debian.master/rules.d/i386.mk
Search for the line:
flavours = generic generic-pae 386
Change it to:
flavours = generic generic-pae 386 rtai
We need to make the compilation process aware of our own flavor we want to compile.
cp debian.master/control.d/vars.generic debian.master/control.d/vars.rtai
arch="i386 amd64" supported="Generic - RTAI" target="Geared toward CNC control systems." desc="x86/x86_64" bootloader="grub | lilo (>= 19.1)" provides="kvm-api-4, redhat-cluster-modules, ivtv-modules, ndiswrapper-modules-1.9"
Enable loadable module support ---> enabled [*] Loadable module support ---> Module versioning support ---> disabled Processor type and features ---> Support sparse irq numbering ---> disabled Processor type and features ---> Processor Family ---> Pentium Pro (M686=y) or Pentium Classic (M586TSC) Processor type and features ---> HPET Timer Support ---> disabled Processor type and features ---> Peemption Model ---> Preemtible Kernel (Low-Latency Desktop) (PREEMPT=y) Processor type and features ---> Interrupt pipeline ---> enabled [*] Power management and ACPI options ---> ACPI (Advanced Configuration and Power Interface) Support ---> enabled [*] Power management and ACPI options ---> ACPI (Advanced Configuration and Power Interface) Support ---> Deprecated /proc/acpi files ---> disabled Power management and ACPI options ---> ACPI (Advanced Configuration and Power Interface) Support ---> Deprecated power /proc/acpi directories ---> disabled Power management and ACPI options ---> ACPI (Advanced Configuration and Power Interface) Support ---> Future power /sys interface ---> disabled Power management and ACPI options ---> ACPI (Advanced Configuration and Power Interface) Support ---> Deprecated /proc/acpi/event support ---> disabled Power management and ACPI options ---> ACPI (Advanced Configuration and Power Interface) Support ---> AC Adapter ---> disabled Power management and ACPI options ---> ACPI (Advanced Configuration and Power Interface) Support ---> Battery ---> disabled Power management and ACPI options ---> ACPI (Advanced Configuration and Power Interface) Support ---> Button ---> enabled[*] Power management and ACPI options ---> ACPI (Advanced Configuration and Power Interface) Support ---> Video ---> module [M] Power management and ACPI options ---> ACPI (Advanced Configuration and Power Interface) Support ---> Fan ---> disabled Power management and ACPI options ---> ACPI (Advanced Configuration and Power Interface) Support ---> Dock ---> enabled [*] Power management and ACPI options ---> ACPI (Advanced Configuration and Power Interface) Support ---> Processor ---> disabled Power management and ACPI options ---> ACPI (Advanced Configuration and Power Interface) Support ---> Disable ACPI for systems before Jan 1st this year ---> 0 Power management and ACPI options ---> ACPI (Advanced Configuration and Power Interface) Support ---> Debug Statements ---> disabled Power management and ACPI options ---> ACPI (Advanced Configuration and Power Interface) Support ---> PCI slot detection driver ---> disabled Power management and ACPI options ---> ACPI (Advanced Configuration and Power Interface) Support ---> Container and Module Devices ---> disabled Power management and ACPI options ---> ACPI (Advanced Configuration and Power Interface) Support ---> Smart Battery System ---> disabled Power management and ACPI options ---> APM (Advanced Power Management) BIOS support ---> disabled Power management and ACPI options ---> CPU Frequency scaling ---> disabled
Sparse irq numbering is disabled or you get the following error: include/linux/ipipe.h:76:2: error: #error "CONFIG_NR_CPUS is too large, please lower it."
If you have a multi cores CPU or SMP system, don't choose a processor family which has no TSC (time stamp counter). This means that for example you can not choose 586/K5/5x86/6x86/6x86MX as Processor family if you have a dual cores CPU. In conclusion, choose the most suitable processor family for your machine.
NOTE: No need to disable High Memory Support for RTAI 3.7.1 and newer
NOTE: No need to disable Symmetric multi-processing support for the uniproccesor machine for RTAI 3.7.1 and newer. But if you don't have a multi cores CPU or SMP system, you can disable it to improve the performance
NOTE: No need to disable Module Versioning Support for RTAI 3.7.1 but it's needed to regenerate the kernel module dependencies. You can prefer to disable Module Versioning Support, if you don't want to deal with the kernel module dependencies. Loadable module support ---> Module versioning support ---> disabled
NOTE: No need to turn off debugging if building packages with the ubuntu debian/rules system. Otherwise remember to turn off debugging info to vastly reduce kernel size!
git add .
git commit -a -m"Applied rtai IPIPE patch and edited configs for realtime operation"
linux (2.6.xx-xx.xx.rtai) lucid-proposed; urgency=low
[Your Name Here] * Applied rtai IPIPE patch for realtime operation
-- Your Name <youremail@whatever.com> Sat, 27 Feb 2010 22:00:46 -0600
Need to list all packages needed to get and build emc2 packages.
git-core gitk git-gui
For building emc2:
build-essential devscripts debhelper libpth-dev tcl8.5-dev tk8.5-dev bwidget libxaw7-dev libreadline5-dev python-dev libglu1-mesa-dev libxinerama-dev autoconf python-tk libglib2.0-dev libxft-dev gettext libgtk2.0-dev
For building the documents - required if building packages. I use --no-install-recommends is so the donwload is less than 100MB instead 400MB with stuff you don't need.
apt-get install --no-install-recommends lyx texlive-extra-utils texlive-fonts-recommended texlive-latex-base texlive-font-utils groff dvipng imagemagick ttf-lyx texlive-latex-extra texlive-latex-recommended
Run the following in lucid to put the window buttons back in their proper places:
gconftool-2 --set /apps/metacity/general/button_layout --type string "menu:minimize,maximize,close,"
Removed: gnome-games*, openoffice*
Installed: abiword, gnumeric,