华为海思Hikey 970+ Ubuntu16.04 Xenial +ROS kinetic

文章目录

  • 1. 基础介绍
  • 2. 使用指南
    • 2.1 刷基础固件和android
    • 2.2 刷入Ubuntu
    • 2.3 安装ROS

1. 基础介绍

2018年3月19日的Linaro Connect大会上华为正式发布了HiHope Hikey 970开源硬件。HiHope Hikey 970基于华为海思麒麟970,采用了台积电10nm工艺,拥有4核[email protected]和4核[email protected],12核的Mali-G72。麒麟970是全球首款内置独立NPU(神经网络单元)的移动AI计算平台。HiHope Hikey 970拥有6GB的LPDDR4 和 64GB UFS。外围部分拥有支持4K高清的HDMI 2.0a接口,2个USB3.0接口,2个USB Type-C接口,1个千兆网口,支持CAN V2.0B协议,可以运行AOSP、Ubuntu、Debian等系统。

目前淘宝已经可以买到。

HiHope Hikey 970以强悍的性能和兼容于96Boards CE的标准,在计算机视觉、高性能计算开发、Android标准化程序开发测试等领域有广泛的应用,HiHope Hikey 970不只是开源硬件中的性能怪兽,因为集成了NPU(NPU相比与CPU在能效上有50倍以上的提升,性能上有25倍以上的提升),并且得到了华为HiAI生态的全力支持,在AI等人工智能领域开发中拥有巨大的发展前景,HiHope Hikey 970可运用于深度学习算法、智能机器人、无人驾驶和智慧城市等多个领域。

这款虽然是华为的产品但是主要的文档都在96boards的官网上。

Using the HiKey970
hikey970 相关软件

2. 使用指南

如果Hikey970开发板之前烧录了 Debian,再次烧录 Lebuntu 之后开机发现系统可能仍然是 Debian,可以先烧录 Android 再烧录 Lebuntu 。

2.1 刷基础固件和android

hikey 970 开发板刷基础固件和Android系统刷板子的系统主要包括两个方面,一个是基础固件,一个就是系统文件。根据板子上面四个开关状态的不同板子会处在不同的状态。
华为海思Hikey 970+ Ubuntu16.04 Xenial +ROS kinetic_第1张图片
开关位于图中的22的位置 这四个开关的功能分别是

1.自动开机 这个开关如果是On,当板子通电的时候就会自动启动系统。反之则上电之后要按电源键启动。
2.启动模式 开关是On的时候上电后启动至刷基础固件模式,这时候可以通过程序给板子刷基础固件。当是off的时候系统会从已经安装的bootloader启动。
3.系统启动模式 当是On的时候系统会以UEFI模式启动,反之则会直接启动系统
4.扩展功能选择 当是On的时候会使用低速扩展口功能,当是Off的时候会使用蓝牙功能。

基础固件包含了板子的bootloader等等。如果基础固件刷错了系统就不能再启动了。甚至连fastboot也不能使用,也无法再刷其他系统。正常情况下只是刷系统是不需要刷基础固件的。

安装基础程序

sudo apt-get install android-tools-adb
sudo apt-get install android-tools-fastboot

基础固件

以下的操作都是在Linux系统环境下完成的

下载镜像

从96boards的970下载主页下载最新的系统镜像。目前(2018.5.19)只有Android的。这个文件中包含了基础固件和系统镜像。

下载完成后你需要解压这个文件。在image文件夹中包含了需要的文件。

下载镜像工具

git clone https://github.com/96boards-hikey/tools-images-hikey970

官方的工具有错误,我们需要进行修改后才能用 在 recovery-flash.sh 的第九行

UEFI_BUILD_PATH=/home/qubo/tools-images-hikey970

改为

UEFI_BUILD_PATH=${PWD}

然后把刚才下载的文件中的image里的所有文件复制到tools-images-hikey970文件夹

设置开发板启动方式

把板子的开关设置成 On On On Off,然后上电。按照之前的说明,这时候板子处在刷基础固件的状态。 用数据线通过USB把板子和电脑连接起来。

正常情况下你会在/dev/ 文件夹下面发现一个ttyUSBX的设备,X是一个数字可能是0,1之类的。确认自己的板子是对应哪个设备。

刷入固件

运行

sudo ./recovery-flash.sh ttyUSBX

如果你的设备是ttyUSB0那么你可以省略第二个参数
程序卡在了 wait for devices可能的原因是

1.你安装过modemmanager,这个程序会给我们的板子发数据导致程序写入失败。解决方法很简单,卸载这个软件
sudo apt-get purge modemmanager
2.你刷入了错误的固件。可能你的固件是从别的地方下载的,也可能是自己编译的。如果是这样那么很有可能是固件自身出了问题。

系统镜像

实际上在刷入上个基础固件的时候会自动的把系统镜像也刷入进去。这时候把板子上的开关设置为On Off On Off就可以启动系统了。第一次启动的时候要多等一会,因为Android要先初始化一下。

如果只是要刷系统固件可以只刷入系统固件中的下面几个文件。执行

sudo fastboot flash boot boot.img
sudo fastboot flash cache cache.img
sudo fastboot flash system system.img
sudo fastboot flash userdata  userdata.img

2.2 刷入Ubuntu

