Atlas 200 DK 系列 -- 快速搭建开发环境_java-8-openjdk-amd64交叉编译环境-程序员宅基地

技术标签: 嵌入式AI  深度学习  Atlas200DK系列  # 华为Atlas200DK系列  

一 、PC虚拟机上安装Ubuntu

(系统版本为(ubuntu-16.04.3-desktop-amd64.iso),与版端系统版本必须对应(ubuntu-16.04.3-server-arm64.iso))
       1.在Pc机上安装完ubuntu系统

虚拟机的安装以及ubuntu的具体操作,就不描述了,网上很多。注意修改一下内存。
         弹出系统更新时,请选(Don't Upgrade)不更新,然后点击ok,如下两图所示: 

       


       
       2.更改国内软件源:
           打开火狐浏览器,在百度上输入“ubuntu源”找到链接  “ubuntu 16.04 几个国内更新源-bovenson-博客园”, 进入
        "https://www.cnblogs.com/bovenson/p/5752213.html"
        选择 “清华大学” 下所有源链接,复制

        然后进入 ubuntu打开终端,命令输入:
            
            ascend@ubuntu:~$ sudo passwd root   ###修改密码
            ascend@ubuntu:~$ su - root
            root@ubuntu:~# apt-get install vim  ## vim
                         
            root@ubuntu:~# cd /etc/apt
            root@ubuntu:/etc/apt# ll

            root@ubuntu:/etc/apt# vim sources.list      # 插看软件源列表

            root@ubuntu:/etc/apt# >sources.list         # 清空软件源
            root@ubuntu:/etc/apt# vim sources.list 
            ---> 按i键切换到编写模式:将清华大学软件源或者其他的比如说阿里云的都可以,复制链接粘贴,按Esc切换到命令模式,保存退出:wq!

            root@ubuntu:/etc/apt# apt-get update         # 刷新软件源列表
            root@ubuntu:/etc/apt# exit                   # 退出root用户
            
       3.安装Goole chorme(Mind Studio只能在这个浏览器上访问)
        对于谷歌Chrome32位版本,使用如下链接:
        wget https://dl.google.com/linux/direct/google-chrome-stable_current_i386.deb
        对于64位版本可以使用如下链接下载:
        wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb 
        下载完后,运行如下命令安装。
        
        可以先下载好,这里下载的是64位版本的,放在指定的文件夹,切换到Downloads
            ascend@ubuntu:~$ cd Downloads/
            ascend@ubuntu:~/Downloads$ sudo dpkg -i google-chrome* 
            ascend@ubuntu:~/Downloads$ sudo apt-get -f install   #常见的修复安装命令

二、 在PC上安装Mind Studio
   a.安装Mind Studio前的准备
       1、配置Mind Studio安装用户权限
            ascend@ubuntu:~$ su - root  ###进入root
            
            root@ubuntu:~# cd /etc
            root@ubuntu:/etc# ll
                        
            root@ubuntu:/etc# ll sudoers  ###查看其读写权限,只有读权限


                        
            root@ubuntu:/etc# chmod u+w /etc/sudoers  #赋予读写权限

            root@ubuntu:/etc# vim /etc/sudoers
            
            添加:
            ascend ALL=(ALL:ALL) NOPASSWD:SETENV:/usr/bin/apt-get
            注意:请确保“/etc/sudoers”文件的最后一行为“#includedir /etc/sudoers.d”,如果没有该信息,请手动添加
            按下Esc切换到命令模式,执行:wq!命令保存文件并退出

            root@ubuntu:/etc# chmod u-w /etc/sudoers  ###写权限改回
            
            root@ubuntu:/etc# ll sudoers  ###查看其读写权限,只有读权限

            root@ubuntu:/etc# exit   ###回归普通用户
   
        2、安装依赖(安装之前,确保软件源已经更改好)
           1)安装Mind Studio相关依赖(注意实践证明,网络配置模式在NAT模式,也就是默认的模式,非桥接模式,否则很难下载,出现网络下载不了的问题)
           ascend@ubuntu:~$ sudo apt-get install gcc g++ cmake curl libboost-all-dev libatlas-base-dev unzip haveged liblmdb-dev python-skimage python3-skimage python-pip python3-pip libhdf5-serial-dev libsnappy-dev libleveldb-dev swig python-enum python-future make graphviz autoconf libxml2-dev libxml2 libzip-dev libssl-dev sqlite3 python

