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)】
|