RK3308编译

RK3308编译

由于工作原因选择瑞芯微的CPU,型号为RK3308B-S,购买了firefly调试板,进行前期调试。

1、环境搭建

RK3308的SDK尽量在Ubuntu 18.04系统环境下进行开发,若使用其它系统版本,可能需要对编译环境做相应调整。Ubuntu 安装方法见之前的博文有提到过。

1、安装依赖包

sudo apt-get install repo git ssh make gcc libssl-dev liblz4-tool expect g++ patchelf chrpath gawk texinfo chrpath diffstat binfmt-support qemu-user-static live-build bison flex fakeroot cmake gcc-multilib g++-multilib unzip device-tree-compiler python-pip ncurses-dev python-pyelftools git-core gnupg gperf build-essential zip curl zlib1g-dev libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev ccache libgl1-mesa-dev libxml2-utils xsltproc libfile-which-perl sed binutils bash patch gzip bzip2 perl tar cpio python rsync file bc libmpc3 pkg-config tree


sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install pv libc6:i386 libncurses5:i386 libstdc++6:i386 git vim gawk libncurses5-dev libncursesw5-dev jacksum build-essential




#注:如果编译报错,请根据报错提示安装对应依赖

2、SDK同步

.repo/repo/repo sync -l
.repo/repo/repo sync -c

3、SDK下载

  1. 瑞芯微官方提供。
  2. firefly官网下载:https://wiki.t-firefly.com/zh_CN/Core-3308Y/prepare_compile_linux.html

2、SDK编译

1、编译前配置

编译前需要根据不同的版型选择对应的配置文件,配置文件路径:/device/rockchip/rk3308。在SDK根目录下进行配置:

./build.sh xxxxxx.mk

2、全自动编译

全自动编译会执行所有编译、打包操作,直接生成 RK 固件。
在SDK根目录下编译:

./build.sh

编译完成后,固件存放路径:

/rockdev/
每次全编译结果都会存储起来,存放路径:/IMAGE/各个版本

rockdev下文档说明:

  • boot.img:linux内核固件;
  • MiniLoaderAll.bin:loader固件;
  • misc.img:
  • oem.img:
  • parameter.txt:分区表,配置一些系统参数,比如固件版本,存储器分区信息等;
  • recovery.img:
  • rootfs.img:文件系统;
  • trust.img:
  • uboot.img:u-boot固件;
  • update.img:整体打包的固件;
  • userdata.img:用户数据固件;

3、部分编译

1、编译U-Boot

1、在SDK根目录下,执行以下命令:

./build.sh uboot

2、进入u-boot文件夹下,执行以下命令

./make.sh 配置文件
#配置文件:
#查看xxxxxx.mk文件下RK_UBOOT_DEFCONFIG对应的配置文件,路径为:/u-boot/configs/xxxxxx_defconfig

以上两种方式都可以。
编译生成文件路径:
/u-boot/

  • rk3308_loader_uart4_v2.06.134.bin(MiniLoaderAll.bin)
  • trust.img
  • uboot.img

2、其余的部分编译

其余的编译没有使用过,除了前期调试单独编译u-boot部分,其余都是全自动编译。

3、SDK编译异常

编译完成后(没有报错的情况下),会出现提示如下内容,并不会直接跳出进程,弹出终端命令行输入框,这时输入q即可,表示退出。

Generating new image, please wait...
Writing head info...
Writing boot file...
Writing firmware...
Generating MD5 data...
MD5 data generated successfully!
New image generated successfully!
Making update.img OK.
Running build_updateimg succeeded.
Generate patch for buildroot done
Generate patch for device/rockchip done
Generate patch for kernel done
Generate patch for u-boot done
Saved manifest to /home/rxin/linux/rockchip/provide_rock/source_code/IMAGE/RK3308BS-EVB-AMIC-V11-AARCH32_20221108.1903_RELEASE_TEST/m
(END)

注:以上是我的一些记录和遇到的问题,以及解决方法,如果有不对的地方,请各位大佬指出。

注:以上编译如果无法解决问题,可参考firefly的wiki教程:https://wiki.t-firefly.com/zh_CN/Core-3308Y/ubuntu_compile.html

posted @ 2022-11-08 19:08  Rxin  阅读(11)  评论(0)    收藏  举报