如图所示:

正常情况是所有都为0,这里是有555个软件未升级。如果报错如下:

             0 upgraded, 0 newly installed, 0 to remove and 555 not upgraded

              解决方法:

                   ascend@ubuntu:~$ sudo apt-get dist-upgrade  # 更新软件,这又是一个漫长的等待。。。。。
           2)安装openJDK
            a. ascend@ubuntu:~$ sudo apt-get install -y openjdk-8-jdk
            
            b. 配置JAVA_HOME环境变量,Mind Studio的安装及运行都依赖该环境变量,设置方法如下
                a.打开.bashrc文件
                  ascend@ubuntu:~$ vim ~/.bashrc 
                
                b.打开.bashrc文件后,在末尾添加:(shift+g可以将光标移动到最下面,o可以另起一行)
                    export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 
                    export PATH=$JAVA_HOME/bin:$PATH

如下图所示:                 
                按下Esc,执行:wq!命令保存文件并退出
                
                c.使环境变量生效
                  ascend@ubuntu:~$ source ~/.bashrc  
                 
                d.检查环境变量设置
                  ascend@ubuntu:~$ echo $JAVA_HOME   
                       # 回显信息如下:
                       /usr/lib/jvm/java-8-openjdk-amd64


                       
                e.检查JDK安装
                  ascend@ubuntu:~$ which jconsole     # which查看可执行文件在哪
                       # 如果输出如下回显信息表示安装成功,如果未输出如下回显信息表示JDK安装失败:  
                      /usr/lib/jvm/java-8-openjdk-amd64/bin/jconsole


    b.开始安装Mind Studio
      创建ascend目录,子目录mksd下拷入安装所需文件:./1.3.0.0/下所有文件,

        ascend@ubuntu:~$ cd /home/ascend/mksd
        ascend@ubuntu:/home/ascend/mksd$ unzip mini_mind_studio_Ubuntu.rar./instal
      
      给当前用户添加root权限
        ascend@ubuntu:/home/ascend/mksd$ su root
        root@ubuntu:/home/ascend/mksd# ./add_sudo.sh ascend  ##添加权限

        root@ubuntu:/home/ascend/mksd# exit ##回归普通用户

        ascend@ubuntu:/home/ascend/mksd# vim env.conf  ##修改本机ip为 127.0.0.1(我的本机Ip:192.168.15.173,这里的地址用来访问MindStudio的地址) 其他不变

        ascend@ubuntu:/home/ascend/mksd# ./install.sh  ###会提示安装成功

最后改一下适配器中的网络连接,经过实践证明,在安装的过程中不要设置网络适配器,否则无法获得vim,或者其他的一些依赖,将“NAT模式”改为“桥接模式”,如图:


三、 制卡:
    准备工作:
       需要: make_sd_card.py 和make_ubuntu_sd.sh
       相关安装包:mini_developerkit-1.3.T34.B891.rar   , ubuntu-16.04.3-server-arm64.iso
    
    1. 把卡插进读卡器,把读卡器插进PC里

    2. 安装依赖包:(其实就是搭建环境)
    命令如下:
        ascend@ubuntu:~$ su root   ###进入root

        root@ubuntu:~#apt-get install qemu-user-static binfmt-support python3-yaml gcc-aarch64-linux-gnu g++-aarch64-linux-gnu
                    
        root@ubuntu:~#cd /home/ascend/

        root@ubuntu:/home/ascend/#fdisk -l   ###查找sd卡在哪个环境下

        root@ubuntu:/home/ascend/#python3 make_sd_card.py local /dev/sdb 
        
        输出成功信息: Make sd card successfully
    
    3. 把卡拔出来,插到开发板上


