瑞芯微Rockchip开发者社区
直播中

王飞

7年用户 1155经验值
私信 关注
[经验]

手把手移植基于2023.02-rc3版本的Buildroot

  一、编译环境
  我的 PC 机用的是 Ubuntu 18.04,执行以下命令安装必要工具:
  sudo apt install gcc build-essential bison flex gettext tcl sharutils libncurses-dev zlib1g-dev
  exuberant-ctags g++ texinfo patch vim libtool bc git python3
  二、Git环境
  配置好自己的邮箱与姓名:
  git config --global user.name “userName” //你的用户名
  git config --global user.email “email address” //你的邮箱地址
  三、克隆源代码
2.jpg
  使用 git tag 命令可以查看版本情况:
  git tag
  把页面翻到最底下,可以看到当前最新版本为 2023.02-rc3:
2.jpg
  切换到 2023.02-rc3分支:
  git checkout -b 2023.02-rc3 2023.02-rc3
  四、编译源代码
  在主线 Buildroot 中,并没有发现 rk3399 相关的 config 配置文件,但是在历史提交中,我发现被删除掉了。
  被删掉的原因是因为编译不过:
2.jpg
  将其 git revert,然后编译:
  git revert 6ade5915c1d65b7653125d1cf6952efdd6113806
  make roc_pc_rk3399_defconfig
  make
  第一个编译错误:
2.jpg
  打印说一个 arm-trusted-firmware 的源代码编译不过,查看一下原因:
2.jpg
  看样子是指定的这个 arm-trusted-firmware 版本存在问题,将其改为主线版本(去掉定制版本):
  diff --git a/configs/roc_pc_rk3399_defconfig b/configs/roc_pc_rk3399_defconfig
  index ae7cf19a80..3ee8722368 100644
  --- a/configs/roc_pc_rk3399_defconfig
  +++ b/configs/roc_pc_rk3399_defconfig
  @@ -7,9 +7,6 @@ BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_4=y
  # Firmware
  BR2_TARGET_ARM_TRUSTED_FIRMWARE=y
  -BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_GIT=y
  -BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_URL
  -BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_VERSION=“11a0a46a899fcc3b1fdb214b382f3d7495d88eca”
  BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM=“rk3399”
  BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL31=y
  BR2_TARGET_ARM_TRUSTED_FIRMWARE_NEEDS_ARM32_TOOLCHAIN=y
  重新编译,第二个编译错误如下:
2.jpg
  看来是缺少board/firefly/roc-rk3399-pc/post-build.sh这个文件,通过查看历史版本也是被删除掉了:
2.jpg
  将其 git revert,然后编译。
  一分钟不到编译完成,看来那个脚本是打包使用的:
2.jpg
  看样子sdcard.img就是最终打包的 Buildroot 固件。
  五、烧录固件
  准备一张 TF卡,TF 卡接上读卡器,执行以下命令查看生成的设备节点:
  dmesg | tail
  我的设备节点是/dev/sdd,把sdcard.img烧录 dd 到 TF 卡:
  sudo dd if=sdcard.img of=/dev/sdd conv=notrunc
  把 TF 卡接入到 ROC-RK3399-PC Pro TF卡槽,上电启动系统。
  如果是使用 Windows 系统,也可以使用 Etcher 工具来烧录。
  最后因为 kernel dts 使用的是早期的 ROC-RK3399-PC(与 ROC-RK3399-PC Pro 存在某些硬件差异),有些驱动可能是不正常。


原作者:Neutionwei


更多回帖

发帖
×
20
完善资料,
赚取积分