Navigation

    全志在线开发者论坛

    • Register
    • Login
    • Search
    • Categories
    • Tags
    • 在线文档
    • 社区主页

    【加精】D1 tina Docker 编译环境制作和使用

    MR Series
    7
    10
    5321
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • L
      liangdi LV 4 last edited by Kirin

      d1 的 tina 环境由于工具链比较老旧, 很多开发者的机器上的环境没法正常使用
      所以,我写一篇使用 Docker 编译 tina 的文章,继续抛砖引玉,欢迎交流.
      PS: 还是希望全志官方升级一下工具链版本

      准备工作

      • 安装好 docker , 执行 docker info 可以查看是否安装正常
      • 下载好 tina sdk 的代码, 参考: tina sdk 下载

      使用 Docker 编译

      # 假设下载的 tina-sdk 目录是 /opt/tina-sdk
      # 执行如下 docker 命令
      docker run  -v /opt/tina-sdk:/sdk -it liangdi/d1-tina-build-env /bin/bash
      # 第一次执行的时候,需要下载镜像,会耗时比较久一点
      # 执行完上面 docker 命令后, 会将本机 /opt/tina-sdk 映射到 docker 中的 /sdk 下,就可以在 docker 中编译 tina 了
      cd /sdk
      source ./build/envsetup.sh
      # 选择编译内容
      lunch
      
      # 需要设置 FORCE_UNSAFE_CONFIGURE 变量解决 root 检测, 后面 -jx  x为配置编译线程数量,可以根据 cpu 数量来配置
      make FORCE_UNSAFE_CONFIGURE=1 -j8
      # 备注: 第一次编译,会编译一批 host 的依赖比较慢,但是编译一次后,下次重新编译就会跳过了,速度会快很多
      
      # 打包
      pack
      
      
      

      以上就可以正常编译 d1 的 tina 了, 编译完成后, 在本机 tina-sdk 目录下的 out 目录中就可以看到编译产物了, 采用路径映射的方式,本机更新代码后,再运行 docker , docker 里面就是最新的代码

      附上 Dockerfile

      # D1 tina build env
      
      FROM ubuntu:14.04
      RUN apt update
      RUN apt install 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 -y
      RUN apt install bc busybox wget -y
      

      可以自行修改构建, 完善这个 docker

      Kirin M 2 Replies Last reply Reply Quote Share 8
      • Kirin
        陈塘关李靖 LV 6 @liangdi last edited by

        @liangdi 感谢你做了我一直想做但是又没(lan)空(de)去做的事,给你加精置顶到年底

        1 Reply Last reply Reply Quote Share 0
        • S
          Ssksal LV 2 last edited by

          如果想在macOS搞这些东西,就得重新分个区成case sensitive的……

          1 Reply Last reply Reply Quote Share 0
          • Referenced by  Kirin Kirin 
          • M
            mumula LV 4 @liangdi last edited by

            @liangdi hello 请问您的docker目前还能编最新的sdk吗?
            我这边会报错

            root@9a303cc40477:/sdk# make -j1 > build.txt
            [2] 281908
            ./scripts/Makefile.asm-generic:25: redundant generic-y found in arch/riscv/include/asm/Kbuild: device.h
            cp: cannot stat '/sdk/prebuilt/gcc/linux-x86/riscv/toolchain-thead-glibc/riscv64-glibc-gcc-thead_20200702/sysroot//./riscv64-unknown-linux-gnu/lib64xthead/lp64d/libgomp.so*': No such file or directory
            flock: /sdk/tmp/.root-copy.flock: Bad file descriptor
            make[3]: *** [/sdk/out/d1-h-nezha/staging_dir/target/rootfs/stamp/.libc_installed] Error 65
            make[2]: *** [package/libs/toolchain/compile] Error 2
            make[1]: *** [/sdk/out/d1-h-nezha/staging_dir/target/stamp/.package_compile] Error 2
            make: *** [world] Error 2
            [2]+ Done $T/tools/build/buildserver --path $T 2> /dev/null 1>&2

            全志在论坛的答复是不要再nfs里编

            YuzukiTsuru 1 Reply Last reply Reply Quote Share 0
            • YuzukiTsuru
              柚木 鉉 LV 9 @mumula last edited by

              @mumula m menuconfig找到libgomp关了,D1是单核也用不到

              1 Reply Last reply Reply Quote Share 0
              • M
                mumula LV 4 last edited by

                @yuzukitsuru 我看了下config里是关了 不过libc的路径里包含了这个

                YuzukiTsuru 1 Reply Last reply Reply Quote Share 0
                • YuzukiTsuru
                  柚木 鉉 LV 9 @mumula last edited by

                  @mumula 那可以自己复制一份看看

                  1 Reply Last reply Reply Quote Share 0
                  • Y
                    yyb390931229 LV 4 last edited by

                    学习中,感谢分享

                    1 Reply Last reply Reply Quote Share 0
                    • P
                      pengjianghom LV 3 last edited by

                      请问docker可以升级吗? buildroot中的docker是1.5版本,太久了,很多新应用部署不了

                      1 Reply Last reply Reply Quote Share 0
                      • P
                        pengjianghom LV 3 last edited by

                        @liangdi 在 【加精】D1 tina Docker 编译环境制作和使用 中说:

                        开发者的机器上的环境没法正常使用
                        所以,我写一篇使用 Docker 编译 tina 的文章,继续抛砖引玉,欢迎交流.
                        PS: 还是希望全志官方升级一下工具链版本

                        请问linux4.9的系统镜像要支持docker怎么做,我各个版本的buildroot都试了,不行

                        1 Reply Last reply Reply Quote Share 0
                        • 1 / 1
                        • First post
                          Last post

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

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