四、连接并启动开发板
    1、开发板连接宿主机
       两种连接方式:usb连接和网线连接,二者选其一,网线连接设为麻烦了些。
       1) usb连接:  

typc1接口是重接口,不支持odg的,所以这个开发板只能作为重设备来使用。(不了解这个概能的,可以去了解一下usb协议基础)

开发板与宿主机走的是USB虚拟网卡的连接方式,也就是说,当开发板开机,与宿主机连接好了之后,它会在宿主机上创建一个usb的虚拟网卡,此时这个usb虚拟网卡是没有地址的,也没有动态ip,开发板和宿主机还没有连接,而我们要做的就是给这个宿主机的usb虚拟网卡分配一个静态IP,这个虚拟网卡和开发板都有了ip地址之后,就可以连接了。注意这两个ip需要和开发板在一个网段。
       下载:configure_usb_ethernet.sh

脚本自动化执行方式
       ascend@ubuntu:~Downloads$ su root   ###进入root
       root@ubuntu:/home/ascend/Downloads# bash configure_usb_ethernet.sh  -s 192.168.15.175  # 配置结束

 如果直接执行(bash configure_usb_ethernet.sh)的话,脚本会给虚拟网卡默认分配一个192.168.15.166。如果pc上有了这个ip地址已经存在,就会造成地址冲突,所以添加 -s 192.168.15.175来添加自己选定的ip地址。

       root@ubuntu:/home/ascend/Downloads# ifconfig   # 看一下ip地址。

       root@ubuntu:/home/ascend/Downloads#  ssh [email protected]     # 验证一下与开发板的连接
  手动执行方式

       ascend@ubuntu:~Downloads$ su root   ###进入root

       ascend@ubuntu:/home/ascend/Downloads$ ifconfig    # 获取一下usb网卡名

            进入interfaces,添加虚拟的静态IP:
           root@ubuntu:/home/ascend/Downloads#  vim /etc/network/interfaces
           配置interfaces文件,例如添加一个 ens160u4u1 的静态IP为 192.168.15.175,配置方法如下
            auto lo
            iface lo inet loopback
            auto ens160u4u1

            iface ens160u4u1 inet static

           address 192.168.15.175
            netmask 255.255.255.0

           修改“NetworkManager.conf”文件,避免重启后网络配置失效:
            root@ubuntu:/home/ascend/Downloads#  vim /etc/NetworkManager/NetworkManager.conf
           修改文件中的“managed=false”为“managed=true”

         root@ubuntu:/home/ascend/Downloads# service NetworkManager restart  //Ubuntu Server版本,此步骤请忽略

        root@ubuntu:/home/ascend/Downloads# ifconfig   # 看一下ip地址


       

       验证一下是否能连接开发板

       root@ubuntu:/home/ascend/Downloads# ssh [email protected]

2) 网线连接:
       开发板静态IP地址:192.168.15.167  ,在宿主机上配IP也就只能192.168.15.X, 这个地址不能在宿主机上配置192.168.15.167
       配置如下:
       a. ascend@ubuntu:~$ su - root
       b. 进入interfaces,添加虚拟的静态IP:
        root@ubuntu:~# vim /etc/network/interfaces
           配置interfaces文件,例如添加一个 eth0 :1的静态IP为 192.168.15.175,配置方法如下
            auto eth0:1
            iface eth0:1 inet static
            address 192.168.15.175
            netmask 255.255.255.0


      c.修改“NetworkManager.conf”文件,避免重启后网络配置失效:
        root@ubuntu:~# vim /etc/NetworkManager/NetworkManager.conf
        修改文件中的“managed=false”为“managed=true”


        
       d.重启网络相关服务
        root@ubuntu:~# service networking restart
        root@ubuntu:~# service NetworkManager restart  //Ubuntu Server版本,此步骤请忽视

       e.验证一下是否能连接开发板

       root@ubuntu:~# ssh [email protected]
    

