1 准备源码包 1.1 3.10.79版本代码 1.1.1 u-boot源码 文件名:rk32-myzr_uboot_2014.10_201803028.tar.bz2 1.1.2 kernel源码文件名:rk32-myzr_kernel_3.10_201803028.tar.bz2 1.1.3 交叉编译工具文件名:gcc-arm-eabi-4.6.tar.bz2 2 配置编译环境 2.1 准备源码 2.1.1 准备源码包1)创建工作目录
创建 ~/my-rk3288 作为工作目录 $ mkdir ~/my-rk3288
创建 ~/my-rk3288/02_source 作为源码目录 $ mkdir ~/my-rk3288/02_source
创建 ~/my-rk3288/03_tools 作为工具目录 $ mkdir ~/my-rk3288/03_tools
2)复制源码包到开发主机中
这一步骤自己采取相应的方式进行。
提示:这里将网盘中“02_源码”复制到Linux开发主机的“~/my-rk3288/02_source”,将网盘中“03_工具”复制到Linux开发主机的“~/my-rk3288/03_tools”,将网盘中“01_应用”复制到Linux开发主机的“~/my-rk3288/01_application”。 2.1.2 解压源码包1)解压u-boot源码和内核源码 $ cd ~/my-rk3288/02_source
$ tar jxf rk32-myzr_uboot_2014.10_201803028.tar.bz2
$ tar jxf rk32-myzr_kernel_3.10_201803028.tar.bz2
2)解压交叉编译工具 $ cd ~/my-rk3288/03_tools/
$ tar jxf gcc-arm-eabi-4.6.tar.bz2
2.2 开发环境配置 2.2.1 安装需要的包1)更新源列表 $ sudo apt-get update
更新完成后如下图所示: 2)安装aptitude包管理工具和ia32-libs
提示:如果编译主机的Linux是32位的,可以跳过此步骤。 · 安装aptitude包管理工具 $ sudo apt-get –y install aptitude
· 使用aptitude安装ia32-libs $ sudo aptitude –y install ia32-libs
提示:下图为安装过aptitude和ia32-libs后,再次执行安装命令的截图。
3)安装mkimage工具
$ sudo apt-get -y install uboot-mkimage
提示:下图为安装过mkimage工具后,再次执行安装命令的截图。
4)安装ncurses-dev
说明:make menuconfig对其具有依赖性质。
$ sudo aptitude -y install ncurses-dev 提示:下图为安装过ncurses-dev工具后,再次执行安装命令的截图。
3 编译u-boot 3.1 进入u-boot源码目录 $ cd ~/my-rk3288/02_source/rk32-myzr_uboot_2014.10/
3.2 使配置文件生效 · 执行source命令 $ source ~/my-rk3288/03_tools/gcc-arm-eabi-4.6-env
· 查看编译配置 $ echo $ARCH
$ echo $CROSS_COMPILE 提示:可看到ARCH和CROSS_COMPILE被设置
· 验证交叉编译工具配置 $${CROSS_COMPILE}gcc –v
提示:执行命令后可以看到终端显示出交叉编译工具的版本信息。如下图:
3.3 清除u-boot配置 $ make distclean
3.4 u-boot配置 · 评估板及对应的 u-boot 编译配置: · MY-RK3288-EK314-2G配置示例: $ make rk3288_defconfig
3.5 编译 · 执行编译 $ make
提示:这里为了提高编译速度,在make后面加了“-j4”。这里编译的Linux主机是双核4线程的,所以“-j”后面用了4,也就是采用4线程编译。“-j”后面的数字可以根据系统资源分配,但是不应该超过编译主机最大支持的线程数。
· 编译完成 提示:u-boot编译过程大概需要十几秒钟的时间。
3.6 目标文件 编译完成后通过ls命令即可看到编译得到的目标文件RK3288UbootLoader_V2.30.10.bin
$ ls
4 编译内核 4.1 进入内核源码目录 $ cd ~/my-rk3288/02_source/rk32-myzr_kernel_3.10/
【下章节为明远智睿MY-RK3288-EK314 L31079 编译手册(2)】
|