使用Docker编译T113-S3全流程(极速版)
-
我的环境是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#这里放出我的运行结果参考一下.

下一步我正在尝试 sunxi-tools 来进行img文件的下载
请问各位大佬有何指点,感谢
Copyright © 2024 深圳全志在线有限公司 粤ICP备2021084185号 粤公网安备44030502007680号