导航

    全志在线开发者论坛

    • 注册
    • 登录
    • 搜索
    • 版块
    • 话题
    • 在线文档
    • 社区主页

    使用Docker编译T113-S3全流程(极速版)

    T Series
    1
    1
    20
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • D
      dpiner LV 3 最后由 编辑

      我的环境是Debian13+xfce,但是Windows中也可以参考到docker的部分
      部分内容参考公众号文章,但是这里补充了一下其他里面没提及的部分

      部分配置(Docker,github)需要使用代理,请确保网络状态良好

      首先下载对应的d1s包,解压后进入对应的文件夹

      # 进入你的 SDK 存放目录(TinaSDK 的上级目录)
      cd /home/dpiner/DockerFiles/TinaSDK
      
      # 克隆补丁仓库
      git clone https://github.com/DongshanPI/100ASK_T113-Pro_TinaSDK.git
      
      # 进入补丁目录
      cd 100ASK_T113-Pro_TinaSDK
      
      # 初始化子模块(这一步很重要,确保补丁完整)
      git submodule update --init
      

      这时候应该有类似的提示

      正克隆到 '100ASK_T113-Pro_TinaSDK'...
      remote: Enumerating objects: 1554, done.
      remote: Counting objects: 100% (1554/1554), done.
      remote: Compressing objects: 100% (1008/1008), done.
      remote: Total 1554 (delta 520), reused 1455 (delta 421), pack-reused 0 (from 0)
      接收对象中: 100% (1554/1554), 9.28 MiB | 2.39 MiB/s, 完成.
      处理 delta 中: 100% (520/520), 完成.
      子模组 'prebuilt'(https://e.coding.net/weidongshan/100ask_t113-pro/tina_sdk_toolchain.git)已对路径 'prebuilt' 注册
      正克隆到 '/home/dpiner/桌面/100ASK_T113-Pro_TinaSDK/prebuilt'...
      子模组路径 'prebuilt':检出 '18d6d58342216cd5d759dce5ce15c5c406923ca3'
      

      然后创建Docker文件,这部分和百问网不同,但是使用上还是一样的,这里需要注意的是最好选择20.04的版本,因为说明中提到的其他版本解决依赖问题比较棘手

      
      # 设置非交互模式,防止安装过程中弹出配置向导
      ENV DEBIAN_FRONTEND=noninteractive
      # 设置语言环境,防止中文日志乱码
      ENV LANG=C.UTF-8
      ENV LC_ALL=C.UTF-8
      
      # 安装编译依赖
      # 修复了原文件中缺失的反斜杠 (\)
      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 \
          python python-dev \
          time sudo wget vim rsync \
          libgmp-dev libmpc-dev libmpfr-dev gperf busybox \
          # 如果后续发现缺少 python2,可在此处追加 python2 python2-dev
          && apt-get clean && rm -rf /var/lib/apt/lists/*
      
      # 全志 SDK 编译通常需要此环境变量
      ENV FORCE_UNSAFE_CONFIGURE=1
      
      WORKDIR /work
      

      将以上内容复制为Docker文件,然后创建以下脚本实现自动化挂载和一键启动

      #!/bin/bash
      
      # ================= 配置区域 =================
      # 宿主机上 SDK 解压后的根目录路径 (请确保此路径正确)
      SDK_PATH="/home/dpiner/software_only_command/T113_tina/TinaSDK/tina-d1-h"
      
      # Docker 镜像名称 (根据您之前 build 的名称)
      IMAGE_NAME="tina-sdk"
      
      # 容器名称 (每次运行会复用或重建此名称的容器)
      CONTAINER_NAME="tina-compile"
      
      # 容器内工作目录 (对应 Dockerfile 中的 WORKDIR)
      WORK_DIR="/work"
      # ===========================================
      
      # 1. 检查 SDK 路径是否存在
      if [ ! -d "$SDK_PATH" ]; then
          echo "❌ 错误:找不到 SDK 目录: $SDK_PATH"
          echo "请检查路径是否正确,或者先解压 SDK。"
          exit 1
      fi
      
      # 2. 检查 Docker 镜像是否存在
      if ! docker images | grep -q "$IMAGE_NAME"; then
          echo "❌ 错误:未找到 Docker 镜像 '$IMAGE_NAME'。"
          echo "请先运行:docker build -t $IMAGE_NAME ."
          exit 1
      fi
      
      # 3. 清理旧容器 (如果存在同名容器则删除,避免报错)
      echo "🧹 正在检查并清理旧的容器实例..."
      if [ "$(docker ps -aq -f name=^${CONTAINER_NAME}$)" ]; then
          # 如果容器正在运行,先停止
          if [ "$(docker ps -q -f name=^${CONTAINER_NAME}$)" ]; then
              echo "⏹️  停止运行中的容器..."
              docker stop $CONTAINER_NAME
          fi
          echo "🗑️  删除旧容器..."
          docker rm $CONTAINER_NAME
      fi
      
      # 4. 启动新容器
      echo "🚀 正在启动 Tina SDK 编译环境..."
      echo "📂 宿主机路径:$SDK_PATH"
      echo "📂 容器内路径:$WORK_DIR"
      echo "----------------------------------------"
      
      docker run -it --name $CONTAINER_NAME \
          -v "$SDK_PATH":"$WORK_DIR" \
          --privileged \
          $IMAGE_NAME \
          /bin/bash
      
      # 5. 退出提示
      echo "----------------------------------------"
      echo "👋 您已退出容器。"
      echo "💡 提示:下次运行此脚本将自动复用配置。"
      echo "💡 如需重新进入已停止的容器而不新建,可使用:docker start -ai $CONTAINER_NAME"
      

      保存后运行,等待一段时间,应该有这样的提示

      FileLength=25a0000BuildImg 0
      Dragon execute image.cfg SUCCESS !
      ----------image is for nand/emmc----------
      ----------image is at----------
      
      /work/out/t113-100ask/tina_t113-100ask_uart3.img
      
      pack finish
      root@5eba05103a05:/work# 
      

      这里放出我的运行结果参考一下.
      32ffc116-c5b7-483b-9126-3300e26aa21d-图片.png
      下一步我正在尝试 sunxi-tools 来进行img文件的下载
      请问各位大佬有何指点,感谢

      1 条回复 最后回复 回复 引用 分享 0
      • 1 / 1
      • First post
        Last post

      Copyright © 2024 深圳全志在线有限公司 粤ICP备2021084185号 粤公网安备44030502007680号

      行为准则 | 用户协议 | 隐私权政策