kernel source code
name of file:linux-3.0.35--svn*.tar.xz
configuration of compifer environment
1)create working directory
create ~/my-imx6 as working directory
$ mkdir ~/my-imx6
create ~/my-imx6/02_source/imx_3.0.35_4.1.0 as source code directory
$ mkdir ~/my-imx6/02_source/imx_3.0.35_4.1.0 -p
create ~/my-imx6/03_tools as tool directory
2)copy source code package to the development host
do it in this step in your own way。
tip:this step is to copy “02_source code”from network disk to “~/my-imx6/02_source/imx_3.0.35_4.1.0”in development host,and copy “03_tool/toolchain”to “~/my-imx6/03_tools”。in development host
Decompress source code package
1)decompress u-boot source code and kernel source code
$ cd ~/my-imx6/02_source/imx_3.0.35_4.1.0
$ tar xf u-boot-2009.08--svn*.tar.xz
$ tar xf linux-3.0.35--svn*.tar.xz
2)decompress cross compiler tool
$ cd ~/my-imx6/03_tools/
$ tar jxf gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12.tar.bz2
1)list of updated source
$ sudo apt-get update
after update,it will look like below:
2)install aptitude package management tool and ia32-libs
tips:if Linux of compiler host is 32bit,you can skip this step。
$ sudo apt-get –y install aptitude
$ sudo aptitude –y install ia32-libs
tips:following is the screenshots with re-execution of installation command after installation of aptitude and ia32-libs is finished。
3)install mkimage tool
$ sudo apt-get -y install uboot-mkimage
tips:following is the screenshots with re-execution of installation command after installation of mkimage tool is finished。
4)install ncurses-dev
instruction:make menuconfig is dependent on it。
$ sudo aptitude -y install ncurses-dev
tips:following is the screenshots with re-execution of installation command after installation of ncurses-dev tool is finished。
1)write platform information to a new configured file
$ echo "export ARCH=arm" > ~/my-imx6/03_tools/myimx6_3035_build_env
2)write compiler tool chain path to configured file
$ cd ~/my-imx6/03_tools/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin/
$ sed -i "\$a IMX6_GCC462_PATH=$PWD" ~/my-imx6/03_tools/myimx6_3035_build_env
$ sed -i "\$a export CROSS_COMPILE=\$IMX6_GCC462_PATH/arm-none-linux-gnueabi-" ~/my-imx6/03_tools/myimx6_3035_build_env
3)view configured file
$ cat ~/my-imx6/03_tools/myimx6_3035_build_env
note:if an error occurs in any step, need to delect ~/my-imx6/03_tools/myimx6_3035_build_env ,and operate again all steps of this segment。
compile u-boot
$ cd ~/my-imx6/02_source/imx_3.0.35_4.1.0/u-boot-2009.08/
$ source ~/my-imx6/03_tools/myimx6_3035_build_env
$ echo $ARCH
$ echo $CROSS_COMPILE
tips:you can see that ARCH和CROSS_COMPILE is configured
$${CROSS_COMPILE}gcc –v
tips:you can see version information of cross compiler tool shown on terminal after execution of command.as below:
evaluation board main model) | CPU type-memory capacity | corresponding u-boot configuration |
---|---|---|
MY-IMX6-EK200 | 6Q(quad. core)- 1G | myimx6ek200_6q_config |
6Q(quad core)- 2G | myimx6ek200_6q_2g_config | |
6U(dual core tile)- 1G | myimx6ek200_6u_config | |
6S(single core)- 512M | myimx6ek200_6s_config | |
MY-IMX6-EK314 | 6Q(quad.core)- 1G | myimx6ek314_6q_config |
6Q(quad.core)- 2G | myimx6ek314_6q_2g_config | |
6U(dual core tile)- 1G | myimx6ek314_6u_config | |
6S(single core)- 512M | myimx6ek314_6s_config |
$ make
Tips:To speed up the compilation,add "-j4" after make.The Linux host used to compile is dual-core ,4 threads .So "-j" is followed by 4, which takes 4 threads to compile. The number behind "-j" is allocated based on system resources,but It should not exceed the maximum threads the host support。
tips:u-boot compilation process will take a few minustes or so。
$ cd ~/my-imx6/02_source/imx_3.0.35_4.1.0/linux-3.0.35/
$ source ~/my-imx6/03_tools/myimx6_3035_build_env
$ echo $ARCH
$ echo $CROSS_COMPILE
tips:you can see that ARCH和CROSS_COMPILE is configured
$ ${CROSS_COMPILE}gcc –v
tips:you can see version information of cross compiler tool shown on terminal after execution of command.as below:
instructions:configuration files used for MY-IMX6-EK200 seires of evaluation board and MY-IMX6-EK314 series of evaluation board is myimx6_defconfig
$ make myimx6_defconfig
$ make uImage
instruction:4 threads compilation is used in the screenshots。
arch/arm/boot/uImage is the target file through compilation,you can view the file information with ls command。
$ make
instruction:4 threads compilation is used in the screenshots。
.ko file of each module is in the directory where code is located after compilation ,you can find the module compiled with find command after compilation,refering command as below:
$ find -name *.ko
1)create application directory
$ mkdir ~/my-imx6/02_source/application/ -p
$ cd ~/my-imx6/02_source/application/
2) write application(here take hello.c as example
create hello.c and write following code and save:
int main(int argc, char **argv)
{
printf("Hello, MYZR!\n");
return;
}
$ source ~/my-imx6/03_tools/myimx6_3035_build_env
$ echo $ARCH
$ echo $CROSS_COMPILE
tips:you can see that ARCH和CROSS_COMPILE is configured
$ ${CROSS_COMPILE}gcc –v
tips:you can see version information of cross compiler tool shown on terminal after execution of command.as below:
2) compile
$ ${CROSS_COMPILE}gcc hello.c -o hello.out
note:the above commands contain charater“$”,e.g“${CROSS_COMPILE}gcc”,which is the environment variable generated when referring to our source。
3) view type of target file
$ file hello.out
you can get the property of target file hello.out。
1)create directory of file system and enter
$ mkdir ~/my-imx6/04_rootfs/ -p
$ cd ~/my-imx6/04_rootfs/
2)copy file system to ~/my-imx6/04_rootfs/directory
this step sbould be done in your own way
3)decompress file system to specified directory
$ mkdir rootfs
$ sudo tar jxf rootfs-linux.tar.bz2 -C rootfs
$ cp ~/my-imx6/02_source/application/hello.out rootfs/app_test/
5)re-pakcage file system
$ rm -rf rootfs-linux.tar.bz2
$ cd rootfs/
$ sudo tar cjf ../rootfs-linux.tar.bz2 *
prepare .ko file of module needed,as to other operations please refer to“add application to file system”。
If you would like to you know more about our products, please visit www.myzr.com.cn for email to enquiry@myzr.com.cn.