0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

【赛昉科技昉·星光RISC-V单板计算机试用体验】昉·星光RISC-V单板计算机上手之基础系统编译

开发板试用精选 来源:开发板试用 作者:电子发烧友论坛 2022-11-15 15:21 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

本文来源电子发烧友社区,作者:HonestQiao, 帖子地址:https://bbs.elecfans.com/jishu_2280585_1_1.html

拿到昉·星光RISC-V单板计算机后,我们可以从官方直接下载对应的镜像文件,进行烧录。但是我们往往想稍微挑战一下,从头开始构建系统。

零、学习参考网址:

一、需构建部分说明:

通过《昉·星光单板计算机快速入门指南》,我们可以了解到,需要进行如下部分的构建:

  1. 赛昉科技 固件:
    • Boot_recovery:用于恢复 SPI flash 的二进制文件
    • secondboot:第一阶段 bootloader
    • ddrinit:第一阶段 ddrinit
  2. Bootloader:u-boot,通用Bootloader
  3. OpenBSI:RISC-V SBI
  4. Kernel:Linux内核
  5. Fedora:Fedora33

下面,我们就一步一步,来进行每个部分的构建。

二、编译环境基础系统准备:

为了顺利构建上面的各个部分,我们需要在Ubuntu操作系统下进行各项操作。

官方推荐的是Ubuntu 18.04 LTS。虽然Canonical官方把Ubuntu 18.04 LTS的支持结束日期从2023年5月延长到2028年5月,但我选择的是主流的版本的Ubuntu 20.04 LTS。

你可以在电脑上安装Ubuntu 20.04 LTS,或者在虚拟机里面安装Ubuntu 20.04 LTS(Vmware或者VirtualBox等);如果你熟悉WSL2,那么也可以在WSL2中运行Ubuntu 20.04 LTS。

我使用的是运行Docker中的Ubuntu 20.04 LTS,可以在10秒钟之内启动Ubuntu 20.04 LTS基础环境。


% docker run -it --name ubuntu ubuntu /bin/bash

进入Ubuntu 20.04 LTS基础环境后,我们需要安装下面的基础组件:


# 可以执行sudo指令,如果没有安装,则先安装,否则可以跳过install sudo % apt update % apt install -y sudo % sudo apt update % sudo apt upgrade # 安装后续操作过程中,需要的软件 % sudo apt install -y wget % sudo apt install -y git git-lfs subversion % sudo apt install -y vim % sudo apt install -y make gcc % sudo apt install -y bison flex % sudo apt install -y gcc-riscv64-linux-gnu % sudo apt install -y libssl-dev pkg-config libncurses-dev # 设置bash为默认shell:选择No即可 sudo dpkg-reconfigure dash # 如果没有生成过id_rsa,则使用下面指令,并将生成的pub填写到github对应设置中;否则不用: % ssh-keygen -t rsa

三、跨平台预编译环境准备:

进入Ubuntu 20.04 LTS基础环境后,我们需要首先安装跨平台预编译环境,官方提供了对应文件的下载地址: https://github.com/sifive/freedom-tools/releases/tag/v2020.12.0

从以上地址,下载如下三个压缩包:

  • riscv64-unknown-elf-toolchain-10.2.0-2020.12.8-x86_64-linux-ubuntu14.tar.gz
  • riscv-openocd-0.10.0-2020.12.1-x86_64-linux-ubuntu14.tar.gz
  • sdk-utilities-1.0.1-2020.12.1-x86_64-linux-ubuntu14.tar.gz

具体操作如下:


% mkdir ~/VisionFive/freedom-tools % cd ~/VisionFive/freedom-tools % wget https://static.dev.sifive.com/dev-tools/freedom-tools/v2020.12/riscv64-unknown-elf-toolchain-10.2.0-2020.12.8-x86_64-linux-ubuntu14.tar.gz % wget https://static.dev.sifive.com/dev-tools/freedom-tools/v2020.12/riscv-openocd-0.10.0-2020.12.1-x86_64-linux-ubuntu14.tar.gz % wget https://static.dev.sifive.com/dev-tools/freedom-tools/v2020.12/sdk-utilities-1.0.1-2020.12.1-x86_64-linux-ubuntu14.tar.gz

