[*] OpenHarmony

This commit is contained in:
acgist
2023-03-16 09:08:50 +08:00
parent dfec49892d
commit f8c458295d
3 changed files with 121 additions and 93 deletions

View File

@@ -4,12 +4,12 @@
``` ```
CentOSCentOS Linux release 7.9.2009 (Core) CentOSCentOS Linux release 7.9.2009 (Core)
pm2 >= 5.2.0
git >= 1.8.0 git >= 1.8.0
pm2 >= 5.2.0
Java >= 17.0.0 Java >= 17.0.0
Maven >= 3.8.0 Maven >= 3.8.0
gcc/g++ >= 10.0.0 gcc/g++ >= 10.2.0
node version >= v16.0.0 node version >= v16.19.0
python version >= 3.8.0 with PIP python version >= 3.8.0 with PIP
``` ```
@@ -82,7 +82,7 @@ yum install devtoolset-10-gcc devtoolset-10-gcc-c++
scl enable devtoolset-10 -- bash scl enable devtoolset-10 -- bash
# 配置 # 配置
vim /etc/profile vim ~/.bash_profile
--- ---
source /opt/rh/devtoolset-10/enable source /opt/rh/devtoolset-10/enable
@@ -152,8 +152,8 @@ JAVA_HOME=/data/dev/java/jdk-17.0.2
PATH=$PATH:$JAVA_HOME/bin PATH=$PATH:$JAVA_HOME/bin
--- ---
# 立即生效
. ~/.bash_profile . ~/.bash_profile
ln -sf /data/dev/java/jdk-17.0.2/bin/java /usr/local/bin/java
# 验证 # 验证
java -version java -version
@@ -165,17 +165,18 @@ java -version
# 下载 # 下载
mkdir -p /data/dev/maven mkdir -p /data/dev/maven
cd /data/dev/maven cd /data/dev/maven
wget https://dlcdn.apache.org/maven/maven-3/3.8.6/binaries/apache-maven-3.8.6-bin.tar.gz wget https://dlcdn.apache.org/maven/maven-3/3.8.8/binaries/apache-maven-3.8.8-bin.tar.gz
tar -zxvf apache-maven-3.8.6-bin.tar.gz tar -zxvf apache-maven-3.8.8-bin.tar.gz
# 配置 # 配置
vim ~/.bash_profile vim ~/.bash_profile
--- ---
MAVEN_HOME=/data/dev/maven/apache-maven-3.8.6 MAVEN_HOME=/data/dev/maven/apache-maven-3.8.8
PATH=$PATH:$MAVEN_HOME/bin PATH=$PATH:$MAVEN_HOME/bin
--- ---
# 立即生效
. ~/.bash_profile . ~/.bash_profile
# 验证 # 验证
@@ -186,9 +187,7 @@ mvn -version
``` ```
# 依赖 # 依赖
yum install zlib-devel yum install zlib-devel libffi-devel openssl-devel
yum install libffi-devel
yum install openssl-devel
# 下载 # 下载
mkdir -p /data/dev/python mkdir -p /data/dev/python
@@ -221,19 +220,9 @@ vim /usr/libexec/urlgrabber-ext-down
yum --version yum --version
pip --version pip --version
python --version python --version
```
## 下载源码
```
cd /data
git clone https://gitee.com/acgist/taoyao.git --recursive
```
## 安装媒体
```
# 设置镜像 # 设置镜像
mkdir -p ~/.pip/
vim ~/.pip/pip.conf vim ~/.pip/pip.conf
--- ---
@@ -245,71 +234,6 @@ trusted-host = mirrors.aliyun.com
# 验证镜像 # 验证镜像
pip config list pip config list
# 编译代码
cd /data/taoyao/taoyao-client-media
git submodule update --remote
cd modulesup
git checkout taoyao
cd ..
npm install
# 配置服务:服务名称必须和配置终端标识一致否则不能执行重启和关闭信令
pm2 start npm --name "taoyao-client-media" -- run dev | prd
pm2 save
# 配置ecosystem
pm2 ecosystem
pm2 start | reload ecosystem.config.json
pm2 save
# 管理服务:服务名称必须和配置终端标识一致否则不能执行重启和关闭信令
pm2 start | stop | restart taoyao-client-media
```
### Mediasoup单独编译
编译媒体服务时会自动编译`mediasoup`所以可以不用单独编译
```
# 编译代码
# make -C worker
cd /data/taoyao/taoyao-client-media/mediasoup/worker
make
# 清理结果
make clean
```
### 问题
#### Subproject exists but has no meson.build file
编译过程需要第三方的依赖,进入目录`mediasoup/worker/subprojects`,查看`*.wrap`依次下载然后修改名称放到`packagecache`,重新编译即可。
## 安装信令
```
# 编译代码
cd /data/taoyao/taoyao-signal-server
mvn clean package -D skipTests
#mvn clean package -D skipTests -P prd
# 拷贝脚本
cp taoyao-server/target/taoyao-server-1.0.0/bin/deploy.sh ./
# 配置服务
cp /data/taoyao/docs/etc/taoyao-signal-server.service /usr/lib/systemd/system/taoyao-signal-server.service
# 配置自启
systemctl daemon-reload
systemctl enable taoyao-signal-server
# 执行脚本
./deploy.sh
# 管理服务
systemctl start | stop | restart taoyao-signal-server
``` ```
## 安装Nginx ## 安装Nginx
@@ -336,9 +260,76 @@ SELINUX=disabled
--- ---
``` ```
## 安装终端 ## 下载源码
如果不是本机测试需要配置`HTTPS` ```
cd /data
git clone https://gitee.com/acgist/taoyao.git --recursive
```
## 安装媒体
```
# 编译代码
cd /data/taoyao/taoyao-client-media
npm install
# 配置ecosystem
pm2 start | reload ecosystem.config.json
pm2 save
# 管理服务:服务名称必须和配置终端标识一致否则不能执行重启和关闭信令
pm2 start | stop | restart taoyao-client-media
```
### Mediasoup编译失败
编译过程中的依赖下载容易失败,
需要进入目录`mediasoup/worker/subprojects`,查看`*.wrap`文件依次下载所需依赖,修改名称放到`packagefiles`目录中,最后注释下载链接。
`package.json`中的`mediasoup`改为本地依赖`file:./mediasoup`,重新编译即可。
> 下载依赖建议备份以备以后编译使用
### Mediasoup单独编译
编译媒体服务时会自动编译`mediasoup`所以可以不用单独编译
```
# 编译代码
# make -C worker
cd /data/taoyao/taoyao-client-media/mediasoup/worker
make
# 清理结果
make clean
```
## 安装信令
```
# 编译代码
cd /data/taoyao/taoyao-signal-server
mvn clean package -D skipTests
#mvn clean package -D skipTests -P prd
# 拷贝脚本
cp taoyao-server/target/taoyao-server-1.0.0/bin/deploy.sh ./
# 配置服务
cp /data/taoyao/docs/etc/taoyao-signal-server.service /usr/lib/systemd/system/taoyao-signal-server.service
# 配置自启
systemctl daemon-reload
systemctl enable taoyao-signal-server
# 执行脚本
./deploy.sh
# 管理服务
systemctl start | stop | restart taoyao-signal-server
```
## 安装终端
``` ```
# 编译代码 # 编译代码
@@ -356,7 +347,7 @@ pm2 start | stop | restart taoyao-client-web
npm run build npm run build
# Nginx配置 # Nginx配置
cp /data/taoyao/docs/etc/nginx /etc/nginx/nginx.conf cp /data/taoyao/docs/etc/nginx.conf /etc/nginx/nginx.conf
nginx -s reload nginx -s reload
``` ```