如果你在制卡的时候用的机器,就是你制卡用的机器就是装MindStudio用的机器的话,到这步就算是彻底完成了。
    2、配置交叉编译环境(可选的)
       使用Atlas 200 DK进行应用程序开发前,用户需要在Mind Studio所在的Linux服务器中配置交叉编译环境。
       如果制作SD卡的Ubuntu服务器即为Atlas 200 DK开发者板连接的Mind Studio所在的服务器,则本节可以跳过。制作SD卡时,会自动为当前制卡的Ubuntu服务器部署交叉编译环境
       如果制卡用的机器就是安装MindStudio的机器,就不需要配置交叉编译环境
       amd64是基于X86架构的。
       MindStudio的编译-执行-应用,其实就是在宿主机上把代码编译成二进制,然后把编译好的二进制和各种库等资源推送到开发板上,最后在开发板上把这个应用拉起来。
       在X86的系统上编了arm的代码,原因在于:在宿主机上配好了一个arm的编译环境,配置编译环境的过程就叫配置交叉环境。

        make_ui_cross_env.py
       操作步骤如下:
       a. 下载,获取配置交叉编译环境脚本“make_ui_cross_env.py”上传到Mind Studio所在服务器任一目录,例            如/home/ascend/Downloads,切换到Downloads
           ascend@ubuntu:~/Downloads$ ll
           
       b. 切换到root用户下
           ascend@ubuntu:~/Downloads$ su - root  
           
       c. 执行如下命令安装pexpect,用于实现SSH自动交互
           root@ubuntu:/Downloads# pip3 install pexpect
           
       d. 执行配置交叉编译环境的脚本(必须把开发板连上,要联网,否则无法下载编译器)
           root@ubuntu:/Downloads# python3 make_ui_cross_env.py 
    
       会提示输入如下信息:

        Atlas DK Development Board IP: Atlas 200 DK开发者板的IP地址。(本文的是:192.168.15.167)

        Atlas DK Development Board SSH user:Atlas 200 DK开发者板的SSH登录用户名,请配置为普通用户,默认用户为HwHiAiUser。

        Atlas DK Development Board SSH user password: Atlas 200 DK开发者板的SSH登录用户的密码。

        Atlas DK Development Board SSH port:Atlas 200 DK开发者板的SSH端口号,默认为22。

        如果下载过程中卡死了,就重新打开一个终端,输入ifconfig,检查一下开发板IP地址是不是掉了,如果掉了,就执行service NetworkManager restart。然后再重新跑一下交叉编译环境脚本,命令如下:root@ubuntu:/Downloads# python3 make_ui_cross_env.py 

    

注意本文的3个IP地址,这地址根据自己实际情况调整,但注意一下,必须在同一个网段:

本机:192.168.15.173  ----》在谷歌浏览器登入mindstudio时,需要用到,注意是你宿主机的ubuntu系统下的IP地址

开发板:192.168.15.167

如果是网线连接,上面两个就可以!

虚拟网卡:192.168.15.175  宿主机的ubuntu系统下的虚拟网卡,这是与开发板连接的虚拟网卡的IP地址