下载完成后,我们需要解压,并设置对应的PATH,以备被后续操作调用:


% tar xzvf riscv64-unknown-elf-toolchain-10.2.0-2020.12.8-x86_64-linux-ubuntu14.tar.gz % tar xzvf riscv-openocd-0.10.0-2020.12.1-x86_64-linux-ubuntu14.tar.gz % tar xzvf sdk-utilities-1.0.1-2020.12.1-x86_64-linux-ubuntu14.tar.gz % echo "$(pwd)/riscv64-unknown-elf-toolchain-10.2.0-2020.12.8-x86_64-linux-ubuntu14/bin:$(pwd):riscv-openocd-0.10.0-2020.12.1-x86_64-linux-ubuntu14/bin:$(pwd)/sdk-utilities-1.0.1-2020.12.1-x86_64-linux-ubuntu14/bin" # 将以上的部分的部分,按照如下设置,注意最好的:$PATH % export PATH=/root/VisionFive/freedom-tools/riscv64-unknown-elf-toolchain-10.2.0-2020.12.8-x86_64-linux-ubuntu14/bin:/root/VisionFive/freedom-tools:riscv-openocd-0.10.0-2020.12.1-x86_64-linux-ubuntu14/bin:/root/VisionFive/freedom-tools/sdk-utilities-1.0.1-2020.12.1-x86_64-linux-ubuntu14/bin:$PATH # 并将上一条语句,添加到~/.bashrc的最后 % riscv64-unknown-elf-gcc -v ... gcc version 10.2.0 (SiFive GCC-Metal 10.2.0-2020.12.8)

riscv64-unknown-elf-gcc能够成功运行,说明跨平台预编译设置正确,可以开始后续的操作了。

四、Boot_recovery编译:

代码网址:starfive-tech/bootloader_recovery (github.com)


# 获取Boot_recovery对应的代码: % cd ~/VisionFive % git clone git@github.com:starfive-tech/bootloader_recovery.git % cd bootloader_recovery % make ... Finished building target: debug/jh7100_recovery_boot.elf

显示以上最后一条信息,表示编译成功,debug/jh7100_recovery_boot.bin即为编译得到的Boot_recovery文件

五、secondboot编译:

代码网址:starfive-tech/JH7100_secondBoot (github.com)


% cd ~/VisionFive % git clone https://github.com/starfive-tech/JH7100_secondBoot.git % cd JH7100_secondBoot/build % make ... riscv64-unknown-elf-objdump -S bootloader-JH7100-220515.elf > bootloader-JH7100-220515.asm

显示以上最后一条信息,表示编译成功,bootloader-JH7100-220515.bin.out即为编译得到的secondboot文件。

六、ddrinit编译:

代码网址:starfive-tech/JH7100_ddrinit (github.com)


% cd ~/VisionFive % git clone https://github.com/starfive-tech/JH7100_ddrinit.git % cd JH7100_ddrinit/build % make ... riscv64-unknown-elf-objdump -S ddrinit-2133-220515.elf > ddrinit-2133-220515.asm

显示以上最后一条信息,表示编译成功,ddrinit-2133-220515.bin.out即为编译得到的ddrinit文件。

七、u-boot编译:

代码网址:starfive-tech/u-boot (github.com)


# 首先检查riscv64-linux-gnu-gcc能否正常运行 显示以上最后一条信息,表示能够正常运行,可以继续操作了。 % cd ~/VisionFive % git clone https://github.com/starfive-tech/u-boot % cd u-boot % make starfive_jh7100_visionfive_smode_defconfig ARCH=riscv CROSS_COMPILE=riscv64-linux-gnu- % make u-boot.bin u-boot.dtb ARCH=riscv CROSS_COMPILE=riscv64-linux-gnu- ... CAT u-boot-dtb.bin COPY u-boot.bin

显示以上最后两条信息,表示编译成功,u-boot.dtb、u-boot.bin即为编译得到的u-boot文件,将会用于后续的OpenSBI编译。

八、OpenBSI编译:

