HiHope开发者社区
直播中

jf_87093017

1年用户 15经验值
擅长:嵌入式技术 嵌入式技术
私信 关注
[经验]

【星闪派物联网开发套件体验连载】使用Dockerfile搭建润和WS63E的开发环境

开发板名称

NearLink_DK_WS63

模组名称

HH-SPARK-WS63

最初,拿到开发板,我最先找到润和官网,除了一个开箱视频和开发板以及模块的规格书(非常简易),并没有太多可以参考的资料。

当然,因为我并不经常用百度,所以一直都没有找到太多Nearlink-DK-WS63E的资料。

不断的搜索+AI提问,其实没有太好的答案。其间,还曾经试过安装DevEco Device Tool,强制安装了Python3.8和VS Code,搞得我的Host环境崩溃。从那时起,我就决定要用docker来做环境搭建,当然,这是我一直比较喜欢的做法,安全,试错成本低。也因为早已是深度的Linux开发者,所以就放弃了windows。最可悲的是搜索william hill官网 时,发现其他人写的开发环境都是HiSpark Studio+ Windows。

资料找不到,我一直踉踉跄跄的找着,后来搜到海思的william hill官网 ,里面介绍了一个vmware的系统整个打包的案例,深感不方便。

看见https://gitee.com/hihopeorg_group/near-link/tree/master/OH-SDK,这里面的sdk readme赫然写着“WS63 OpenHarmony SDK 请联系淘宝客户获取, 获得SDK后,请在Linux环境下解压”

所以,找到
英国威廉希尔公司网站 -润和芯片社区企业店-淘宝网

获得资料

按着这份sdk readme,一路编译下来,一直到“编译工程”之前,都能解决问题,但是进入到“编译工程”,无论如何遇到许多的errors,就是过不去了。

  • 出错举例
    image(1).png
    image(2).png
    image(3).png

整个过程走下来,花了几十个小时是肯定有的。但是似乎一直在绕,这种绕多数是因为找不到官方的一些资讯。这种资讯,猜测会不会是因为它的玩法就不是针对个人开发者和C端客户的呢?虽然它的硬件配置按官方来说,非常强大,但是软件和开发方式则显得扑朔迷离。

  1. 到底哪里是官方的平台,如果星闪Nearlink是一种技术,是不是该属于发起技术的机构,而不是设备生产商,按逻辑来说,应该是这样,对吧。
  2. 还有,到底那么多概念,例如HiSpark/Nearlink/Hisilicon/Hi3861/Hi3863/WS63E/WS63/DevEco Device Tool/LiteOS/OpenHarmony,有没有一个比较权威的渠道可以找到一个tutorial。慢慢找当然也能找到,但是据目前来看,我看见说Windows+Linux都可以开发,但是所有答案都是清一色的Windows+HiSpark Studio,如此的同质化的根源到底是什么,应该都能想得到。sdk理论上应该是润和给,实际最后也是,但是他默认你知道他的一切资料得去代码仓库找,也默认你知道他的代码仓库就是在gitee,除此之外,没有别的地方了。官方网站好像是专门负责消音,连下一步的线索(例如提示:请前往gitee.com/xxx获取代码)也找不着。这无疑是毫无必要的增加了开发的难度。
  3. 这么强的技术背景和公司背景,但是做出来的的产品,却还有一定的提升空间。

