很多开发者第一次接触树莓派时都会遇到硬件门槛——你需要一块真实的树莓派开发板、显示器、电源和各种外设。但你可能不知道,通过VMware Workstation 17 Pro,完全可以在普通PC上模拟出完整的树莓派开发环境。我去年给团队做内部培训时,就用这个方案让20多人同时上手树莓派开发,省下了大把硬件采购成本。
树莓派桌面版(Raspberry Pi Desktop)是官方基于Debian定制的x86版本,特别适合在虚拟机环境运行。相比直接在物理机安装,虚拟机方案有三大优势:首先是硬件零成本,你不需要额外购买树莓派开发板;其次是环境隔离,搞崩系统了随时回滚快照;最重要的是开发效率,PC的性能优势能让编译速度提升数倍。实测在i7处理器上编译树莓派项目,比真机快3倍不止。
访问树莓派官网的桌面版下载页面,你会看到两个版本:带推荐软件(Recommended software)的完整版和精简版。我建议下载完整版,因为预装了Python、Chromium等开发必备工具。最新版镜像名通常是2023-05-03-raspios-bullseye-i386.iso这样的格式,注意三点:
下载完成后务必校验SHA-256值。我在初期踩过坑,有一次因为镜像损坏导致安装到90%报错,不得不重头再来。Windows下可以用CertUtil快速校验:
bash复制certUtil -hashfile 2023-05-03-raspios-bullseye-i386.iso SHA256
虽然VMware 17 Pro默认支持Debian系统,但针对树莓派桌面版需要特别注意:
注意:如果你的主机是AMD处理器,需要选择"虚拟化AMD-V/RVI"选项。这个设置对性能影响很大,我曾在Ryzen主机上忘记配置,导致虚拟机运行速度慢了40%。
点击"创建新的虚拟机"后,在关键步骤需要特别注意:
这里有个隐藏技巧:在"自定义硬件"界面,把SCSI控制器类型改为LSI Logic。早期版本VMware对树莓派镜像的SATA支持有问题,这个改动能避免安装过程中的磁盘识别错误。
启动虚拟机前,务必完成三项配置:
我整理了一份推荐配置表供参考:
| 硬件组件 | 推荐配置 | 备注 |
|---|---|---|
| 内存 | 2048MB | 低于1GB会频繁卡顿 |
| 处理器 | 2核 | 单核编译性能瓶颈明显 |
| 显存 | 128MB | 无需3D加速 |
| 磁盘类型 | SCSI | 比IDE性能提升约20% |
启动虚拟机后,你会看到树莓派经典的红色安装界面:
安装过程中有个容易卡住的地方:GRUB安装位置。这里一定要选择**/dev/sda**(不是sda1!),否则会导致系统无法启动。去年培训时有3个学员在这步出错,不得不重装系统。
系统安装完成后会自动重启,这时需要完成初始配置:
这里分享一个实用技巧:在设置完成后,立即创建一个系统快照。我习惯命名为"Clean Install",这样后续开发中遇到环境混乱时,可以快速回滚到初始状态。
没有安装VMware Tools的虚拟机,你会遇到以下问题:
通过以下命令安装开源版VMware Tools(官方版本不兼容树莓派桌面版):
bash复制sudo apt update
sudo apt install open-vm-tools-desktop -y
安装完成后还需要手动调整:
code复制Section "Screen"
Identifier "Screen0"
Device "Card0"
Monitor "Monitor0"
SubSection "Display"
Depth 24
Modes "1920x1080"
EndSubSection
EndSection
实测这套配置可以让虚拟机达到接近物理机的操作体验。我的开发机现在常年开着树莓派虚拟机,通过共享文件夹直接编辑代码,编译效率比真机高不少。
树莓派桌面版默认安装了Python 3.9,但开发时建议使用venv创建独立环境:
bash复制python3 -m venv ~/venv/rpi
source ~/venv/rpi/bin/activate
pip install --upgrade pip setuptools
对于GPIO开发,虽然虚拟机没有真实的GPIO引脚,但可以安装gpiozero的模拟模式:
bash复制pip install gpiozero
export GPIOZERO_PIN_FACTORY=simulator
要在x86虚拟机上编译ARM架构程序,需要配置交叉编译工具链:
bash复制sudo apt install gcc-arm-linux-gnueabihf
然后通过CMake指定交叉编译参数:
cmake复制set(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_SYSTEM_PROCESSOR arm)
set(CMAKE_C_COMPILER arm-linux-gnueabihf-gcc)
这套配置让我在Windows主机上成功编译了树莓派的温度监控程序,编译速度比真机快2.7倍。