View File

@@ -30,7 +30,6 @@ http {
server { server {
listen 80 default_server; listen 80 default_server;
server_name localhost;
error_page 497 https://$host$request_uri; error_page 497 https://$host$request_uri;
return 301 https://$host$request_uri; return 301 https://$host$request_uri;
} }
@@ -41,8 +40,8 @@ http {
access_log /var/log/nginx/taoyao.log main buffer=32k flush=10s; access_log /var/log/nginx/taoyao.log main buffer=32k flush=10s;
ssl_certificate /data/certs/server.crt; ssl_certificate /data/taoyao/docs/certs/server.crt;
ssl_certificate_key /data/certs/server.key; ssl_certificate_key /data/taoyao/docs/certs/server.key;
ssl_ciphers TLS13-AES-128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-CBC-SHA256:ECDHE-ECDSA-AES128-CBC-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; ssl_ciphers TLS13-AES-128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-CBC-SHA256:ECDHE-ECDSA-AES128-CBC-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1.2 TLSv1.3; ssl_protocols TLSv1.2 TLSv1.3;
ssl_session_timeout 30m; ssl_session_timeout 30m;

View File

@@ -2,8 +2,46 @@
提供嵌入式开发能力 提供嵌入式开发能力
## 学习资料
https://device.harmonyos.com/cn/develop/ide/
https://device.harmonyos.com/cn/documentation/
https://www.openharmony.cn/docs/zh-cn/overview/
https://www.openharmony.cn/docs/zh-cn/device-dev/
https://docs.openharmony.cn/pages/v3.1/zh-cn/OpenHarmony-Overview_zh.md/
https://docs.openharmony.cn/pages/v3.1/zh-cn/device-dev/device-dev-guide.md/
## C++终端 ## C++终端
* [libmediasoupclient源码](https://github.com/versatica/libmediasoupclient) * [libmediasoupclient源码](https://github.com/versatica/libmediasoupclient)
* [libmediasoupclient文档](https://mediasoup.org/documentation/v3/libmediasoupclient) * [libmediasoupclient文档](https://mediasoup.org/documentation/v3/libmediasoupclient)
* [libmediasoupclient接口](https://mediasoup.org/documentation/v3/libmediasoupclient/api) * [libmediasoupclient接口](https://mediasoup.org/documentation/v3/libmediasoupclient/api)
## HarmonyOS && OpenHarmony
使用`OpenHarmony`设备开发
## 环境搭建
```
# Ubuntu
# https://mirrors.tuna.tsinghua.edu.cn/ubuntu-releases/20.04.5/
# `Ubuntu`选择版本`20.04.5`,建议选择相同版本,不然很多软件版本需要自己调整。
# SSH
sudo apt-get remove openssh-server openssh-client --purge
sudo apt-get install openssh-server openssh-client
systemctl restart ssh
systemctl status ssh
# 环境搭建
# https://device.harmonyos.com/cn/docs/documentation/guide/ide-install-windows-ubuntu-0000001194073744
sudo mkdir -p /data/dev
cd /data/dev
小型系统 Hispark_
Taurus Hi3516DV
300
```