镜像下载

官方网址: https://www.96boards.org/
国内网站:http://smartfire.cn/forum-64-4.html

其中 Lebuntu 烧录之后就是 ubuntu16.04 (xenial),板载的wifi模块可以直接连无线网。

烧录过程

1、在Ubuntu虚拟机中安装烧录工具,下载镜像文件的压缩包并进行解压。

sudo apt-get install android-tools-adb
sudo apt-get install android-tools-fastboot
cd “下载目录”
tar -xvzf hikey970-lebuntu-16.04.tar.gz
cd hikey970-lebuntu-16.04

2、给 hikey970 板断电,将4位拨码开关拨到 ON OFF ON OFF,用USB type-c数据线将板子的 Type C 接口与 Ubuntu 虚拟机连接。

3、给板子通电后,在虚拟机中打开终端,使用 lsusb 指令查看是否有 Google Inc. 字样的USB设备,如果有则执行步骤4,如果没有则执行步骤5。

4、执行指令

 ./flash-all-binaries.sh

即可完成系统烧录。

5、注意仔细看第3条,当没有 Google Inc. 设备被识别时才执行这条。先将拨码改为 ON ON ON OFF,重启板子,查看USB终端编号

ls /dev/tty*

记住终端名称 /dev/ttyUSBx 其中 x 可能是 0、1、2等数字,在镜像文件的目录中执行

./binaries/recovery-flash.sh /dev/ttyUSBx

即可完成系统烧录。

6,烧录完成后,将拨码改为 ON OFF OFF OFF,其中第一个 ON 表示通电后立即启动。

7、登录系统,用户名和密码都是 shunya,在终端中查看系统详情。

#:lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 16.04.4 LTS
Release:        16.04
Codename:       xenial

修改分区

首先查看默认的分区空间,在 hikey970 上登录系统后在终端中输入指令

df -h

可以看到根目录只有不到 4GB 的空间。

扩展空间需要重新进行分区镜像文件的烧写。

下载地址:https://test-1252517595.cos.ap-guangzhou.myqcloud.com/media/hikey970/64gtoendprm_ptable.img

下载之后拷贝到 Ubuntu 虚拟机中。将hikey970拨码拨到 ON OFF ON OFF,用USB Type-C 数据线连接板子 TYPE C 接口和 Ubuntu 虚拟机(参考上述烧录步骤)。执行一条指令

sudo fastboot flash ptable 64gtoendprm_ptable.img
重新将拨码拨到 ON OFF OFF OFF,登录 hikey970 板载系统,在终端中输入指令 sudo fdisk -l 查看分区情况。

#: sudo fdisk -l
Device      Start      End  Sectors  Size Type
/dev/sdd1     256      511      256    1M Microsoft basic data
/dev/sdd2     512     3583     3072   12M Microsoft basic data
/dev/sdd3    3584     5119     1536    6M Microsoft basic data
/dev/sdd4    5120     8191     3072   12M Linux filesystem
/dev/sdd5    8192    73727    65536  256M Microsoft basic data
/dev/sdd6   73728    73983      256    1M Microsoft basic data
/dev/sdd7   73984    94463    20480   80M EFI System
/dev/sdd8   94464    98559     4096   16M EFI System
/dev/sdd9   98560   102655     4096   16M Microsoft basic data
/dev/sdd10 102656   106751     4096   16M Microsoft basic data
/dev/sdd11 106752   107263      512    2M Microsoft basic data
/dev/sdd12 107264 15611907 15504644 59.1G Linux filesystem

可以看到最后一个分区是 /dev/sdd12,大小接近60G。

输入指令 df -h,查看根目录大小是否变化。如果还是小于 4GB,则需要输入指令

sudo resize2fs /dev/sdd12

来手动调整分区大小,最终得到的结果是。

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/root        59G  4.5G   52G   8% /
devtmpfs        2.8G     0  2.8G   0% /dev
tmpfs           2.9G     0  2.9G   0% /dev/shm
tmpfs           2.9G   17M  2.8G   1% /run
tmpfs           5.0M  4.0K  5.0M   1% /run/lock
tmpfs           2.9G     0  2.9G   0% /sys/fs/cgroup
tmpfs           577M     0  577M   0% /run/user/107
tmpfs           577M     0  577M   0% /run/user/1000

根目录已经扩展到59GB。

2.3 安装ROS

添加ROS软件源

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'

添加key

sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

开始安装

sudo apt-get update
sudo apt-get install ros-kinetic-desktop-full

配置环境

sudo rosdep init
rosdep update

echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc
source ~/.bashrc

安装编译软件包依赖

sudo apt install python-rosinstall python-rosinstall-generator python-wstool build-essential

测试

roscore

华为海思Hikey 970+ Ubuntu16.04 Xenial +ROS kinetic_第2张图片成功!

参考文献:

[1]介绍+刷机 https://doc.bwbot.org/zh-cn/books-online/hikey970-doc/topic/461.html

[2]Ubuntu烧录 https://blog.csdn.net/SIR_wkp/article/details/86226611

[2] ROS安装 http://wiki.ros.org/kinetic/Installation/Ubuntu

你可能感兴趣的:(华为海思Hikey 970+ Ubuntu16.04 Xenial +ROS kinetic)