专栏底层软件J5如何单独编译uboot/kernel, 如何单刷kernel后正常开机

J5如何单独编译uboot/kernel, 如何单刷kernel后正常开机

已解决
zhuqingliang2022-11-23
114
5

用户您好,请详细描述您所遇到的问题。

1.硬件获取渠道:购买

2.当前系统镜像版本:

3.当前天工开物版本:

4.问题定位:

1. 单编uboot/kernel 失败 : ./build.sh -e uboot

2 单刷uboot/kernel 不能开机

5.开发的demo/案例:

6.需要提供的解决方案:

1. 帮忙提供单编指令

2.提供单刷uboot/kernel 也能正常开机的 修改方案

底层软件
征程5
评论3
0/1000
  • 船到桥头
    Lv.1

    您好,下面回答希望可以提供些思路

    第一个问题:

    单独编译uboot:uboot目录编译uboot后在根目录签名uboot:cd uboot;./build.sh;cd ..;make key_management。镜像位置在out/target/product/packages/uboot.img.bin
    单独编译kernel:kernel目录编译:cd kernel;./build.sh。镜像位置在out/target/boot/boot.img

    第二个问题:

    uboot镜像支持单独刷新的。内核命令行执行fdisk获取uboot分区,dd命令烧写uboot镜像到uboot分区。

    kernel镜像和system镜像、vbmeta镜像是强绑定的,安全启动过程会校验其签名。若想单刷kernel,需要关闭uboot中安全启动过程,其在do_hb_avb_verify_boot中,可以考虑在其中跳过安全启动过程,直接加载内核。但是跳过安全启动可能会导致不可预知的问题,包括但不限于无法ota升级,dm-verity关闭等等,建议不要使用。

    祝好~

    2022-11-23
    0
    2
    • zhuqingliang回复船到桥头:
      编译生成 out/target/boot/boot.img 后, 如何快速编译 system镜像、vbmeta镜像
      2022-11-24
      0
    • 船到桥头回复zhuqingliang:

      可以参考看下根目录的Makefile中vbmeta-nodeps。

      单独编译vbmeta根目录执行:cd ${TOPDIR}/build/tools/avbtools && python2 avbtool make_vbmeta_image --output ${TARGET_DEPLOY_DIR}/ext4/vbmeta.img --algorithm SHA256_RSA2048 --key keys/shared.priv.pem --include_descriptors_from_image ${TARGET_TARGET_DIR}/boot/vbmeta_boot.img --include_descriptors_from_image ${TARGET_TARGET_DIR}/ext4/vbmeta_system.img

      vbmeta镜像在out/target/deploy/ext4/vbmeta.img

      执行顺序:(前提:之前整编过,新编译的vbmeta依赖之前编译的system镜像)

      单独编译内核。

      编译新的vbmeta。

      内核命令行dd烧写内核、vbmeta

      2022-11-24
      0
  • 费小财
    Lv.5

    1. 直接在uboot下./bsuild.sh, 然后根目录make pkgtools

    2.不能单独烧写的,要加上system

    2022-11-23
    0
    0
  • 疯狂星期6
    Lv.1

    单独编译uboot/kernel:

    1.去build目录执行完source envsetup.sh 和lunch分支的选择后。

    2.去uboot/kernel的目录,执行对应目录下的build.sh即可。

    2022-11-23
    0
    0