Recently, attempting to build these packages in a 'pbuilder' chroot showed several problems. First, some dependencies were missing (e.g., rtai-modules-2.6.12-magma for emc2, and python2.4-tk and emc2 for emc2-axis). Additionally, the linux-image-2.6.12-magma package won't install in the pbuilder chroot unless the hook [D99kernel-img.conf] is used, and the actual running kernel must also be linux-image-2.6.12-magma. Patches to fix any of these problems are happily accepted. |
Recently, attempting to build these packages in a 'pbuilder' chroot showed several problems. First, some dependencies were missing (e.g., rtai-modules-2.6.12-magma for emc2, and python2.4-tk and emc2 for emc2-axis). Additionally, the linux-image-2.6.12-magma package won't install in the pbuilder chroot unless the hook [D99kernel-img.conf] is used, and the actual running kernel must also be linux-image-2.6.12-magma. Patches to fix any of these problems are happily accepted. |
$ sudo apt-get install emc2[reboot to the 2.6.12-magma kernel if you're not running it already]
$ sudo apt-get build-dep emc2 emc2-axis $ fakeroot apt-get -b source emc2 emc2-axis
Create the chroot like this (split across two lines for clarity):
$ sudo pbuilder create --mirror http://us.archive.ubuntu.com/ubuntu --distribution breezy \
--othermirror "deb http://www.linuxcnc.org/emc2/ breezy emc2"
Get the emc2 and emc2-axis source like this:
$ apt-get source emc2 emc2-axis
Run pbuilder:
$ sudo pbuilder build --hookdir /home/jepler/pbuild-hook/ emc2_2.0.0.dsc(you'll need to modify the --hookdir value to match your system)
I started these instructions a while back; I think they still reflect what I did to build kernel and rtai. I have no idea whether they're the "right" debian way. I think any hacked scripts make it into the src debs, but I haven't tested extensively. Especially suspicious are changes I've made to /usr/share/kernel-package, but those are mostly to silence scary warnings during kernel updates that I determined were not necessary (because I didn't change the list of modules). For the make-kpkg invocations --revision might not be necessary (I think it can get it from the changelog).
It's impossible to build a kernel right the first time. It's worth your time to install and configure ccache right now.
install and untar linux-source, patch it as required install and untar rtai-source (/usr/src/modules/rtai-3.3)
set in your environment:
export CC=gcc-3.4 export CXX=g++-3.4 export CPP='gcc-3.4 -E' export CXXCPP='g++-3.4 -E' export MAKEFLAGS='CC=gcc-3.4 CXX=g++-3.4' export CONCURRENCY_LEVEL=3
check /etc/kernel-pkg.conf
use dch to edit /usr/share/kernel-package/changelog if necessary
check /usr/share/kernel-package/image.[post|pre]inst
cd /usr/src/linux-source-2.6.12-magma cp /boot/config-2.6.12-magma .configedit EXTRAVERSION in the Makefile
make oldconfig make-kpkg clean make-kpkg --initrd --revision=xxxxx --stem=linux binary
install the resulting linux-headers package; rtai modules are built using it. this is important because we want users to be able to build realtime modules (emc) without requiring the full kernel source.
cd /usr/src/modules/rtai-3.3use dch to edit debian/changelog if necessary
cp /usr/realtime-2.6.12-magma/share/rtai/config-rtai-3.3 .rtai_config make clean cd /usr/src/linux-headers-2.6.12-magma make-kpkg --initrd --revision=xxxxx --stem=linux modules_image
$ sudo pbuilder --create --othermirror 'deb http://linuxcnc.org/hardy hardy base emc2.2' --components "main universe"