3、常见问题总结
        1. 需要确认开发者板的版本的一致性
            首先,在MindStudio -About -Version确认
            其次,确定开发者板上的版本。
            操作:以HwHiAiUser用户ssh登录到开发者板,然后切换到root用户。
            键入 ssh [email protected]
            执行如下命令查看开发者板的Ascend 310软件升级后的版本号。
            cat /etc/sys_version.conf
            切换到root用户。
            su - root
            进入firmware目录。
            cd /var/davinci/firmware/
            执行如下命令查询firmware的系统版本号。
            ./upgrade-tool --device_index -1 --system_version
            执行如下命令查询firmware的组件版本号。
            ./upgrade-tool --device_index -1 --component -1 --version

 

        2. 网络断了

           终端输入:ifconfig

                               service NetworkManager restart  # 重启网络

                               ifconfig

        4. 修改ip地址


        5. chrome 输入https://192.168.15.xxx:8888登录Mindstudio 网络链接失败   
            首先确认,ssh是否可以登录板端,如果不可以,重新设置IP等操作:
            (vi /etc/network/interfaces   
            vi /etc/NetworkManager/NetworkManager.conf
            service networking restart
            service NetworkManager restart );
            如果可以,执行下一步确认。
            其次确认,chrome浏览器可以打开类似百度网页,如果不可以,重启Network等网络服务;
            如果可以,执行一步。
            最后,在tools/bin文件夹下 执行./stop.sh 之后 再执行./start.sh,若还是不成功,两个配置ip的文件需要检查,把ip都改成现在的ip,两个文件分别是tools-covf-env.conf,tools-script-env.conf,这里的ip地址需要和chorme里输入的一样,如果还是不成功,出现这样的界面错误:

点击Advanced之后,进入下一个界面,再点击那个“not sercure”,成功的标志如下:

        3. 配置交叉编译器出现编译失败
            首先确认下载的脚本文件make_ui_cross_env.py是否正确。
            建议使用linux命令下载:wegt https://xxxxxxxxxxxxxxx
                        更改过下载源后,速度和下载后的文件稳定性更好,
            windows下下载的东西存在解压失败,以及解压出的文件大小和原文件不一致等情况。

 

 

 

 

 

 

欢迎大家加入一起学习讨论,有错误的地方请大家留言指出。

最后留个学习视频的链接:昇腾开发者社区 - 华为  https://ascend.huawei.com/Institute/0

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/SMF0504/article/details/103068481

智能推荐

dp优化入门学习_dp优化的学习路径-程序员宅基地

文章浏览阅读132次。dp优化_dp优化的学习路径

【学习笔记】杜教筛_杜教筛 csdn-程序员宅基地

文章浏览阅读629次。φ∗1idφ∗idn。_杜教筛 csdn

autojs模仿抖音logo效果_牙叔autojs源码-程序员宅基地

文章浏览阅读1.3k次。牙叔教程 简单易懂效果展示为什么做看到别人的头像是这种风格, 虽然我不会去修改自己的头像,但是我想知道如何实现这样的效果,虽然写出来了, 不过我感觉还是不完全像抖音的效果, 可能还缺点啥环境手机: Mi 11 ProAndroid版本: 11Autojs版本: 9.0.10思路抖音的logo看起来像两张图片重叠的效果两张图片是透明的还加了偏移从原图搞两张透明图片, 再叠加你将学到以下知识点设置seekbar监听事件在seekbar监听事件中, img设置图片, 然后_牙叔autojs源码

计算机基础知识_1 gb=1024 mb,fsg≤1gb.64~256m 15个节点。10gb大的txt文件存储需要-程序员宅基地

文章浏览阅读924次。1、 第一台计算机ENIAC淡生于1946年,是电子管计算机;第二代是晶体管计算机;第三代是中小规模集成电路;第四代是大规模集成电路; 3、 计算机的信息表示形式为二进制,它采用了冯。诺依曼的思想原理,即以0 和1两个数字形式用于展现,“逢二进一”;它的基本信息单位为位,即一个_1 gb=1024 mb,fsg≤1gb.64~256m 15个节点。10gb大的txt文件存储需要存多少个g

java给pdf打水印_java pdf 画水印-程序员宅基地

文章浏览阅读134次。package test3;import java.io.BufferedOutputStream;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.text.SimpleDateFormat;import java.util.Calendar;import com.itextpdf.text.BaseColor;import com.itextpdf.t._java pdf 画水印

