全志D1S SDK下载和编译

翻到了几年前抽中的RDC-2022纪念版开发板,拿出来玩下。

环境:ubuntu22.04

SDK下载

  • 注册全志开发者论坛会员,需要将会员等级升级到L2才能下载。

  • 安装repo管理工具

    bash 复制代码
    sudo apt install repo
  • 更换repo镜像源

    bash 复制代码
    echo export REPO_URL='https://mirrors.bfsu.edu.cn/git/git-repo' >> ~/.bashrc
    source ~/.bashrc
  • 配置下git凭据缓存,这样在1个小时内不用重复输入账号密码了,否则后面下载SDK需要重复输入很多次账号密码。

    bash 复制代码
    git config --global credential.helper 'cache --timeout=3600'
  • 下载步骤参考全志在线开源芯片 新 SDK 平台下载方法汇总

    • 新建tina-d1-h目录,在目录内执行repo初始化,需要按照提示输入密码

      bash 复制代码
      repo init -u https://sdk.aw-ol.com/git_repo/D1_Tina_Open/manifest.git -b master -m tina-d1-h.xml
    • 下载SDK

      bash 复制代码
      repo sync
    • 创建开发环境分支

      bash 复制代码
      repo start product-smartx-d1-h-tina-stable-v2.0 --all

SDK编译

由于SDK依赖库比较古早,官方好像是推荐使用ubuntu14开发,所以用docker拉取一个ubuntu14镜像进行编译。

  • 下载ubuntu14镜像

    bash 复制代码
    sudo docker pull ubuntu:trusty
  • 在ubuntu14基础上构建编译环境,新建Dockerfile文件:

    docker 复制代码
    # 使用 ubuntu:trusty 作为基础镜像
    FROM ubuntu:trusty
    
    ENV FORCE_UNSAFE_CONFIGURE=1
    
    # 完全替换为阿里云源
    RUN cp /etc/apt/sources.list /etc/apt/sources.list.bak && \
        echo "deb http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse" > /etc/apt/sources.list && \
        echo "deb http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse" >> /etc/apt/sources.list && \
        echo "deb http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse" >> /etc/apt/sources.list && \
        echo "deb http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse" >> /etc/apt/sources.list && \
        echo "deb http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse" >> /etc/apt/sources.list
    
    # 安装所需的包
    RUN apt-get update && apt-get install -y \
        build-essential \
        subversion \
        git-core \
        libncurses5-dev \
        zlib1g-dev \
        gawk \
        flex \
        quilt \
        libssl-dev \
        xsltproc \
        libxml-parser-perl \
        mercurial \
        bzr \
        ecj \
        cvs \
        unzip \
        lib32z1 \
        lib32z1-dev \
        lib32stdc++6 \
        libstdc++6 \
        libmpc-dev \
        libgmp-dev \
        bison \
        wget \
        busybox \
        && apt-get clean \
        && rm -rf /var/lib/apt/lists/*
    
    # 设置容器默认命令
    CMD ["/bin/bash"]
  • 构建docker镜像

    bash 复制代码
    docker build -f Dockerfile -t tina-build .
  • 构建容器,将对应的目录替换成实际上存放SDK代码的目录

    bash 复制代码
    docker run -dit --name tina_build_d1s -v /home/zyx/d1s/tina-d1-h:/home/zyx/d1s/tina-d1-h -w /home/zyx/d1s/tina-d1-h tina-build:latest /bin/bash
  • 进入容器

    bash 复制代码
     docker exec -it tina_build_d1s /bin/bash
  • source环境变量

    bash 复制代码
    source build/envsetup.sh
  • 选择配置,执行lunch,然后选择对应的配置

  • 编译

    bash 复制代码
    make -j$(nproc)
  • 打包

    bash 复制代码
    pack