host os:ubuntu 12.04
develop board: mars board i.mx6D
一、 安装git
$sudo apt-get install git二、 获取交叉编译器
$cd ~
$mkdir work
$git clone git://github.com/embest-tech/platform_prebuilt.git
其中~/work为交叉编译器,u-boot源码,linux源码的存放目录
三、 获取u-boot源码
$git clone git://github.com/embest-tech/uboot-imx.git
四、 编译u-boot
$export ARCH=arm
$export CROSS_COMPILE=~/work/platform_prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi-
$make distclean
$make mx6q_marsboard_config
$make
或在~/.bashrc中增加:
export PATH=~/work/platform_prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin:$PATH
export ARCH=arm
export CROSS_COMPILE=arm-eabi-
且重载.bashrc
$source ~/.bashrc
然后执行编译:
$make distclean
$make mx6q_marsboard_config
$make
如编译过程没有错误,那么会在u-boot目录下生成了u-boot.bin
五、获取linux源码
$git clone git://github.com/embest-tech/kernel_imx.git
六、设置环境变量和编译
导出目录~/work/uboot-imx/tools,使用make uImage编译生成的内核只能由uboot引导,编译时会用到mkimage工具,该命令在uboot-imx/tools目录下。
如该路径如没有加入环境变量中,会出现"mkimage" command not found的错误。
$export PATH=~/work/uboot-imx/tools:$PATH
$cd ~/kernel_imx
$echo $ARCH && echo $CROSS_COMPILE
$make imx6_marsboard_defconfig
$make uImage
如编译无错误,则在arch/arm/boot/ 下产生uImage内核文件