Firefly开源社区

打印 上一主题 下一主题

[技术讨论] 【ROC-RK3568-PC开发板试用体验】Linux系统构建-----闲话多,可倍速

【ROC-RK3568-PC开发板试用体验】Linux系统构建-----闲话多,可倍速

发表于 2022-9-13 17:24:42      浏览:5251 | 回复:0        打印      只看该作者   [复制链接] 楼主
本帖最后由 Firefly搬运工 于 2022-9-13 17:24 编辑

LinuxSDK,Rockchip提供了两种SDK,Firefly也提供了两种,分别是Buildroot和yocto。由于buildroot系统构建比较简单,同时Firefly社区支持也比较给力,本文就说说yocto吧(视频上有先说buildroot



yocto SDK目录如下:

  1. ├── build                     // 用户配置文件和工程构建输出目录
  2. ├── conf
  3. ├── meta-browser              // Web浏览器配方
  4. ├── meta-clang                    // 用来构架编译器的LLVM框架系统
  5. ├── meta-openembedded         // 用来交叉编译,安装和打包的元数据
  6. ├── meta-poky -> poky/meta-poky       // Poky发行版本的配置数据
  7. ├── meta-python2              // Python2配方
  8. ├── meta-qt5                  // Qt5官方推出的Qt5配方
  9. ├── meta-rockchip             // Rockchip层,包含Rockchip芯片BSP相关配方
  10. ├── meta-rust                 // Rust与Cargo的OpenEmbedded/Yocto层
  11. └── poky                      // 用来构建Linux的构建系统
复制代码

Yocto的工程就是这么简单,仅仅只由这几个文件夹构成。了解过yacto的都知道,yacto由许许多多的配方构成,它通过配方获取软件源码编译下载构建并解决依赖,正因为如此,也造就了yacto不如buildroot容易入门的现状,工程虽小,但是编译的过程中需要消耗比较大的空间。
buid目录下存放着,当前SDK存在的所有构建方案,如下:
  1. bblayers.conf  rk3328     rockchip-px30-evb.conf            rockchip-rk3288w-evb.conf         rockchip-rk3326-evb.conf                 rockchip-rk3566-evb.conf  templateconf.cfg
  2. include        rk3399     rockchip-px3se-evb.conf           rockchip-rk3308-evb-aarch32.conf  rockchip-rk3328-evb.conf                 rockchip-rk3568-evb.conf
  3. local.conf     rk3399pro  rockchip-rk3288-evb-act8846.conf  rockchip-rk3308-evb.conf          rockchip-rk3399-sapphire-excavator.conf  rockchip-rk3588-evb.conf
  4. rk3288         rk356x     rockchip-rk3288-evb.conf          rockchip-rk3326-evb-32.conf       rockchip-rk3399pro-evb.conf              sanity.conf
复制代码

可以看到在rockchip平台,该SDK当前支持的构建平台,其中,所有的方案均以local.conf文件所设置的信息为准。
如果存在多个方案,可以在当前文件夹下多个方案文件夹,每个文件夹下均还有自己的方案对应的conf/local.conf信息文件。
在当前SDK平台中,没有这样做,所以选择方案需要使用ln -sf **** local.conf文件来进行方案的选择。

选择好方案之后,目前我选择的方案是这样的:
  1. lrwxrwxrwx 1 jie jie 23 Aug 24 20:46 local.conf -> rk356x/roc-rk3568-pc.mk
复制代码

选择好之后,开始构建
  1. source oe-init-build-env
  2. bitbake core-image-minimal
复制代码

我的构建开始信息:


使用上述构建参数构建出来的yacto系统仅仅只是一个能让设备启动的小镜像,没有启动界面。他的配置文件放在:meta-openembedded/meta-xfce/recipes-core/images/core-image-minimal-xfce.bb
可以查看:meta-rockchip/README.md 可以看到rockchip对自己命令的支持。
简单列举一下支持的其他命令:
  1. core-image-minimal : 一个能够让设备启动的小镜像,它无界面

  2. core-image-sato : 一个支持Sato的镜像,它支持带有Sato主题和Pimlico应用程序的X11,还包含终端、编辑器和文件管理器,它是一个基于GNOME Mobile的用户界面环境,使用matchbox作为窗口管理器

  3. meta-toolchain:一个可编译出gcc交叉工具链安装程序的选项,生成的文件位于目录<path/to/yocto>/build/tmp/deploy/sdk,主要输出文件为.sh安装文件

  4. meta-ide-support:一个用于确保目录<path/to/yocto>/build包含有IDE工具链包的选项,生成的文件为environment-setup-xxxxxx-neon-poky-linux-gnueabi,位于目录<path/to/yocto>/build/tmp,直接用soucre命令运行即可
复制代码

更详细的可以查看yocto的配置文档:
yocto中编译出来的文件:
在build中:
  1. ├── abi_version
  2. ├── buildstats
  3. ├── cache
  4. ├── deploy                             //生成的镜像文件
  5. ├── hosttools                          //构建工具,当然还没有生成
  6. ├── log                                //过程的log
  7. ├── pkgdata                 
  8. ├── qa.log
  9. ├── saved_tmpdir
  10. ├── sstate-control
  11. ├── stamps
  12. ├── sysroots                           //生成的产品根文件系统
  13. ├── sysroots-components
  14. ├── sysroots-uninative
  15. ├── uboot_img_prefix.tmp
  16. ├── work                               //编译过程中生成的文件 第三方软件包就放在这里
  17. └── work-shared                        //编译过程中的源文件依赖 kernel 就放在这里
复制代码

在build文件夹中可以使用如下命令快捷编译相关的工具:
  1. 编译ubot
  2. bitbake virtual/bootloader
  3. 编译kernel
  4. bitbake virtual/kernel
  5. 编译工具或者软件包
  6. bitbake xxxxxx                      // xxxxx为配方 bb 文件之前的部分

  7. 具体可以使用
  8. bitbake s 查看当前系统中都支持构建哪些包
复制代码

如果没有自己想要的软件包,可以在yacto官网上下载自己需要的配方,添加进yacto中,再次查看是否添加进来。
下载软件包的连接:OpenEmbedded Layer Index - recipes




回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

友情链接 : 爱板网 电子发烧友论坛 云汉电子社区 粤ICP备14022046号-2
快速回复 返回顶部 返回列表