【C++】回调函数与仿函数-程序员宅基地

文章浏览阅读1.9k次,点赞8次,收藏41次。C++学习笔记–回调函数与仿函数文章目录C++学习笔记--回调函数与仿函数一、回调函数1.定义2.例子函数指针利用函数指针实现回调函数二、仿函数1.定义2.使用仿函数来实现回调函数总结使用回调函数(函数指针实现)与使用仿函数优缺点比较一、回调函数1.定义我们先看百度百科定义:回调函数就是一个被作为参数传递的函数。在C语言中,回调函数只能使用函数指针实现,在C++、Python、ECMAScript等更现代的编程语言中还可以使用仿函数或匿名函数。为什么需要一个被作为参数传递的函数? 在实际需求中,往_回调函数与仿函数

随便推点

SQL语句多表查询-程序员宅基地

文章浏览阅读1.7w次,点赞6次,收藏43次。SQL语句多表查询_多表查询

使用Gitee多人项目协作开发的流程实例_gitee可以只开放部分目录给协作者吗-程序员宅基地

文章浏览阅读7.3k次,点赞8次,收藏60次。上一篇文章主要是初学Gitee,实现代码托管的功能,这一篇文章主要是学习Gitee协作开发的使用。这里我们用了一个企业账号来和两个社区账号进行演示。1.首先,企业账号下新建一个名称为协作开发测试仓库的公司主仓库,同时在仓库下新建两个分支lhy和lxw,同时仓库成员添加小组成员A和B。lhy用来存放组员A开发的代码部分,lxw用来存放组员B开发的代码部分。组员A、B此时在各自的账户下可以看到..._gitee可以只开放部分目录给协作者吗

idea上的maven形式的java web项目打包部署到linux的tomcat上_idea 接口发到linux 的tomcat中-程序员宅基地

文章浏览阅读378次。项目写好后,按照上述打成war包,丢到tomcat 的webapp目录里面,重启tomcat,访问链接是ip:8080/项目名/index.jsp_idea 接口发到linux 的tomcat中

详解离线安装Python库_python离线安装库-程序员宅基地

文章浏览阅读4.6w次,点赞12次,收藏22次。前段时间在项目上用到了离线部署Python环境及其依赖库,所以正好将离线安装Python库的解决方案分享给大家,希望能对新手有所帮助。文章目录1. 寻找库之间的依赖关系2. 使用requirements.txt进行批量安装_python离线安装库

python面向对象程序设计的三要素_第八章 Python——面向对象编程-程序员宅基地

文章浏览阅读561次。目录一、面向对象编程二、类class与对象object三、继承与派生四、多态与多态性(抽象类)五、封装六、绑定方法七、反射八、与面向对象有关的内置函数九、自定义内置方法十、元类十一、单例模式一、面向对象编程【面向过程编程】核心是过程二字,过程指的是解决问题的步骤,即先干什么再干什么然后干什么。。。基于该思想编写程序好比在设计一条流水线,是一种机械式的思维方式优点:复杂的问题流程化、进而简单化缺点:..._python面向对象的三要素实例

ASTC纹理压缩格式(Adaptive Scalable Texture Compression)_astcenc-程序员宅基地

文章浏览阅读1.2w次,点赞3次,收藏11次。ASTC(Adaptive Scalable Texture Compression)介绍Adaptive Scalable Texture Compression(ASTC)是一种世界领先的新型纹理压缩格式。这种压缩格式已经加入Khronos标准,并已在某些硬件平台中提供。本文介绍了它的工作原理、使用方法和如何最大程度地使用它。更深入的信息可以参考编码器提供的规范[Eva]。背景ASTC由ARM Limited针对目前已有的填充率较低的纹理压缩开发的一种灵活解决方案。在过..._astcenc

推荐文章

热门文章

相关标签