【FFH】Linux下配置小熊派-鸿蒙·叔设备开发(南向)的开发环境 原创 精华

Wait_Aurora
发布于 2022-2-6 15:26
浏览
2收藏

Linux下配置小熊派-鸿蒙·叔(BearPi-HM Micro)设备开发的开发环境

春节不停更,此文正在参加「星光计划-春节更帖活动」

一、前言

BearPi-HM Micro开发板是一块高度集成并可运行Openharmony系统的开发板,板载高性能的工业级处理器STM32MP157芯片,搭配4.3寸LCD电容式触摸屏,并板载wifi电路及标准的E53接口。上面是废话,单纯介绍小熊派的简单情况。官方有一个看似十分有一个十分简单的“10分钟”教程,官网教程。但是我觉得他的开发模式反而把简单的事情复杂化了。官方考虑到大多数人用Windows系统,而鸿蒙代码的编译又要在Linux系统,所以采用了虚拟机装Linux系统的方案,代码编译完成后却又把固件放在Windows系统用STM32CubeProgrammer进行一个固件的烧录。这样绕来绕去估计好多小伙伴都绕晕了。STM32CubeProgrammer是用JAVA开发的,Windows、Linux、MacOS全平台通用,所以费不着在绕回Windows进行一个烧写固件的操作,直接在Linux下烧录就行了。本着奥卡姆剃刀原理的精神,写下这篇教程。本篇文章适合有Linux基础,装了双系统或者U盘装了Linux系统的小伙伴,以及准备在Linux继续开发小熊派的小伙伴(虚拟机未实测,出了问题自己想办法)。以Ubuntu 20.04系统为例,从0开始一点点实现安装,编译,烧录全流程。本以为Stm32CubeProgrammer装了在Linux上就完事了,谁知遇到了一些让我不知所措的问题,好在最好成功解决

二、准备工作

  1. 一台以及装在实体机上的Linux系统,这里以Ubuntu为例。(不推荐虚拟机,出了问题自己解决)
  2. 畅通无阻的网络
  3. 小熊派-鸿蒙·叔(BearPi-HM Micro)一台

三、流程简介

修改bash --> 安装依赖 --> 检查Python3.7+ --> 安装hb --> 安装mkimage.stm32 --> 安装STM32CubeProgrammer --> 安装CH340驱动 --> 获取源码 --> 编译烧录

四、开始安装

1.将Linux shell改为bash

#查看shell是否为bash.
ls -l /bin/sh

#如果为显示为/bin/sh -> bash则为正常,否则请按以下方式修改

#方法一:在终端运行如下命令,然后选择 no。
sudo dpkg-reconfigure dash
#方法二:先删除sh,再创建软链接。
rm -rf /bin/sh
sudo ln -s /bin/bash /bin/sh

2.安装安装必要的库和工具

sudo apt-get install build-essential gcc g++ make zlib* libffi-dev e2fsprogs pkg-config flex bison perl bc openssl libssl-dev libelf-dev libc6-dev-amd64 binutils binutils-dev libdwarf-dev u-boot-tools mtd-utils gcc-arm-linux-gnueabi cpio device-tree-compiler net-tools openssh-server git vim openjdk-11-jre-headless

3.检查Python环境

# 输入如下命令,查看python版本号,确保版本python3.7+
python3 --version

# 如果低于python3.7版本,不建议直接升级,请按照如下步骤重新安装。

# 以python3.8为例,按照以下步骤安装python
sudo apt-get install python3.8
# 设置python和python3软链接为python3.8
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.8 1
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 1
# 安装并升级Python包管理工具(pip3)
sudo apt-get install python3-setuptools python3-pip -y
sudo pip3 install --upgrade pip

4.安装hb

# 运行安装命令
python3 -m pip install --user ohos-build
# 配置环境命令(用Ubuntu自带的gedit比较方便,如果是其他Linux发行版的可以使用vi或vim)
gedit ~/.bashrc
# 将以下命令拷贝到.bashrc文件的最后一行,(ctrl+s)保存并退出
export PATH=~/.local/bin:$PATH
# 执行如下命令更新环境变量
source ~/.bashrc
# 测试是否安装成功
hb -h
# 会看到如下输出

5.安装mkimage.stm32

# 1.新建tools目录
mkdir ~/tools
# 2.下载mkimage.stm32工具,并复制到~/tools目录下(“~”代表的是你的用户目录)
# 3.执行以下命令修改mkimage.stm32工具权限
chmod 777 ~/tools/mkimage.stm32
# 4.设置环境变量
gedit ~/.bashrc
# 将以下命令拷贝到.bashrc文件的最后一行,保存并退出
export PATH=~/tools:$PATH
# 执行如下命令更新环境变量
source ~/.bashrc

