2.linux开发环境搭建,uboot和kernel编译,系统烧录
时间:10-02
整理:3721RD
点击:
Rico开发板套件中的DVD光盘中的资料非常丰富,这里我们主要参考01-Document\UserManual\Chinese下的Rico Board Linux 开发手册.pdf文档。
第一步,搭建交叉编译环境
拷贝04-Linux_Source\Toolchain下的gcc-linaro-arm-linux-gnueabihf-4.7-2013.03-20130313_linux.tar.bz2文件到目标机器,解压。
添加环境变量:
vim /etc/profile
export Rico_CROSSTOOL=/opt/linux-tools/gcc-linaro-arm-linux-gnueabihf-4.7-2013.03-20130313_linux/bin/arm-linux-gnueabihf-
执行source /etc/profile。或者干脆重启机器,以便环境变量起作用。
第二步,编译uboot和kernel
uboot编译过程:
拷贝04-Linux_Source\Bootloader下的u-boot-2013.10-ti2013.12.01.tar.bz2文件到目标机器,解压。
在uboot根目录下执行下面的命令,(我的uboot根目录/opt/RicoBoard/Linux_Source/Bootloader/u-boot-2013.10-ti2013.12.01)
make ARCH=arm CROSS_COMPILE=${AM4379_CROSSTOOL} distclean
make ARCH=arm CROSS_COMPILE=${AM4379_CROSSTOOL} myir_ricoboard_config
make ARCH=arm CROSS_COMPILE=${AM4379_CROSSTOOL} -j4
注意:因为我想要编译的是sd卡方式启动的系统,所以使用myir_ricoboard_config配置,而不是myir_ricoboard_qspiboot配置。uboot编译速度很快,可以在根目录下发现编译好的文件MLO和u-boot.img。
kernel编译过程:
在kernel根目录下执行下面的命令,(我的uboot根目录/opt/RicoBoard/Linux_Source/Kernel/linux-3.12.10-ti2013.12.01)
make ARCH=arm CROSS_COMPILE=${RICO_CROSSTOOL} distclean
make ARCH=arm CROSS_COMPILE=${RICO_CROSSTOOL} myir_ricoboard_defconfig
make ARCH=arm CROSS_COMPILE=${RICO_CROSSTOOL} zImage -j4
make ARCH=arm CROSS_COMPILE=${RICO_CROSSTOOL} myir_ricoboard.dtb
make ARCH=arm CROSS_COMPILE=${RICO_CROSSTOOL} modules -j4
注意dtb这条编译命令,文档上使用的dtbs,可惜我使用dtbs命令无法编译出dtb文件,改为myir_ricoboard.dtb后编译出需要dtb文件。(与02-Images文件夹下的文件名字一致)
系统烧录过程:
将开发板套件自带tf卡,插入到win7系统中可以看到下面的文件目录格式
根据文档说明,我将编译好的MLO,u-boot.img,myir_ricoboard.dtb和zImage文件直接覆盖。
插入tf到Rico-Board开发板,上电启动,我们可以看到新的uboot和kernel的log信息。对比前面的信息,我们可以确定系统更新了。
下面介绍一下开发板的引导模式设置
01-Document\UserManual\Chinese下的Rico Board 产品用户手册.pdf文件中有详细的介绍
uboot中就是根据这个开发来选择不同的启动介质,是QSPI flash,还是tf卡。
自认为对uboot,kernel和rootfs,以及系统更新已经很熟悉,就不在做这方面的工作,后面有时间尝试在自制debian系统的基础上实现lxde GUI显示。
第一步,搭建交叉编译环境
拷贝04-Linux_Source\Toolchain下的gcc-linaro-arm-linux-gnueabihf-4.7-2013.03-20130313_linux.tar.bz2文件到目标机器,解压。
添加环境变量:
vim /etc/profile
export Rico_CROSSTOOL=/opt/linux-tools/gcc-linaro-arm-linux-gnueabihf-4.7-2013.03-20130313_linux/bin/arm-linux-gnueabihf-
执行source /etc/profile。或者干脆重启机器,以便环境变量起作用。
第二步,编译uboot和kernel
uboot编译过程:
拷贝04-Linux_Source\Bootloader下的u-boot-2013.10-ti2013.12.01.tar.bz2文件到目标机器,解压。
在uboot根目录下执行下面的命令,(我的uboot根目录/opt/RicoBoard/Linux_Source/Bootloader/u-boot-2013.10-ti2013.12.01)
make ARCH=arm CROSS_COMPILE=${AM4379_CROSSTOOL} distclean
make ARCH=arm CROSS_COMPILE=${AM4379_CROSSTOOL} myir_ricoboard_config
make ARCH=arm CROSS_COMPILE=${AM4379_CROSSTOOL} -j4
注意:因为我想要编译的是sd卡方式启动的系统,所以使用myir_ricoboard_config配置,而不是myir_ricoboard_qspiboot配置。uboot编译速度很快,可以在根目录下发现编译好的文件MLO和u-boot.img。
kernel编译过程:
在kernel根目录下执行下面的命令,(我的uboot根目录/opt/RicoBoard/Linux_Source/Kernel/linux-3.12.10-ti2013.12.01)
make ARCH=arm CROSS_COMPILE=${RICO_CROSSTOOL} distclean
make ARCH=arm CROSS_COMPILE=${RICO_CROSSTOOL} myir_ricoboard_defconfig
make ARCH=arm CROSS_COMPILE=${RICO_CROSSTOOL} zImage -j4
make ARCH=arm CROSS_COMPILE=${RICO_CROSSTOOL} myir_ricoboard.dtb
make ARCH=arm CROSS_COMPILE=${RICO_CROSSTOOL} modules -j4
注意dtb这条编译命令,文档上使用的dtbs,可惜我使用dtbs命令无法编译出dtb文件,改为myir_ricoboard.dtb后编译出需要dtb文件。(与02-Images文件夹下的文件名字一致)
系统烧录过程:
将开发板套件自带tf卡,插入到win7系统中可以看到下面的文件目录格式
根据文档说明,我将编译好的MLO,u-boot.img,myir_ricoboard.dtb和zImage文件直接覆盖。
插入tf到Rico-Board开发板,上电启动,我们可以看到新的uboot和kernel的log信息。对比前面的信息,我们可以确定系统更新了。
下面介绍一下开发板的引导模式设置
01-Document\UserManual\Chinese下的Rico Board 产品用户手册.pdf文件中有详细的介绍
uboot中就是根据这个开发来选择不同的启动介质,是QSPI flash,还是tf卡。
自认为对uboot,kernel和rootfs,以及系统更新已经很熟悉,就不在做这方面的工作,后面有时间尝试在自制debian系统的基础上实现lxde GUI显示。