代码地址:riscv-software-src/open***i: RISC-V Open Source Supervisor Binary Interface (github.com)


% cd ~/VisionFive % git clone https://github.com/riscv/open***i.git % make ARCH=riscv CROSS_COMPILE=riscv64-linux-gnu- PLATFORM=generic FW_PAYLOAD_PATH=~/VisionFive/u-boot/u-boot.bin FW_FDT_PATH=~/VisionFive/u-boot/u-boot.dtb ... OBJCOPY platform/generic/firmware/fw_payload.bin

显示以上最后一条信息,表示编译成功,build/platform/generic/firmware/fw_payload.bin即为编译得到的openbsi文件。

但是这个文件大于2M,还需要进行一些处理,才可以使用,具体操作如下:


% mkdir ~/VisionFive/payload % cp -a build/platform/generic/firmware/fw_payload.bin ~/VisionFive/payload/ % cd ~/VisionFive/payload % svn export https://github.com/starfive-tech/freelight-u-sdk.git/branches/starfive/fsz.sh % chmod +x fsz.sh % ./fsz.sh fw_payload.bin fw_payload.bin.out inFile: fw_payload.bin inSize: 3022552 (0x002e1ed8, LE:0xd81e2e00) outFile: fw_payload.bin.out outSize: 3022556 (0x002e1edc)

调用fsz.sh处理fw_payload.bin后,显示如上信息,表示处理成功,fw_payload.bin.out即为实际需要使用的文件。

九、编译Linux 内核:

代码网址:starfive-tech/linux (github.com)


% cd ~/VisionFive % git clone https://github.com/starfive-tech/linux % cd linux % make CROSS_COMPILE=riscv64-linux-gnu- ARCH=riscv visionfive_defconfig % make CROSS_COMPILE=riscv64-linux-gnu- ARCH=riscv menuconfig % make CROSS_COMPILE=riscv64-linux-gnu- ARCH=riscv -j2 ... Kernel: arch/riscv/boot/Image.gz is ready

iShot_2022-05-15_23.11.54.png

显示以上最后三条信息,表示编译成功,arch/riscv/boot/Image.gz即为内核文件,arch/riscv/boot/dts/starfive/jh7100-starfive-visionfive-v1.dtd即为需要的dtb文件。

十、使用:

通过以上的步骤,我们就能够编译得到所需要的如下文件:

  1. 赛昉科技 固件:
    • Boot_recovery:用于恢复 SPI flash 的二进制文件
    • secondboot:第一阶段 bootloader
    • ddrinit:第一阶段 ddrinit
  2. Bootloader:u-boot,通用Bootloader
  3. OpenBSI:RISC-V SBI
  4. Kernel:Linux内核

recovery_boot、secondboot、ddrinit的烧录,可以使用JH7100-tools进行。该工具需要在Linux上使用。

代码仓库:kprasadvnsi/JH71xx-tools: Bootloader recovery and updater tool for StarFive JH71x0 SoCs. (github.com)


cd ~/VisionFive git clone git@github.com:kprasadvnsi/JH71xx-tools.git cd JH71xx-tools gcc -o jh7100-recover jh7100-recover.c ./jh7100-recover Need serial device path. Usage: ./jh7100-recover [OPTION]... -D, --device : Serial tty device path. -r, --recovery : Bootloader recovery firmware. -b, --bootloader : Second stage bootloader. -d, --ddrinit : DRAM initialization firmware. -h, --help : Show this help.

编译成功后,将会生成jh7100-recover,该工具将会用于recovery_boot、secondboot、ddrinit的烧录。
iShot_2022-05-16_10.11.33.png

其调用参数如下:

  • -D 指定串口设备,使用USB转串口转换器的跳线连接到昉·星光的 40-Pin GPIO Header 上
  • -r Boot_recovery编译结果文件
  • -b secondboot编译结果文件
  • -d ddrinit编译结果文件