6.安装Stm32CubeProgrammer

  1. 下载Stm32CubeProgrammer的Linux安装包,官网链接

  2. 解压双击.linux文件安装

  3. 一路下一步

  4. 添加规则文件(这一步要了我的命,作为最核心的一步,折腾不好差点就放弃了,好在老师救了我)

    • 找到Stm32CubeProgrammer安装目录,安装时可以选择,在用户目录下
      【FFH】Linux下配置小熊派-鸿蒙·叔设备开发(南向)的开发环境-鸿蒙开发者社区
    # 进入Drivers/rules文件夹
    cd Drivers/rules
    # 复制.rules文件到/etc/udev/rules.d
    sudo cp 49-stlinkv2-1.rules 49-stlinkv2.rules 49-stlinkv3.rules 50-usb-conf.rules /etc/udev/rules.d
    
  5. 完成。(添加规则文件这一步十分重要,没有添加在Stm32CubeProgrammer中就检测不到USB了)

7.安装CH340驱动

  1. 下载CH340的Linux驱动(不要纠结340还是341的问题,能用就行),官网链接

  2. 解压到任意目录

  3. # 查看Linux自带的驱动
    ls /lib/modules/$(uname -r)/kernel/drivers/usb/serial
    # 删除原有驱动
    cd /lib/modules/$(uname -r)/kernel/drivers/usb/serial
    sudo rm -rf ch341.ko
    # 查询操作系统的内核版本号
    uname -r
    
  4. 到这个网站寻找对应的代码

  5. 打开ch34x.c,替换掉里面的代码

  6. # 在当前目录打开命令行
    make
    # 复制ch34x.ko文件
    sudo cp ch34x.ko /lib/modules/$(uname -r)/kernel/drivers/usb/serial 
    
  7. # 输入lsmod命令查看是否安装成功
    lsmod
    # 存在代表成功
    Module                  Size  Used by
    usbserial              53248  1 ch34x
    

8.获取源码

在此之前需要先注册gitee账号,并配置邮箱。源码链接

git config --global user.name "yourname"
git config --global user.email “your-email-address"
git clone https://gitee.com/bearpi/bearpi-hm_micro_small.git -b master

9.编译安装

# 进入下载路径
cd ~/bearpi-hm_micro_small
# 开始编译
hb set
# 输入当前路径
.
# 回车选择“bearpi-hm_micro”
# 编译
hb build -t notest --tee -f
# 等待直到屏幕出现:build success字样,说明编译成功。

10.复制系统镜像

cp out/bearpi_hm_micro/bearpi_hm_micro/OHOS_Image.stm32 applications/BearPi/BearPi-HM_Micro/tools/download_img/kernel/
cp out/bearpi_hm_micro/bearpi_hm_micro/rootfs_vfat.img applications/BearPi/BearPi-HM_Micro/tools/download_img/kernel/
cp out/bearpi_hm_micro/bearpi_hm_micro/userfs_vfat.img applications/BearPi/BearPi-HM_Micro/tools/download_img/kernel/

11.烧写固件

【FFH】Linux下配置小熊派-鸿蒙·叔设备开发(南向)的开发环境-鸿蒙开发者社区

  1. 将开发板的拨码开关上拨到“000”烧录模式,并按一下开发板的RESET按键

【FFH】Linux下配置小熊派-鸿蒙·叔设备开发(南向)的开发环境-鸿蒙开发者社区

  1. 点击STM32CubeProgrammer工具的“+”按钮,
    然后选择烧录配置的tsv文件。

    # 目录地址
    bearpi-hm_micro_small/applications/BearPi/BearPi-HM_Micro/tools/download_img/flashlayout
    
    
  2. 点击Browse按钮,然后选择工程源码下的烧录镜像路径,选择到download_img即可

    # 路径为
    bearpi-hm_micro_small/applications/BearPi/BearPi-HM_Micro/tools/download_img
    
  3. 点击Download按钮启动镜像烧录,并等待烧录完毕

12.下载minicom工具

# 安装minicom
sudo apt-get install minicom
# 查看串口信息
dmesg | grep ttyUSB
# 修改minicom 配置
sudo minicom -s

选择serial port setup 回车

按下键盘A 修改serial Device 的 值为步骤2的串口信息

按下回车,光标会走到Change which setting?

然后回车,然后选择 Save setup as dfl 回车,回车后选择Exit 回车

# 连接小熊派终端
sudo minicom

五、完毕

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
已于2022-2-6 15:42:22修改
5
收藏 2
回复
举报
2条回复
按时间正序
/
按时间倒序
红叶亦知秋
红叶亦知秋

确实简单不少,用双系统的小伙伴表示很赞

1
回复
2022-2-7 10:08:08
Wait_Aurora
Wait_Aurora 回复了 红叶亦知秋
确实简单不少,用双系统的小伙伴表示很赞

(~ ̄▽ ̄)~😁

回复
2022-2-8 01:36:54
回复
    相关推荐