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

JetsonNano实战(一)VMware虚拟机Ubuntu环境搭建

1. 为什么选择VMware虚拟机搭建Ubuntu环境

刚开始接触Jetson Nano开发时,很多新手都会遇到一个现实问题:主力机是Windows系统,但官方开发工具SDK Manager却只能在Ubuntu下运行。这时候VMware虚拟机的优势就体现出来了——它能在不改变现有系统的前提下,快速创建一个隔离的Ubuntu开发环境。我实测过VirtualBox、Hyper-V等多种方案,最终发现VMware在性能损耗、硬件兼容性方面表现最稳定,特别适合需要长时间运行的开发场景。

这里有个新手容易忽略的关键点:一定要选择Ubuntu 18.04 LTS版本。虽然20.04/22.04更新,但JetPack对18.04的兼容性最好。去年我就踩过坑,用20.04安装SDK Manager时出现依赖冲突,折腾半天才发现是系统版本问题。官方文档也明确建议使用18.04,这点要特别注意。

2. VMware虚拟机配置全攻略

2.1 虚拟机创建避坑指南

打开VMware Workstation Pro(建议16以上版本),点击"创建新的虚拟机"时,很多教程会推荐"典型"配置,但我强烈建议选择自定义。这样可以手动调整关键参数,避免后续性能瓶颈。具体配置如下:

  • 处理器设置:至少分配2个核心,有条件的给4个。勾选"虚拟化Intel VT-x/EPT"选项(AMD平台是AMD-V/RVI),这个对后期运行SDK Manager编译镜像至关重要
  • 内存分配:官方建议4GB起步,但实测开发环境最好8GB。我曾用4GB内存跑烧录,在生成文件系统阶段频繁卡死
  • 磁盘类型:一定要选SCSI(推荐LSI Logic),容量最少60GB。这里有个隐藏坑点:如果用默认的IDE接口,后期磁盘IO速度会慢得让你怀疑人生

2.2 网络连接模式选择

开发过程中最头疼的就是网络问题。VMware提供多种网络模式,经过多次测试,我推荐以下配置方案:

  • 烧录阶段:使用NAT模式,简单不易出错
  • 开发调试阶段:改用桥接模式,这样Jetson Nano和虚拟机就在同一局域网,方便SSH连接
  • 特殊场景:当需要外网访问开发板时,可以用"自定义:VMnet0"模式

遇到过虚拟机无法上网的情况?试试这个万能命令组合:

sudo service network-manager restart sudo dhclient -v

3. Ubuntu 18.04安装详解

3.1 系统安装关键步骤

加载ISO镜像后,安装界面有几个易错点需要特别注意:

  1. 分区方案:建议手动分区,交换空间(swap)设为物理内存的1.5倍,/home分配20GB,剩余全给根目录/
  2. 时区设置:务必选择"Shanghai",否则后期编译可能出现时间戳错误
  3. 软件选择:只需勾选"标准系统工具",其他组件一律不装,保持系统纯净

安装完成后第一件事就是更新源,推荐使用阿里云镜像:

sudo sed -i 's/archive.ubuntu.com/mirrors.aliyun.com/g' /etc/apt/sources.list sudo apt update && sudo apt upgrade -y

3.2 必装开发工具清单

基础系统装好后,需要安装以下工具链(缺一不可):

  • build-essential:包含GCC/G++等编译工具
  • python3-dev:Python开发头文件
  • libssl-dev:SSL加密库
  • git:代码版本管理
  • cmake:项目构建工具

一键安装命令:

sudo apt install -y build-essential python3-dev libssl-dev git cmake

4. VMware Tools优化指南

4.1 安装的两种方案对比

官方文档会推荐通过菜单安装VMware Tools,但实测发现开源版的open-vm-tools更稳定。两种方案对比如下:

方案优点缺点
官方VMware Tools功能完整需要手动编译安装
open-vm-tools自动更新剪贴板同步偶尔延迟

推荐使用开源方案,执行以下命令即可:

sudo apt install open-vm-tools-desktop sudo reboot

4.2 共享文件夹设置技巧

开发时经常需要在主机和虚拟机间传输文件,共享文件夹是最高效的方案。设置时要注意:

  1. 在VMware设置中添加共享目录时,务必取消"只读"选项
  2. Ubuntu端挂载点建议设为/home/用户名/shared
  3. 权限问题可以通过以下命令解决:
sudo chmod -R 777 /mnt/hgfs

如果遇到共享文件夹不显示的情况,先检查是否安装了VMware Tools,再执行:

vmware-hgfsclient | while read folder; do sudo vmhgfs-fuse -o allow_other -o auto_unmount ".host:/${folder}" "/mnt/hgfs/${folder}"; done

5. 网络调试实战经验

5.1 双机通信配置

当需要Jetson Nano与虚拟机直接通信时,推荐使用USB网络共享模式:

  1. 用micro USB线连接开发板到电脑
  2. 在虚拟机设置中将USB控制器改为USB3.0
  3. Ubuntu中执行:
sudo ifconfig usb0 192.168.55.100 netmask 255.255.255.0

这样开发板(192.168.55.1)就能与虚拟机直接通信了,实测传输速度比WiFi快3倍以上。

5.2 防火墙配置要点

Ubuntu默认的ufw防火墙会阻断开发板连接,建议按以下规则配置:

sudo ufw allow from 192.168.55.0/24 sudo ufw allow 22/tcp # SSH端口 sudo ufw enable

遇到ping不通的情况时,可以依次检查:

  1. 虚拟机网络适配器是否启用
  2. 防火墙规则是否正确
  3. 开发板网络指示灯状态

6. 系统备份与恢复

开发过程中难免会把系统搞崩,我总结了一套备份方案:

  1. 基础系统备份:安装完所有工具后,使用VMware的"创建快照"功能
  2. 增量备份:每天工作前执行:
sudo tar -czvf backup_$(date +%Y%m%d).tar.gz --exclude=/proc --exclude=/lost+found --exclude=/backup.tar.gz --exclude=/mnt --exclude=/sys /
  1. 灾难恢复:用LiveCD启动后,执行:
sudo tar -xzvf backup_20230801.tar.gz -C /mnt

这套方案帮我至少节省了50小时的重装时间,特别是当SDK Manager下载到一半失败时,直接回滚快照就能恢复。

7. 性能优化技巧

经过多次测试,我找到了几个显著提升虚拟机性能的方法:

  1. 内存分配策略:在VMware配置文件中添加:
mainMem.useNamedFile = "FALSE" prefvmx.useRecommendedLockedMemSize = "TRUE"
  1. 磁盘预分配:创建虚拟机时选择"立即分配所有磁盘空间"
  2. CPU调度优化:在Windows任务管理器中将VMware进程优先级设为"高"

这些优化后,SDK Manager的烧录速度从原来的2小时缩短到40分钟左右。特别提醒:进行烧录操作时,最好关闭虚拟机的3D加速功能,这个选项容易导致图形界面卡死。

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

相关文章:

  • 5分钟搞定OpenStack单网卡外部访问:VMware虚拟化环境下的极简配置(附DHCP/静态IP两版)
  • Phi-3-mini-128k-instruct角色扮演效果:模拟技术面试官与产品经理
  • 霜儿-汉服-造相Z-Turbo系统资源监控与清理:解决C盘空间不足的实战技巧
  • XSS-labs靶场实战:从基础注入到高级绕过的通关心法
  • 开箱即用:coze-loop镜像部署详解,快速搭建你的AI编程助手
  • AcousticSense AI企业实操:唱片公司AR部门用其初筛Demo带风格一致性
  • MacBook 上 Maven 的完整安装与配置指南:从下载到实战应用
  • 如何用MultiEMO框架提升对话情感识别准确率?实战教程+代码解析
  • WPF进阶:巧用SkewTransform与Expression.Drawing打造赛博朋克风加载动画
  • 快速上手Qwen2.5-7B离线推理:vLLM+LoRA实战教程
  • Langchain + 通义千问:打造你的第一个多工具智能体
  • 达梦数据库新手必看:从安装到连接的完整避坑指南(含防火墙配置)
  • Halcon模板匹配实战:7种方法全解析(附汽车焊点检测案例)
  • 【Wi-Fi 802.11协议】管理帧 之 Beacon帧实战解析:从抓包到网络优化
  • Python+Redis实战:5分钟搞定搜索历史与自动补全功能(附完整代码)
  • 简单几步,用DeerFlow构建你的私人研究助理:支持多搜索引擎与Python代码执行
  • # 发散创新:基于Python的语音合成系统设计与实战优化在人工智能飞速发展的
  • GLM-4V-9B实战:上传一张图,让AI帮你写描述、答问题、读图表
  • GLM-4.6V-Flash-WEB快速部署指南:Jupyter里运行脚本,网页端直接对话
  • 如何提升macOS百度网盘下载速度:完整技术指南
  • 安卓应用跨平台解决方案:APK-Installer效率提升实战指南
  • 天空星GD32F407开发板驱动4x4矩阵键盘实战:引脚配置与扫描算法详解
  • 从帧结构到实战:WPA3认证的802.11协议深度解析
  • 立创墨水屏阅读器DIY全解析:基于STM32F103的硬件设计、GUI框架与踩坑实录
  • Qt/VS LNK2019/LNK2001:从符号解析到编译链接的实战排查指南
  • Phi-3-vision-128k-instruct部署案例:多模态RAG系统中图文混合检索实践
  • 如何解决图层导出效率难题?这款极速效率工具让设计工作提速10倍
  • Phi-3-vision-128k-instruct精彩案例:教育场景中手写题图识别与解题思路生成
  • Leather Dress Collection 模型微调入门:使用自定义数据集训练专属风格
  • Navicat数据库管理工具从零安装到实战连接指南(附常见问题解决)