# 将之前生成的文件集中到一起 mkdir ~/VisionFive/images cp -a ~/VisionFive/debug/jh7100_recovery_boot.bin ~/VisionFive/images/ cp -a ~/VisionFive/JH7100_secondBoot/build/bootloader-JH7100-220515.bin.out ~/VisionFive/images/ cp -a ~/VisionFive/JH7100_ddrinit/build/ddrinit-2133-220515.bin.out ~/VisionFive/images/ # 更新第一阶段 bootloader ./jh7100-recover -D /dev/ttyUSB0 -r ~/VisionFive/images/jh7100_recovery_boot.bin -b ~/VisionFive/images/bootloader-JH7100-220515.bin.out # 更新DRAM初始化固件 ./jh7100-recover -D /dev/ttyUSB0 -r ~/VisionFive/images/jh7100_recovery_boot.bin -d ~/VisionFive/images/ddrinit-2133-buildroot.bin.out # 同时更新第二阶段引导加载程序和DRAM初始化固件 ./jh7100-recover -D /dev/ttyUSB0 -r ~/VisionFive/images/jh7100_recovery_boot.bin -b ~/VisionFive/images/bootloader-JH7100-220515.bin.out -d ~/VisionFive/images/ddrinit-2133-220515.bin.out

以上的具体操作,可参考:《昉·星光单板计算机快速入门指南》。如果Bootlaber不慎损坏,我们也可以参考《昉·星光单板计算机快速入门指南》进行Boot_recovery恢复了。 参考《昉·星光单板计算机软件技术参考手册》,我们可以更新Kernel以及内核模块了!

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • RISC-V
    +关注

    关注

    48

    文章

    2802

    浏览量

    51934
  • 赛昉科技
    +关注

    关注

    3

    文章

    179

    浏览量

    15326
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    2025 RISC-V产业发展大会 | 科技全景展示规模化商用成果

    2025年11月24日,RISC-V产业发展大会在珠海开幕。科技以“推动RISC-V规模化商用”为核心主题,重点展示了面向数据中心、边缘计算
    的头像 发表于 11-27 11:03 351次阅读
    2025 <b class='flag-5'>RISC-V</b>产业发展大会 | <b class='flag-5'>赛</b><b class='flag-5'>昉</b>科技全景展示规模化商用成果

    贸泽电子开售全新Arduino UNO Q单板计算机

    贸泽电子开售全新Arduino UNO Q单板计算机。Arduino UNO Q单板计算机(SBC)将高性能计算与实时控制结合,提供理想的创新平台。
    的头像 发表于 11-08 09:50 968次阅读

    【作品合集】科技VisionFive 2单板计算机开发板测评

    科技VisionFive 2单板计算机开发板测评作品合集 产品介绍: ·星光 2是全球首款集成了3D GPU的高性能量产
    发表于 09-04 09:08

    5 款 RISC-V 单板计算机测试:性能、基准测试、特性及见解

    倘若计算的未来并非被专有架构所垄断,那会怎样?想象一下这样一个世界:开发者和业余爱好者都能利用开源硬件的力量自由地构建、创新和实验。现在,让我们走进RISC-V单板计算机(SBC)的世界——一个正在
    的头像 发表于 08-14 13:37 808次阅读
    5 款 <b class='flag-5'>RISC-V</b> <b class='flag-5'>单板计算机</b>测试:性能、基准测试、特性及见解

    科技入驻RuyiSDK开发者社区,双平台协同推进RISC-V生态

    科技(StarFive)正式入驻RuyiSDK开发者社区,携手推动RISC-V技术创新。后续,科技的技术突破与生态进展将同步在RVs
    的头像 发表于 07-30 10:35 844次阅读
    <b class='flag-5'>赛</b><b class='flag-5'>昉</b>科技入驻RuyiSDK开发者社区,双平台协同推进<b class='flag-5'>RISC-V</b>生态

    【VisionFive 2单板计算机试用体验】环境搭建与点灯实验

    一、概况 ·星光 2是全球首款集成了GPU的高性能RISC-V单板计算机。与·星光相比,
    发表于 07-20 22:55

    “核心技术突破+关键应用支撑”,加速RISC-V生态突围

    核心技术护城河1.首款适配RISC-V核的国产一致性NoCIP——StarNoC-700在高性能计算分论坛上,科技IP产品线总经理周杰宣布,公司自主研发的大规模一
    的头像 发表于 07-19 17:03 1169次阅读
    “核心技术突破+关键应用支撑”,<b class='flag-5'>赛</b><b class='flag-5'>昉</b>加速<b class='flag-5'>RISC-V</b>生态突围

    【VisionFive 2单板计算机试用体验】VisionFive 2一个霸气的游戏机

    单板计算机,搭载·惊鸿-7110(型号:JH-7110)RISC-V应用处理器,拥有极强的计算能力和图形处理能力。开源的·
    发表于 07-13 20:41

    【VisionFive 2单板计算机试用体验】RISC-V架构卡片计算机初体验

    2h........无奈) 参考文献: 全球首款集成3D GPU的高性能量产RISC-V 单板计算机·星光 2 开发实践![全球首款集成3D GPU的高性能量产
    发表于 07-06 23:28

    权威评测:Orange Pi RV2等5 款 RISC-V 单板计算机测试-性能、基准测试、功能和见解

    的生态系统正在挑战ARM和x86平台的主导地位。RISC-V单板计算机采用模块化设计,软件支持不断增加,并承诺提供定制服务,正吸引着各地技术爱好者的目光。但它们在实际
    的头像 发表于 06-30 13:35 884次阅读
    权威评测:Orange Pi RV2等5 款 <b class='flag-5'>RISC-V</b> <b class='flag-5'>单板计算机</b>测试-性能、基准测试、功能和见解

    【VisionFive 2单板计算机试用体验】 + 开箱体验

    在x86与ARM架构主导的单板计算机市场,中国团队打造的VisionFive 2(防星光2)如同一颗新星,凭借开源开放的RISC-V架构和成熟的桌面体验,为开发者与极客提供了全新的选择。经过
    发表于 06-27 09:06

    进迭时空推出全新1.8寸RISC-V单板计算机MUSE Pi Pro

    感谢海内外开发者的使用反馈和建议,进迭时空针对MUSEPi进行了全面升级,推出全新1.8寸单板计算机--MUSEPiPro(以下简称PiPro)。升级后的PiPro将RISC-VAICPU芯片K1
    的头像 发表于 06-06 16:55 1032次阅读
    进迭时空推出全新1.8寸<b class='flag-5'>RISC-V</b><b class='flag-5'>单板计算机</b>MUSE Pi Pro

    共建生态,赋能应用 | 科技精彩亮相中国RISC-V生态大会

    2025中国RISC-V生态大会于近日在北京圆满落幕。大会以“共建生态,共享未来”为主题,汇聚了中外产学研界各方代表,共同探讨RISC-V的最新发展趋势和产业机遇。作为中国RISC-V软硬件生态
    的头像 发表于 03-04 11:03 1858次阅读
    共建生态,赋能应用 | <b class='flag-5'>赛</b><b class='flag-5'>昉</b>科技精彩亮相中国<b class='flag-5'>RISC-V</b>生态大会

    科技RISC-V家庭云解决方案:NAS存储性能升级,隐私安全双保障

    (VisionFive2)单板计算机,推出全新RISC-V家庭云(NAS)解决方案,为用户提供高性能、高安全性的私有云存储服务,满足家庭及轻量级企业场景需求。方案亮点01高性能硬件支持
    的头像 发表于 02-18 17:50 1304次阅读
    <b class='flag-5'>赛</b><b class='flag-5'>昉</b>科技<b class='flag-5'>RISC-V</b>家庭云解决方案:NAS存储性能升级,隐私安全双保障

    首届RISC-V产业发展大会成功举办,携手产业伙伴共绘RISC-V新蓝图

    12月28日,由中国电子工业标准化技术协会RISC-V工作委员会(以下简称“RISC-V工作委员会”)主办的首届“RISC-V产业发展大会”在北京成功举办。作为推动RISC-V生态发展
    的头像 发表于 12-30 14:14 970次阅读
    首届<b class='flag-5'>RISC-V</b>产业发展大会成功举办,<b class='flag-5'>赛</b><b class='flag-5'>昉</b>携手产业伙伴共绘<b class='flag-5'>RISC-V</b>新蓝图