TS-4900 Kernel Compile Guide: Difference between revisions

From embeddedTS Manuals
No edit summary
No edit summary
Line 30: Line 30:
git clone https://github.com/embeddedarm/linux-3.10.17-imx6.git
git clone https://github.com/embeddedarm/linux-3.10.17-imx6.git
cd linux-3.10.17-imx6
cd linux-3.10.17-imx6
git checkout imx_3.10.53_1.1.0_ga


# If you are using the 64-bit toolchain:
# If you are using the 64-bit toolchain:

Revision as of 11:53, 13 March 2015

This board runs a 3.10 kernel hosted on github.

The kernel can be rebuilt by cross compiling from an X86/X86_64 Linux. Our default kernels are rebuilt using the toolchains built by Yocto. You can download the appropriate cross toolchain for your Linux system here:

# X86_64
chmod a+x poky-systemd-eglibc-x86_64-meta-toolchain-qt5-cortexa9hf-vfp-neon-toolchain-1.6.1.sh
sudo ./poky-systemd-eglibc-x86_64-meta-toolchain-qt5-cortexa9hf-vfp-neon-toolchain-1.6.1.sh

# i686
chmod a+x poky-systemd-eglibc-i686-meta-toolchain-qt5-cortexa9hf-vfp-neon-toolchain-1.6.1.sh
sudo ./poky-systemd-eglibc-i686-meta-toolchain-qt5-cortexa9hf-vfp-neon-toolchain-1.6.1.sh

This will ask for the install directory for the toolchain. You can choose another directory than the default, but the following instructions will assume the defaults.

This also requires several tools from your distribution. For Ubuntu/Debian:

sudo apt-get install git build-essential lzop u-boot-tools libncursesw5-dev

Once those are installed:

git clone https://github.com/embeddedarm/linux-3.10.17-imx6.git
cd linux-3.10.17-imx6

# If you are using the 64-bit toolchain:
export CROSS_COMPILE=/opt/poky-systemd/1.6.1/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-
# If you are using 32-bit toolchain:
#export CROSS_COMPILE=/opt/poky-systemd/1.6.1/sysroots/i686-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-
export ARCH=arm
export LOADADDR=0x10008000

make ts4900_defconfig

# Make any changes in "make menuconfig" or driver modifications, then compile
make && make uImage

To install this to a board you would use a USB SD reader and plug in the card. Assuming your Linux rootfs is all on "sdc1":

export DEV=/dev/sdc1
sudo mount "$DEV" /mnt/sd &&
sudo cp arch/arm/boot/uImage  /mnt/sd/boot/uImage && \
sudo cp arch/arm/boot/dts/imx6*ts*.dtb /mnt/sd/boot/ && \
INSTALL_MOD_PATH="/mnt/sd" sudo -E make modules_install && \
INSTALL_HDR_PATH="/mnt/sd" sudo -E make headers_install && \
sudo umount /mnt/sd/ &&
sync