前提:
①.已有u-boot源码,要求包含配置文件;
②.已有kernel源码,要求包含配置文件(此处使用了imx_v7_defconfig)、imx6solo_RIoTboard.dts (用于生成dtb文件)
②.安装了LTIB,此处将借用LTIB的工具链(?);
③.采用的开发板为RIoTboard iMX6 Solo,其它开发板借鉴。
一、编译u-boot:
cd到u-boot源码根目录:
1、export PATH=/opt/freescale/usr/local/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin/:$PATH
2、export ARCH=arm
3、export CROSS_COMPILE=arm-none-linux-gnueabi-
4、make mrproper
5、make mx6solo_RIoTboard_config
6、make
==》u-boot 编译成功,生成了u-boot.bin,但下载需要u-boot.imx;
7、./tools/mkimage -n board/freescale/mx6solo_RIoTboard/mx6solo_RIoTboard.cfg -T imximage -e 0x10008000 -d u-boot.bin u-boot.imx
==》生成了u-boot.imx,可以用于下载。
二、编译kernel:
需要先安装lzop:sudo apt-get install lzop
cd到kernel源码根目录:
1、export PATH=/opt/freescale/usr/local/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin/:$PATH
2、export ARCH=arm
3、export CROSS_COMPILE=arm-none-linux-gnueabi-
(忽然发现不需要上面3步有时也行)
4、make imx_v7_defconfig
5、make uImage LOADADDR=0x10008000
==》生成了uImage,可用于下载。
补充:
①.可使用make menuconfig来配置内核;
②.安装完LTIB后第一次使用make需要先运行一次./ltib生成/opt/freescale/usr目录。
三、生成dtb文件:
接上:
6、make imx6solo_RIoTboard.dtb
==》生成.dtb文件。
之后的补充:
1、make uImage时的错误:
LZO arch/arm/boot/compressed/piggy.lzo
/bin/sh: 1: lzop: not found
make[2]: *** [arch/arm/boot/compressed/piggy.lzo] 错误 1
make[1]: *** [arch/arm/boot/compressed/vmlinux] 错误 2
make: *** [uImage] 错误 2
解决:
①.安装lzo:
wget http://www.oberhumer.com/opensource/lzo/download/lzo-2.06.tar.gz
./configure --enable-shared
make
make install
②.安装lzop:
wget 'http://www.lzop.org/download/lzop-1.03.tar.gz'
./configure
make
make install
以后这种能轻易搜到解决方案的问题就不写了。