以下是此次的dockerfile & compose.yml,抛砖引玉,也给自己留作记录,下一步更深度的了解这块板子之后的开发来使用

  • Dockerfile
    # Use Ubuntu 20.04 as base image
    FROM ubuntu:20.04
    
    # Prevent interactive prompts during installation
    ENV DEBIAN_FRONTEND=noninteractive
    
    # Create workspace structure
    WORKDIR /workspace
    COPY oh_sdk_latest.tar.gz /workspace
    
    # Configure apt source
    RUN echo '\\\\
    deb <http://mirrors.aliyun.com/ubuntu/> focal main restricted universe multiverse\\\\n\\\\
    deb <http://mirrors.aliyun.com/ubuntu/> focal-security main restricted universe multiverse\\\\n\\\\
    deb <http://mirrors.aliyun.com/ubuntu/> focal-updates main restricted universe multiverse\\\\n\\\\
    deb <http://mirrors.aliyun.com/ubuntu/> focal-proposed main restricted universe multiverse\\\\n\\\\
    deb <http://mirrors.aliyun.com/ubuntu/> focal-backports main restricted universe multiverse\\\\n\\\\
    ' > /etc/apt/sources.list
    
    # Configure pip
    RUN mkdir -p /root/.pip && echo '\\\\
    [global]\\\\n\\\\
    index-url = <https://mirrors.aliyun.com/pypi/simple/\\\\n\\\\>
    trusted-host = mirrors.aliyun.com\\\\n\\\\
    timeout = 120\\\\n\\\\
    ' > /root/.pip/pip.conf
    
    # Install dependencies
    RUN set -ex \\\\
        && apt-get update \\\\
        && apt-get install -y \\\\
            curl \\\\
            wget \\\\
            git \\\\
            vim \\\\
            python3.8 \\\\
            python3.8-dev \\\\
            python3.8-distutils \\\\
            python3-pip \\\\
            cmake \\\\
        && ln -sf /usr/bin/python3.8 /usr/bin/python3 \\\\
        && ln -sf /usr/bin/python3.8 /usr/bin/python
    
    # Install nvm and Node.js
    RUN curl -o- <https://gitee.com/mirrors/nvm/raw/master/install.sh> | bash \\\\
        && export NVM_DIR="$HOME/.nvm" \\\\
        && [ -s "$NVM_DIR/nvm.sh" ] && \\\\. "$NVM_DIR/nvm.sh" \\\\
        && [ -s "$NVM_DIR/bash_completion" ] && \\\\. "$NVM_DIR/bash_completion" \\\\
        && nvm install 22 \\\\
        && nvm install 20 \\\\
        && nvm alias default 22 \\\\
        && nvm use 22 \\\\
        && npm config set registry <https://registry.npmmirror.com>
    
    # Configure nvm in .bashrc for future sessions
    RUN echo '\\\\
    export NVM_DIR="$HOME/.nvm"\\\\n\\\\
    [ -s "$NVM_DIR/nvm.sh" ] && \\\\. "$NVM_DIR/nvm.sh"\\\\n\\\\
    [ -s "$NVM_DIR/bash_completion" ] && \\\\. "$NVM_DIR/bash_completion"\\\\n\\\\
    ' >> ~/.bashrc
    
    # Set workspace
    WORKDIR /workspace/sdk
    
    # Use login shell
    SHELL ["/bin/bash", "-l", "-c"]
    CMD ["bash", "-l"]
    
  • docker-compose.yml
    # version: '3.8'
    
    services:
      ws63-dev:
        build:
          context: .
          dockerfile: Dockerfile
        image: image_ws63
        container_name: container_ws63
        network_mode: "host"
        volumes:
          - ./sdk:/workspace/sdk
          - ./src:/workspace/src
        privileged: true
        tty: true
        stdin_open: true
        environment:
          - TERM=xterm-256color
        entrypoint: >
          /bin/bash -c "
            cd /workspace &&
            if [ ! -d /workspace/sdk/near_link_sdk ]; then
              tar -axvf /workspace/oh_sdk_latest.tar.gz -C /workspace/sdk/;
              cd /workspace/sdk/near_link_sdk && 
              mkdir -p developtools/ace_ets2bundle/compiler &&
              mkdir -p developtools/ace_js2bundle/ace-loader &&
              mkdir -p third_party/jsframework &&
              mkdir -p third_party/parse5/packages/parse5 &&
              mkdir -p third_party/weex-loader &&
              mkdir -p arkcompiler/ets_frontend/legacy_bin/api9 &&
              mkdir -p arkcompiler/ets_frontend/legacy_bin/api8 &&
              mkdir -p interface/sdk-js/build-tools &&
              mkdir -p arkcompiler/ets_frontend/arkguard;
            fi;
            exec bash"
    

回帖(1)

昨天 14:37
海思的代码仓里应该是官方的sdk,另外还有一个oh_sdk
举报

更多回帖

发帖
×
20
完善资料,
赚取积分