4.3 海思SS928开发 - uboot开发 - 非安全启动镜像制作

ops/2024/10/19 15:38:47/

4.3 uboot开发 - 非安全启动镜像

  • 非安全启动方案启动流程如下:芯片上电,加载固化在ROM里的代码->启动GSL->启动uboot->引导内核启动
  • 其中,gsl 为一级 Bootloader,uboot 为二级 Bootloader。

准备 gsl.bin 文件

  • 制作步骤如下:

    cd ~/hiss928/sdk/ema_2.0.2.2/SS928V100_SDK_V2.0.2.2/osdrv/components
    tar -xf boot.tar.gz
    cd boot/gsl/
    # 将工具链加入系统路径
    source ~/hiss928/sdk/ss928_sdk_g7.3_k4.19/env_setup.sh
    # 编译 gsl
    make CHIP=ss928v100
    # 最后生成的文件为 pub/gsl.bin
    
  • 编译中遇到的问题:aarch64-mix210-linux-ld:linker.lds:29: syntax error

    • 原因:向前翻,可以看到 /bin/sh: line 1: printf: `': invalid format character 错误,该错误导致 TEXT_BASE 未定义
    • 解决:修改 cfg.mk,第 7 行将 %\#x 修改为 %#x

非安全启动镜像制作

  • 制作步骤如下:

    cd ..
    # 拷贝制作需要的脚本文件
    cp -rfp image_map ~/hiss928/uboot/ss928_uboot_v2020.1/
    cp gsl/pub/gsl.bin ~/hiss928/uboot/ss928_uboot_v2020.1/gsl.loader# 编译 uboot
    cd ~/hiss928/uboot/ss928_uboot_v2020.1/
    make ARCH=arm CROSS_COMPILE=aarch64-mix210-linux- distclean
    make ARCH=arm CROSS_COMPILE=aarch64-mix210-linux- ss928v100_emmc_defconfig
    make ARCH=arm CROSS_COMPILE=aarch64-mix210-linux- -j16
    make ARCH=arm CROSS_COMPILE=aarch64-mix210-linux- u-boot-z.bin# 制作非安全启动镜像
    cp -f gsl.loader image_map/gsl.bin
    cp -f u-boot-ss928v100.bin image_map/u-boot-original.bin
    cp -f ss928.reg image_map/.reg
    cd image_map
    python3 oem/oem_quick_build.py
    # 最后在 image/oem/ 目录下生成的 boot_image.bin 镜像即为 非安全启动镜像
    

完善仓库

  • .gitignore 文件末尾添加以下内容:

    *__pycache__/
    image_map/image/
    image_map/oem/tmp/
    
  • 推送代码到远端。


http://www.ppmy.cn/ops/19923.html

相关文章

flutter android studio升级java java17

oricle 网站下载jdk 17sudo dpkg -i 安装包。到android-studio 目录, mv jbr jbr_bak ln -s /usr/lib/jvm/jdk-17-oracle-x64 jre ln -s /usr/lib/jvm/jdk-17-oracle-x64 jbr 更新.bashrc里面 JAVA_HOMEusr/lib/jvm/jdk-17-oracle-x64 jresource .bashrc然后运行f…

解密数据治理:构建安全堡垒,守护信息王国

在数字化时代,数据是当今世界的石油,承载着企业的核心竞争力和创新动力。然而,数据的重要性也使得数据安全问题备受关注。随着数据规模的不断增长,数据泄露和数据安全漏洞的风险也日益突出。面对这一挑战,数据治理成为…

跨Ubuntu系统迁移Anaconda虚拟环境:使用Conda-Pack的技巧与注意事项

当你想要将一个Conda虚拟环境从一台电脑迁移到另一台时,可以使用conda-pack工具来打包环境,这样可以更容易地在不同的机器之间复制和重建环境。下面是一篇详细的教程,教你如何使用conda-forge和conda-pack完成这个任务。 准备工作 首先&…

GPT-5强到发指,ScalingLaw依然有效|国内大模型五虎融资仅是巨头零花钱|小米与红衣之外的北京车展

突发:成立仅6年,卖了50亿手机玩转PC3A大作,这种错觉到底有多离谱rabbitr1第一批买家秀来了!经历轰动与质疑后,AI硬件销冠诞生小米与红衣之外的北京车展:有人吃香,有人遭殃“再见,Ter…

Docker创建enrollment token错误异常

问题 部署完kibana,需要通过enrollment token方式来连接elasticsearch,此时需要在elasticsearch中创建enrollment token。 执行创建命令时,报如下错误: elasticsearch-create-enrollment-token --scope kibanaERROR: [xpack.se…

AI+招聘,激活企业的「新质生产力」

两会以来,「新质生产力」成为热词。而所谓的新质生产力,是创新起主导作用,摆脱传统经济增长方式、生产力发展路径,具有高科技、高效能、高质量特征,符合新发展理念的先进生产力质态。新质之「新」,很重要的…

宝塔面板MYSQL自动停止解决办法

宝塔面板MYSQL自动停止解决办法 在使用宝塔的过程中,经常会遇到了 MySQL 自动停止的问题,尤其是配置低一些的服务器。导致 MySQL 停止的情况有很多种,这里不再多述。 下面教大家怎么解决这一问题。在宝塔的计划任务里添加一段 shell 命令&a…

二分查找-在排序数组中查找元素的第一个和最后一个位置

给你一个按照非递减顺序排列的整数数组 nums,和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。 如果数组中不存在目标值 target,返回 [-1, -1]。 你必须设计并实现时间复杂度为 O(log n) 的算法解决此问题。 示例 输入&#xf…