第六章:其他链接
/AndroidPortingOnRealTarget
注,根据网友的实践,发现一些错误,现纠正如下:
1,第二章: 编译kernel 2:使用android的toolchain进行linux的编译 对于不修改boot_stream的人来说有问题。
正确步骤应该是
a) 修改ltib配置成使用android的编译器
1) ./ltib -m config ,修改Toolchain选项为Custom, 修改Enter the custom toolchain path为(/home/lancer/freescale/android/prebuilt/linux-x86/toolchain/arm- eabi-4.4.0),修改 Enter the toolchain prefix.为(arm-eabi-)。
2) 去掉uboot支持,android上编译器编不过uboot
3) 在Package Selection中去掉所有包。注意包括去掉boot_stream,因为android的arm-toolchain不能将它编译通过。
b) ./ltib开始编译,最后在rootfs/boot下生成bootable_kernel, linux.config, System.map, uImage, vmlinux, zImage,此时内核即生成了,将被boot_stream使用。
c) 配置boot stream。./ltib -m prep -p boot_stream.spec ,如果有错误是因为rpm/BUILD/下已经存在了imx-bootlets-src-10.05.02,将这个移除。
d) cd rpm/BUILD; mv imx-bootlets-src-10.05.02 imx-bootlets-src-10.05.02-mx233; cd imx-bootlets-src-10.05.02-mx233; 文件夹改名目的是防止以后不小心被ltib删除。
e) 编译boot stream。因为android的arm-toolchain不能编译,所以我们使用ltib自带的4.1.2的编译器编译boot- stream。
1) 设置编译环境
export PATH=$PATH:/opt/freescale/usr/local/gcc-4.1.2-glibc-2.5-nptl-3/arm-none-linux-gnueabi/bin:/opt/freescale/ltib/usr/bin
export CROSS_COMPILE=arm-none-linux-gnueabi-
2) 将zImage从rootfs/boot拷贝到imx-bootlets-src-10.05.02-mx233 下
cp ../../../rootfs/boot/zImage .
3) 开始编译
make
4) 虽然错误退出,但原因是我们没有编译uboot。仍然可以看到本目录出现imx23_linux.sb。这就是我们所需要的。
d) 到这一步之后,默认的内核已经生成了。