丶NULL丶 · 4 天前 · 广东

【SiRider S1 芯擎工业开发板测评】编译踩坑

【SiRider S1 芯擎工业开发板测评】编译及下载

siengine sdk

参考 radxa 官方的镜像构建步骤和SE1000 Linux SDK 编译参考手册即可,大致分为如下几个步骤:

  1. 安装各种依赖
  2. 下载 sdk
  3. 解压工具链
  4. 开始编译
# 基本编译命令
source env.sh
sebuilder all

# 编译 cluster0 kernel
sebuilder ubuntu kernel
# cluster0 kernel menuconfig
sebuilder -M ubuntu kernel

# 编译 cluster1 kernel
sebuilder linux kernel
# cluster1 kernel menuconfig
sebuilder -M linux kernel

可能和我自身环境有关(Ubuntu 22.04.5 LTS)这里有几个需要注意的地方是:

  1. 编译 ubuntu rootfs 过程中可能会在最后遇到文件系统编译错误,此时需要更改 scripts 仓库如下文件

    diff --git a/tools/build_ubuntu_overlayfs.sh b/tools/build_ubuntu_overlayfs.sh
    index e41dd11..9cb8379 100755
    --- a/tools/build_ubuntu_overlayfs.sh
    +++ b/tools/build_ubuntu_overlayfs.sh
    @@ -50,7 +50,8 @@ function make_overlayfs_image() {
        $SUDO_CMD cp -fr $SLT_DIR/ubuntu/etc/gdm3 $UBUNTU_OVERLAYFS_TOP/rootfs/etc/
        $SUDO_CMD cp -fr $SLT_DIR/ubuntu/etc/pam.d $UBUNTU_OVERLAYFS_TOP/rootfs/etc/
    
    -    schroot_send_cmd "echo root:root|chpasswd && useradd -r -d /var/empty/sshd -s /sbin/nologin -c \"sshd privilege separation user\" sshd"
    +    schroot_send_cmd "echo root:root|chpasswd"
    +    # schroot_send_cmd "echo root:root|chpasswd && useradd -r -d /var/empty/sshd -s /sbin/nologin -c \"sshd privilege separation user\" sshd"
        $SUDO_CMD umount -R /run/schroot/mount/${UBUNTU_CHROOT_CONFIG_NAME}_overlayfs-* || true
        dirtmp=`echo ${DEBIAN_TOP#/}`
        echo "$dirtmp"
    @@ -82,7 +83,8 @@ function custom_config() {
        $SUDO_CMD cp -r $SLT_DIR/ubuntu/lib/firmware $UBUNTU_OVERLAYFS_TOP/rootfs/usr/lib/
        $SUDO_CMD cp -r $KERNEL_TOP/../kernel_modules/lib $UBUNTU_OVERLAYFS_TOP/rootfs/usr/
    
    -    schroot_send_cmd "$NONINTERACTIVE_INSTALL dialog python3-tk python3.9 iperf3 git can-utils gpiod"
    +    schroot_send_cmd "$NONINTERACTIVE_INSTALL dialog python3-tk python3.9 iperf3 git gpiod"
    +    # schroot_send_cmd "$NONINTERACTIVE_INSTALL dialog python3-tk python3.9 iperf3 git can-utils gpiod"
        schroot_send_cmd "rm /usr/bin/python" || true
        schroot_send_cmd "rm /usr/bin/python3" || true
        schroot_send_cmd "ln -s /usr/bin/python3.8 /usr/bin/python3" || true
  2. 编译 linux rootfs 过程中可能会在最后遇到找不到 python,此时是需要手动调整下 buildroot 的 python 为 python2:

    diff --git a/Makefile b/Makefile
    index 6a1738c34c..7d06557a41 100644
    --- a/Makefile
    +++ b/Makefile
    @@ -1014,7 +1014,7 @@ defconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile
    define percent_defconfig
    # Override the BR2_DEFCONFIG from COMMON_CONFIG_ENV with the new defconfig
    %_defconfig: $(BUILD_DIR)/buildroot-config/conf $(1)/configs/%_defconfig outputmakefile
    -       python $(TOPDIR)/utils/defconfig_hook.py -m $(1)/configs/$$@ $(BASE_DIR)/.siengineconfig
    +       python2 $(TOPDIR)/utils/defconfig_hook.py -m $(1)/configs/$$@ $(BASE_DIR)/.siengineconfig
            $$(COMMON_CONFIG_ENV) BR2_DEFCONFIG=$(1)/configs/$$@ \
                    $$< --defconfig=$(BASE_DIR)/.siengineconfig $$(CONFIG_CONFIG_IN)
    endef
    @@ -1030,7 +1030,7 @@ savedefconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile
            @$(SED) '/BR2_DEFCONFIG=/d' $(CFG_)
    
            cat $(CFG_) >> $(CFG_).split
    -       python $(TOPDIR)/utils/defconfig_hook.py -s $(CFG_).split $(BASE_DIR)/.siengineconfig $(BR2_CONFIG) $(CFG_)
    +       python2 $(TOPDIR)/utils/defconfig_hook.py -s $(CFG_).split $(BASE_DIR)/.siengineconfig $(BR2_CONFIG) $(CFG_)
            rm $(CFG_).split
    
    .PHONY: defconfig savedefconfig update-defconfig
    diff --git a/configs/se1000_ap1_release_defconfig b/configs/se1000_ap1_release_defconfig
    index 6a68cae8c8..bbfd53c919 100755

下载

主要参考官方的这篇文档: 安装系统到 eMMC/UFS,基本步骤如下:

  1. 插上电源和调试线
  2. 按住 FastBoot 按键后上电,板子会进入烧录模式,ttyUSB3 串口会有数据输出
  3. 解压工程下 tools/siengine_downloader/siengine_downloadtool_linux_V7.6.2.tar.gz 得到 Linux 下的烧录工具
  4. sdk 中提供了一个简单的烧录脚本 burn.sh 来调用 siengine 的烧录工具 siengine_downloadtool

这里需要注意的是:

  1. 在烧录单独分区的固件的时候,siengine_downloadtool 貌似会根据 SiPartitionFile_lunx 配置文件来找对应的地址,所以需要将 deploy/build 下的 SiPartitionFile_lunx 配置文件都拷贝过来才行,不然这里会报错:no such partttion
  2. tools/siengine_downloader/siengine_downloadtool_linux/ufs-device-configuration.xml 最好也替换为 deploy/build/ufs-device-configuration.xml
cd tools/siengine_downloader/siengine_downloadtool_linux
cp deploy/build/ufs-device-configuration.xml ./tools/siengine_downloader/siengine_downloadtool_linux
cp deploy/build/SiPartitionFile_lun* ./tools/siengine_downloader/siengine_downloadtool_linux
cp ./tools/siengine_downloader/burn.sh ./tools/siengine_downloader/siengine_downloadtool_linux

# 烧录 cluster0 kernel
./tools/siengine_downloader/siengine_downloadtool_linux/burn.sh kernel
./tools/siengine_downloader/siengine_downloadtool_linux/burn.sh dtb

# 烧录 cluster1 kernel
./tools/siengine_downloader/siengine_downloadtool_linux/burn.sh linux_kernel
./tools/siengine_downloader/siengine_downloadtool_linux/burn.sh linux_dtb

周易 Z2 SDK

同上,主要参考 radxa 官方的周易Z2 AIPU步骤即可,大致分为如下几个步骤:

  1. 瑞莎下载站下载周易 Z2 SDK 安装包后解压安装

    tar -xvf Zhouyi_Z2.tar.gz
    cd Zhouyi_Z2
    chmod +x SETUP.SH
    ./SETUP.SH
    cd ../
    rm -rf Zhouyi_Z2
  2. 配置 nn-compiler
  3. 设置 python 3.8 环境以及安装其依赖
推荐阅读
关注数
0
文章数
2
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息