一.环境
Vm player 17
Ubuntu 22.04.4 ,20.04
二.配置samba
1.linux安装samba
sudo apt-get install samba samba-common
2.打开配置文件
先安装vim
sudo apt install vim
sudo vim /etc/samba/smb.conf
按 i 进入插入模式
末尾添加
[Share] #在Windows中映射的根文件夹名称(此处以“Share”为例)
comment = Shared Folder #共享信息说明
path = /home/share #共享目录比如我要共享openharmony文件,输入/home/你的用户名/openharmony
valid users = username #可以访问该共享目录的用户(Ubuntu的用户名),跟下面的服务器用户名保持一致
directory mask = 0775 #默认创建的目录权限
create mask = 0775 #默认创建的文件权限
public = yes #是否公开
writable = yes #是否可写
available = yes #是否可获取
browseable = yes #是否可浏览
#后面的注释要删除
//按 esc 然后输入 :wq 退出
//无法退出时,输入 :!wq,如果还不行,就是没有用管理员,关闭窗口重新打开,输入命令前加sudo
3.linux添加Samba服务器用户和访问密码
sudo smbpasswd -a username
用户名为Ubuntu用户名,也是网络映射器的登陆用户名。输入命令后,根据提示设置密码。
4.重启服务
sudo service samba restart
5.新建Share文件夹
sudo mkdir /home/Share
6.windows网络映射
安装
sudo apt install net-tools
格式
[\\ip地址\Share](example://ip地址/share)
//ip地址通过输入ifconfig得到
然后右键此电脑,映射网络驱动器
额外内容,ubuntu中文
setting里的language,然后manage installed languages
然后点击+
然后点击restart即可
三、linux openharmony前置包安装
官方教程( https://gitee.com/openharmony/docs/blob/OpenHarmony_1.0.1_release/zh-cn/device-dev/quick-start/%E6%90%AD%E5%BB%BA%E7%B3%BB%E7%BB%9F%E5%9F%BA%E7%A1%80%E7%8E%AF%E5%A2%83.md#section6201103143120 )
里面的内容查漏补缺,不建议直接用官方,太老了
1.单独安装
sudo apt-get install libc6-amd64:i386
2.依次执行
更新sudo
sudo apt update
安装PPA需要的软件源
sudo apt install software-properties-common -y
添加名为deadsnake的PPA源:
sudo add-apt-repository ppa:deadsnakes/ppa
如果报错:
Cannot add PPA: ‘ppa:~deadsnakes/ubuntu/ppa’. ERROR: ‘~deadsnakes’ user or team does not exist.
我的是重启虚拟机就好了
安装python:
sudo apt install python3.8
3.执行:
sudo apt-get update && sudo apt-get install binutils binutils-dev git git-lfs gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses-dev x11proto-core-dev libx11-dev lib32z1-dev ccache libgl1-mesa-dev libxml2-utils xsltproc unzip m4 bc gnutls-bin python3.8 python3-pip ruby genext2fs device-tree-compiler make libffi-dev e2fsprogs pkg-config perl openssl libssl-dev libelf-dev libdwarf-dev u-boot-tools mtd-utils cpio doxygen liblz4-tool openjdk-8-jre gcc g++ texinfo dosfstools mtools default-jre default-jdk libncurses5 apt-utils wget scons python3.8-distutils tar rsync git libxml2-dev lib32z1-dev grsync xxd libglib2.0-dev libpixman-1-dev kmod jfsutils reiserfsprogs xfsprogs squashfs-tools pcmciautils quota ppp libtinfo-dev libtinfo5 libncurses5-dev libncursesw5 libstdc++6 gcc-arm-none-eabi vim ssh locales libxinerama-dev libxcursor-dev libxrandr-dev libxi-dev
4.替换python路径
这个替换想做就做,我没做,做了之后会导致终端和updatas无法打开,如有解决方法欢迎评论
查看python位置
which python3.8
替换python
sudo update-alternatives --install /usr/bin/python python {Python 3.8 路径} 1
{Python 3.8 路径}为上一步查看的Python 3.8的位置
sudo update-alternatives --install /usr/bin/python3 python3 {Python 3.8 路径} 1
{Python 3.8 路径}为上一步查看的Python 3.8的位置
5.安装deveco工具
搭建Ubuntu环境 (openharmony.cn)
执行下面的步骤:
下载deveco;
ls -l /bin/sh
sudo dpkg-reconfigure dash
unzip devicetool-linux-tool-4.0.0.400.zip
chmod u+x devicetool-linux-tool-4.0.0.400.sh
sudo ./devicetool-linux-tool-4.0.0.400.sh -- --install-plugins
选择同意即可
6、安装git和repo
安装git
sudo apt-get install git
git config --global user.name "yourname"
git config --global user.email "your-email-address"
git config --global credential.helper store
配置ssh
ssh-keygen -t rsa
三次回车
cat /home/moon/.ssh/id_rsa.pub
复制cat出的内容
粘贴到仓库的ssh里
输入
ssh -T gitee.com
或者
ssh -T git@gitee.com
输入yes
出现hi为成功
安装repo
curl -s https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 > /usr/local/bin/repo
没有权限就切换root用户(下面的代码),然后再重新输入就行
su - root
然后
chmod a+x /usr/local/bin/repo
pip3 install -i https://repo.huaweicloud.com/repository/pypi/simple requests
四、获取源码
两种方法:
1.获取源码 (openharmony.cn)
注意要在一个文件夹里执行,不然文件会太乱且更换版本麻烦
如果报错
则输入
whereis python3.8
cd /usr/bin
ln -s /usr/bin/python3.8 python
如果方法一git拉取不到就用方法二http
拉取tag节点,最新分支提交的可能有bug
都拉取不了手动下载
2.安装deveco后新建工程
打开deveco,点击插件deveco,点击主页
五、ssh连接编译运行
选择第一个
添加
输入虚拟机的ip地址
Host 192.168.37.***
HostName 192.168.37.***
User moon
然后刷新即可
连接
弹出弹窗选择你的虚拟机类型
点击continue
之后就可以愉快的ssh了
ssh刚下载的源码
打开终端输入(补全交叉编译环境),在源码根目录下执行
./build/prebuilts_download.sh
这个也要安装一下
下载hb
运行如下命令安装hb
python3 -m pip install ohos-build
设置环境变量
sudo vim ~/.bashrc
将以下命令拷贝到.bashrc文件的最后一行,保存并退出。
export PATH=~/.local/bin:$PATH
执行如下命令更新环境变量
source ~/.bashrc
执行" hb -h ",看是否报错
报错执行
pip uninstall ohos-build
python3 -m pip install ohos-build==0.4.3
打印以下内容则说明成功
六、编译烧录等
1、编译
两种方式
第一种
(1)、终端执行" hb set "
输入 .
选择产品(根据需要选择,这里选择ipcamera)
然后输入" hb build -f "
第二种方式
(2).deveco傻瓜式编译,但易报错
点击build
2、烧录
基于HiSpark-AI-Camera开发套件
烧录需要下载usb驱动,里面是所有驱动(https://gitee.com/hihope_iot/docs/tree/master/HiSpark-AI-Camera-Developer-Kit/Software/tools)
usb驱动安装教程(https://device.harmonyos.com/cn/docs/documentation/guide/usb_driver-0000001058690393)
fastboot里erase一下即可出现驱动
这个驱动设备有可能是隐藏的,查看里点击显示隐藏设备
之后烧录采用deveco方式"逃课"烧录(方便快捷,有现成的img文件的话采用hitool)
依次点击upload,按enter确认,之后按着下图圈画的按钮插拔usb线,串口线不用管,电源线也不用管
烧录完成后如果是第一次烧录,需要配置boot,下图boot os那个
最后连接monitor即可,配置monitor需要端口号
如果一直没加载出来,随便用一个串口工具即可,但排版较为难受
七、第一个程序Helloworld的编写
官方教程
https://docs.openharmony.cn/pages/v4.0/zh-cn/device-dev/quick-start/quickstart-pkg-3516-helloworld.md
新建目录及添加代码
新建applications/sample/hello/src/helloworld.c和
新建applications/sample/hello/BUILD.gn文件
即输入以下爱代码
sudo mkdir -p applications/sample/hello/src/
sudo touch applications/sample/hello/src/helloworld.c
sudo touch applications/sample/hello/BUILD.gn
然后打开文件helloworld.c
sudo vim applications/sample/hello/src/helloworld.c
在里面添加以下内容
#include <stdio.h>
int main(int argc, char **argv)
{
printf("\n\n");
printf("\n\t\tHello OHOS!\n");
printf("\n\n\n");
return 0;
}
打开文件BUILD.gn
sudo vim applications/sample/hello/BUILD.gn
添加以下内容
import("//build/lite/config/component/lite_component.gni")
lite_component("hello-OHOS") {
features = [ ":helloworld" ]
}
executable("helloworld") {
output_name = "helloworld"
sources = [ "src/helloworld.c" ]
}
然后修改文件添加新组件(helloworld),就是让他可以在openharmony的编译体系中构建出来
即修改文件build/lite/components/communication.json,如下图
直接在vscode里打开即可,不用vim,添加以下内容(central是我自己添加的)
添加以下内容,注意格式和,号
{
"component": "hello_world_app",
"description": "hello world samples.",
"optional": "true",
"dirs": [
"applications/sample/hello"
],
"targets": [
"//applications/sample/hello:hello-OHOS"
],
"rom": "",
"ram": "",
"output": [],
"adapted_kernel": [ "liteos_a" ],
"features": [],
"deps": {
"components": [],
"third_party": []
}
},
然后修改配置文件,即子系统
修改文件vendor/hisilicon/hispark_taurus/config.json
添加以下内容,(下面的两个demo也是我自己添加的),如下图
{ "component": "hello_world_app", "features":[] },
别忘了保存
之后重新编译烧录即可
八、进行二次开发
1、简单开发
如上面的helloworld即可认为是简单开发
也可以直接在源文件中修改,保存编译即可
2、困难开发
在hb set时,系统会列出vendor目录下的所有父子目录
所以就有了可操作空间
如我在vendor目录下新建team_x文件夹
在里面可以自己编译一个小型系统,但涉及到openharmony开发编译构建原理,所以建议在git上寻找然后进行二次开发
我们以hispark_taurus为例
我们可以看到有多个文件夹,这些文件夹相互作用构成了系统的底层原理
接下来进行一个编译系统的构建,成功率难以保证
我们以智能家居系列中的智能猫眼为例( https://gitee.com/openharmony-sig/knowledge_demo_smart_home/tree/master )( https://gitee.com/openharmony-sig/knowledge_demo_smart_home/blob/master/dev/docs/smart_door_viewer_3516/README.md )
在vendor目录下新建team_x文件夹
mkdir vendor/team_x
下载智能家居源码
git clone git@gitee.com:openharmony-sig/knowledge_demo_smart_home.git
将下载的智能系列中的智能猫眼拷贝到新建的team_x下面
cp -rf ../knowledge_demo_smart_home/dev/team_x/smart_door_viewer_3516/ vendor/team_x/
之后便会在hb build中出现smart_door_viewer_3516
要想成功编译构建成功,根据报错内容一一进行解决吧
3、hap开发及安装(可简单也可难)
正常路径:
hap包开发需要在win下下载deveco studio
他需要SDK版本与你下载的openharmony版本相匹配,且实验现象需要华为手机,如果没有也可以采用模拟手机的方式
右下角新建即可
*逃课路径: *(找不到建议自己写一个,需要掌握前端知识)
以在智能家居系列智能中控面板为例,官方教程:( https://gitee.com/hihope_iot/docs/blob/master/HiSpark-AI-Camera-Developer-Kit/demo/demo_cenctrl/%E7%9F%A5%E8%AF%86%E4%BD%93%E7%B3%BB%E4%B8%AD%E6%8E%A7%E9%9D%A2%E6%9D%BF%E6%A1%88%E4%BE%8B%E2%80%94%E5%9F%BA%E4%BA%8EOpenHarmony%E6%9C%80%E6%96%B0%E4%BB%A3%E7%A0%81.md )
该目录下有demo_cenctrl文件夹
将该文件夹复制到camera文件夹下
之后在application和config.json相应增加代码即可(仿照helloworld)
之后将编译成功后的out文件夹下的.so文件复制到demo_cenctrl文件夹下
之后压缩demo_central下的全部文件,更改文件名后缀为.hap
之后采用nfs挂载到板子上
不过我没挂载成功,所以采用逃课方式
将.hap文件复制到sdcard下,将bm文件也复制过去
之后等待系统启动完成出现ohos时
输入,查看sdcard是否加载成功
ls /sdcard
出现这个即可
Directory /sdcard:
-rwxrwxrwx 18348 u:0 g:0 bm
-rwxrwxrwx 26751 u:0 g:0 cenctrl.hap
之后去掉签名,否则无法安装,bm安装的时已经签名的应用
进入sdcard
cd /sdcard
输入
./bm set -s disable
**安装应用,filename需要指定路径,直接输cenctrl.hap即可安装cenctrl.hap
./bm install -p filename
安装完后桌面会显示对应应用的ICON,直接点击ICON即可启动应用(需要先在设置里把该应用的权限全部打开)
联网则输入以下代码
./bin/wpa_supplicant -iwlan0 -c/etc/wpa_supplicant.conf
如此,教程结束