Compiling the iMote2 kernel: Difference between revisions
From University of Washington - Ubicomp Research Page
Jump to navigationJump to search
mNo edit summary |
mNo edit summary |
||
Line 1: | Line 1: | ||
== Downloads == | == Downloads == | ||
* PlatformX 1.0 Release from [http://prdownloads.sourceforge.net/platformx/SG2Release-1_0.tgz?download sourceforge.net] | * PlatformX 1.0 Release from [http://prdownloads.sourceforge.net/platformx/SG2Release-1_0.tgz?download sourceforge.net] | ||
* MSB2 Patches from <tt>msp/system/kernel</tt> | * MSB2 Patches from <tt>msp/system/kernel</tt> [{{SERVER}}/files/imote2/patches/msb2_patches.tgz available here] | ||
* iMote2 Toolchain (either the normal handheld.org toolchain or perferably the [{{SERVER}}/files/imote2/toolchain/imote2_toolchain_3.4.3_binutils.tgz Mainstone version with an updated version of binutils] | * iMote2 Toolchain (either the normal handheld.org toolchain or perferably the [{{SERVER}}/files/imote2/toolchain/imote2_toolchain_3.4.3_binutils.tgz Mainstone version with an updated version of binutils] | ||
* the 2.6.14 linux kernel available from [http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.14.tar.gz kernel.org] | * the 2.6.14 linux kernel available from [http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.14.tar.gz kernel.org] | ||
Line 10: | Line 10: | ||
Assuming you placed the platformX release, patches, and kernel in the same directory you could extract them all using the following commands: | Assuming you placed the platformX release, patches, and kernel in the same directory you could extract them all using the following commands: | ||
<bash>tar zxf linux-2.6.14.tar.gz | <bash>tar zxf linux-2.6.14.tar.gz | ||
tar zxf SG2Release-1_0.tgz</bash> | tar zxf SG2Release-1_0.tgz | ||
tar zxf msb2_patches.tgz</bash> | |||
</ul> | </ul> | ||
Revision as of 03:00, 7 November 2006
Downloads
- PlatformX 1.0 Release from sourceforge.net
- MSB2 Patches from msp/system/kernel available here
- iMote2 Toolchain (either the normal handheld.org toolchain or perferably the Mainstone version with an updated version of binutils
- the 2.6.14 linux kernel available from kernel.org
Steps
Extracting all the Images
-
Assuming you placed the platformX release, patches, and kernel in the same directory you could extract them all using the following commands:
<bash>tar zxf linux-2.6.14.tar.gz
tar zxf SG2Release-1_0.tgz
tar zxf msb2_patches.tgz</bash>
Patch the kernel
-
First we apply the SG2 release patches then we apply our MSB2 patches:
<bash>cd linux-2.6.14
echo "Applying SG2 Patches"
patch -p1 < ../SG2Release-1_0/src/patch-2.6.14-sg2-10
echo "Applying MSB2 Patches"
patch -p1 < ../msp-linux-2.6.14-pxa-mmc.patch
patch -p1 < ../msp-linux-2.6.14-uart.patch
patch -p1 < ../msp-linux-2.6.14-sd-detect.patch</bash>
Configure/Compile the kernel
-
At this point you can either use the normal SG2 configuration or apply the msb2 standard configuration. Be sure to add your toolchain to your path, if you've installed it in /usr/local/arm/3.4.3_binutils you could do something like this:
<bash>export PATH=/usr/local/arm/3.4.3_binutils/bin/:$PATH
export ARCH=arm
export CROSS_COMPILE=arm-linux-</bash>
- export ARCH=arm
- export CROSS_COMPILE=/usr/local/arm/3.4.1/bin/arm-linux-
- export PATH:=${PATH}:/usr/local/arm/3.4.1/bin/
SG2 Configuration
-
<bash>export ARCH=arm
export CROSS_COMPILE=arm-linux-
make stargate2_defconfig
make oldconfig</bash>
MSB2 Configuration
-
<bash>export ARCH=arm
export CROSS_COMPILE=arm-linux-
cp ../msp-linux-2.6.14-config ./.config
make oldconfig</bash>
You can then build the kernel as you normally would or perform any additional steps you want to before building. Note that if you are using the Mainstone tools instead of a 3.4.1 toolchain installed in /usr/local/arm/3.4.1 you will need to edit Makefile.platx and comment out the export lines at the top. <bash>...
... </bash>
<bash>mkdir ../kernel export INSTALL_MOD_PATH=../kernel make zImage make modules make modules_install cp ./arch/arm/boot/zImage ../kernel cd ../kernel </bash>