当前位置: 首页 > news >正文

告别双系统折腾!Win10+Ubuntu 20.04远程开发鸿蒙Hi3861,保姆级环境配置指南

告别双系统折腾!Win10+Ubuntu 20.04远程开发鸿蒙Hi3861保姆级环境配置指南

在物联网设备开发领域,鸿蒙Hi3861凭借其轻量级特性和丰富的外设接口,正成为智能硬件开发者的热门选择。然而,开发环境配置这道门槛却让不少开发者望而却步——传统双系统方案需要频繁重启,虚拟机方案又面临性能损耗,而纯Linux环境则牺牲了Windows平台的图形化开发体验。本文将介绍一种更优雅的解决方案:通过VSCode Remote-SSH实现Windows与Ubuntu的无缝协同,既能享受Windows的舒适操作,又能获得Linux的原生编译环境。

这种混合开发模式特别适合以下场景:

  • 需要在Windows进行代码编辑和调试,但依赖Linux环境编译的开发者
  • 使用Hi3861等仅支持Linux编译的开发板进行鸿蒙设备开发
  • 希望避免双系统切换麻烦,同时保持开发环境整洁的技术团队

1. 环境准备:打造高效的开发基础

1.1 选择合适的系统版本

经过多次实测验证,以下版本组合最为稳定:

  • Windows端:Win10 21H2或更高版本(Win11同样适用)
  • Ubuntu端:20.04 LTS(长期支持版)

为什么选择Ubuntu 20.04?这是目前鸿蒙开发工具链支持最完善的Linux发行版,避免了新版系统可能带来的兼容性问题。同时LTS版本能获得长期安全更新,保障开发环境稳定性。

1.2 基础软件安装清单

在开始配置前,请确保准备好以下工具:

工具名称Windows端Ubuntu端备注
VSCode建议安装最新稳定版
DevEco Device Tool版本需保持一致
Python3.8-3.93.8+版本要求严格
OpenSSHUbuntu默认未安装服务端

重要提示:两端的DevEco Device Tool版本必须严格一致,否则会导致远程连接失败。建议统一使用3.1 Release版本。

2. Ubuntu环境深度配置

2.1 Shell环境优化

鸿蒙编译脚本对bash有强依赖,而Ubuntu默认使用dash作为/bin/sh的链接。检查当前shell环境:

ls -l /bin/sh

若显示指向dash,需要切换为bash:

sudo dpkg-reconfigure dash

在弹出界面中选择"No",然后再次验证:

ls -l /bin/sh # 正确应显示:/bin/sh -> bash

2.2 DevEco Device Tool安装详解

从华为官网下载Linux版DevEco Device Tool 3.1后,按步骤执行:

unzip devicetool-linux-tool-3.1.0.500.zip chmod u+x devicetool-linux-tool-3.1.0.500.sh sudo ./devicetool-linux-tool-3.1.0.500.sh

安装过程中常见问题及解决方案:

  1. Python版本不符:Ubuntu 20.04默认Python3为3.8,满足要求;若需升级:
    sudo apt update sudo apt install python3.8
  2. 依赖冲突:如遇openssl等依赖问题,可尝试:
    sudo apt --fix-broken install

2.3 SSH服务高级配置

安装并优化SSH服务:

sudo apt install openssh-server sudo systemctl enable --now ssh

为提高安全性,建议修改默认端口并禁用root登录:

sudo nano /etc/ssh/sshd_config

修改以下参数:

Port 2222 PermitRootLogin no

重启服务使配置生效:

sudo systemctl restart ssh

3. Windows环境无缝对接

3.1 VSCode远程开发套件安装

在VSCode扩展商店安装以下必备插件:

  • Remote - SSH(核心远程连接功能)
  • Chinese (Simplified) Language Pack(可选,中文界面)
  • DevEco Device Tool(鸿蒙开发插件)

安装后,按Ctrl+Shift+P打开命令面板,输入"Remote-SSH: Connect to Host"开始连接。

3.2 免密登录实战配置

在Windows PowerShell中生成SSH密钥对:

ssh-keygen -t rsa -b 4096

将公钥上传至Ubuntu:

type $env:USERPROFILE\.ssh\id_rsa.pub | ssh username@ubuntu_ip "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

配置VSCode的SSH config文件(位于C:\Users\你的用户名\.ssh\config):

Host HarmonyOS-Dev HostName ubuntu_ip User username Port 2222 IdentityFile ~/.ssh/id_rsa ServerAliveInterval 60

4. 开发环境联调与验证

4.1 远程项目初始化

在VSCode中连接Ubuntu后,通过DevEco插件创建新项目:

  1. 选择"Hi3861"开发板类型
  2. 指定项目存储路径(建议放在Ubuntu的~/projects目录)
  3. 等待工具链自动初始化完成

4.2 编译配置技巧

修改工程根目录下的build.py时,注意以下关键参数:

# 典型配置示例 build_args = { "board": "hi3861", "kernel": "liteos_m", "product": "ipcamera", "product_path": "product_path", "device_path": "device_path", "target": "target", "verbose": True # 建议开启详细日志 }

4.3 烧录调试实战

通过DevEco界面进行烧录时,常见问题处理:

  1. 端口识别失败
    • 检查Windows设备管理器中的COM端口号
    • 在Ubuntu中确认用户是否有串口设备访问权限:
      sudo usermod -aG dialout $USER
  2. 编译缓存问题
    rm -rf out/ # 清除构建缓存

5. 高效开发工作流优化

5.1 自动化脚本集成

在Ubuntu上创建编译辅助脚本build.sh

#!/bin/bash # 自动清理并编译项目 cd ~/projects/your_project rm -rf out/ python build.py full_clean python build.py

在VSCode的tasks.json中配置任务快捷方式:

{ "label": "Build Hi3861", "type": "shell", "command": "ssh HarmonyOS-Dev 'bash ~/scripts/build.sh'", "problemMatcher": [] }

5.2 网络传输优化

对于大型项目,建议:

  • 使用rsync替代直接文件编辑:
    rsync -avz --delete ./project_dir HarmonyOS-Dev:~/projects/
  • 在VSCode设置中启用"remote.downloadExtensionsLocally": true减少扩展同步时间

5.3 多环境管理技巧

当需要管理多个开发板时,推荐使用VSCode的多窗口功能:

  1. 为每个项目创建独立的工作区文件(.code-workspace)
  2. 在SSH config中为不同设备创建别名
  3. 使用VSCode的"Remote Explorer"快速切换环境

在实际项目开发中,我发现最耗时的往往不是编码本身,而是环境配置和问题排查。通过将上述所有配置步骤脚本化,新团队成员的环境搭建时间从原来的半天缩短到30分钟以内。特别是将SSH配置、依赖安装等操作编写成自动化脚本后,团队协作效率显著提升。

http://www.jsqmd.com/news/757493/

相关文章:

  • 从波形图逆向工程:我是如何用示波器‘看懂’AHB不对称反激变换器6个工作模式的
  • Claude代码提示词速查手册:提升AI编程效率的工程化协作指南
  • 如何在Apple Silicon Mac上优雅运行Windows应用:Whisky实战指南
  • OpenHarmony 4.0开发板不息屏实战:DAYU/RK3568上三种修改系统配置的保姆级教程
  • 告别重复设置!手把手教你用记事本批量创建Fluent自定义材料库(附模板文件)
  • nxdumptool终极指南:Switch游戏备份的完整解决方案
  • 基于Docker的AI开发工作站:HolyClaude容器化部署与实战
  • 嵌入式系统诊断技术与硬件验证实战指南
  • 零信任加密与AI双管道:构建个人健康数据管理平台的技术实践
  • 5大设计挑战,一个工具搞定:Happy Island Designer 如何让岛屿规划变得简单有趣
  • WPF开发避坑指南:Loaded事件里写初始化代码,为什么有时会不生效?
  • DDrawCompat:Windows 11上经典游戏兼容性修复的终极方案
  • 为AI Agent构建实时事件感知:Agent News API架构与应用实践
  • Arm SME架构:矩阵运算加速与AI性能优化
  • 避坑指南:在VMware虚拟机里搞定AUBO i5机械臂的ROS Melodic仿真环境(含Gazebo闪退、网络配置)
  • taotoken 按 token 计费模式对于个人开发者项目预算管理的帮助
  • 终极指南:3分钟实现外语直播实时翻译,Stream-Translator完整教程
  • 基于Termux与WhatsApp的物联网设备远程控制方案
  • 信号与系统学不进去?试试用这6组期中选择题自测你的知识盲区
  • 告别低效人工筛查:用快马AI工具实现暗标文档的批量自动化检查
  • Win11Debloat终极指南:释放Windows系统潜能的深度优化方案
  • HS2-HF_Patch终极指南:三分钟解锁Honey Select 2完整游戏体验
  • AI模型统一接入架构:适配器模式实现多模型多平台集成
  • Docker Swarm 和 Docker Compose 集群模式怎么选?
  • OpenCV图像处理:用minMaxLoc函数快速定位图像最亮和最暗点(附Python/C++代码对比)
  • 告别公网IP烦恼:用Tinc在腾讯云CVM上自建虚拟局域网,搞定K8s集群网络互通
  • 终极指南:3分钟搞定实时外语直播翻译,告别语言障碍!
  • 别再只会画饼图了!用R语言ggplot2复刻经典南丁格尔玫瑰图(附完整代码)
  • 【PHP扩展RCE防线崩溃预警】:2023全年92%供应链攻击源于未签名.so文件——立即检测你的extension_dir!
  • 为Hermes Agent配置自定义供应商并接入Taotoken服务