五 RK3568开发笔记:在虚拟机上使用SDK编译制作uboot、kernel和ubuntu镜像

前言??buildroot虽然灵活,但是基于实际情况,本身是侧重驱动和应用定制开发的只定制一次文件系统投入有点多,还不如直接ubunt自己交叉编译依赖库,做一些库的移植裁剪 。??于是本篇就使用ubuntu系统了,至于其他库自己下源码在宿主机交叉编译号后,再拷贝过去或者直接在板子上编译也行(只是会比较慢),但是意义不大,因为开发过程肯定是用宿主机,不然核心板编译太慢,在编译上会花费不少可以省去的时间 。
 为什么选择ubuntu??核心板方案上已经提供适配好的基础uboot和kernel,这个时候不同文件系统 uboot和内核时一样的,做驱动差别也不大,而且笔者做移植交叉编译应用和库都较多,且不同平台都做,直接裁剪移植,所以对于笔者来说,选择ubuntu是更好的方式,缺什么下源码三部曲交叉编译,而使用buildroot构建势必有点绕远路,所以选择了ubuntu,后续对ubuntu进行裁剪,如去掉桌面,然后开发移植库和应用 。
 RK系列SDK简要介绍目录结构??一个通用 Linux SDK (RV系类的sdk没有对工程目录包含有 buildroot、 debian、 app、 kernel、 u-boot、 device、 docs、 external等目录 。??以下是RK系类的目录分类:

  • app:存放上层应用 app,主要是 qcamera/qfm/qplayer/settings 等一些应用程序 。
  • buildroot:基于 buildroot (2018.02-rc3) 开发的根文件系统 。
  • debian:基于 debian 10 开发的根文件系统,支持部分芯片 。
  • device/rockchip:存放各芯片板级配置和 Parameter 文件,以及一些编译与打包固件的脚本和预备文件 。
  • docs:存放芯片模块开发指导文档、 平台支持列表、 芯片平台相关文档、 Linux 开发指南等 。
  • IMAGE:存放每次生成编译时间、 XML、 补丁和固件目录 。
  • external:存放第三方相关仓库,包括音频、 视频、 网络、 recovery 等 。
  • kernel:存放 kernel 4.4 或 4.19 开发的代码 。
  • prebuilts:存放交叉编译工具链 。
  • rkbin:存放 Rockchip 相关的 Binary 和工具 。
  • rockdev:存放编译输出固件 。
  • tools:存放 Linux 和 Windows 操作系统环境下常用工具 。
  • u-boot:存放基于 v2017.09 版本进行开发的 uboot 代码 。
  • yocto:基于 yocto gatesgarth 3.2 开发的根文件系统,支持部分芯片??相对于以上的,对比下RV1109&RV1126的SDK目录,如下图:??
    五 RK3568开发笔记:在虚拟机上使用SDK编译制作uboot、kernel和ubuntu镜像

    文章插图
Ubuntu??Ubuntu 是一个流行的 Linux 发行版,是基于 Debian 的 unstable 版本加强而来,以“最好的 Linux 桌面系统” 而闻名,近些年 Ubuntu 也推出了 Ubuntu Enterprise Linux, 在企业 Linux 应用市场占有率也有较大提高 。
  • 优点: 技术支持较好,用户界面友好,硬件的兼容性好,采用基于 Deb 的 ATP 包管理系统 。
  • 缺点: 技术支持和更新服务是需要付费的, 服务器软件生态系统的规模和活力方面稍弱。??(参考厂家手册)
 源码准备??从开发版提供的资料中拿到uboot,kernel,rootfs: