[Home]Ubuntu10.04Notes

LinuxCNCKnowledgeBase | RecentChanges | PageIndex | Preferences | LinuxCNC.org

Showing revision 6
Difference (from revision 6 to revision 6) (minor diff, author diff)
(The revisions are identical or unavailable.)

*** KERNEL *************************

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

git checkout <tagname> -b rtai git branch rtai git checkout rtai

fdr clean
fdr startnewrelease

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"

fdr clean
fdr editconfigs

         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"

fdr insertchanges

        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

fdr clean
Otherwise, run these commands:
skipabi=true skipmodule=true fdr binary-rtai
skipabi=true skipmodule=true fdr binary-indep

The packages should be ready to install.

*** RTAI *************************


*** EMC2 *************************

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

*** LIVECD *************************

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,


LinuxCNCKnowledgeBase | RecentChanges | PageIndex | Preferences | LinuxCNC.org
This page is read-only. Follow the BasicSteps to edit pages. | View other revisions | View current revision
Edited May 10, 2010 12:21 am by Micges (diff)
Search:
Published under a Creative Commons License