M1芯片Mac 虚拟机上安装ROS Melodic
M1芯片的Mac上虚拟机的安装
- 不同的ros系同对应着不同的ubuntu版本,其中ros的melodic对应的ubuntu版本是18。
- 常用的安装虚拟机的软件是VMware Fushion, 但是这里有一些容易踩坑的点。
1) 由于M1芯片采用的是ARM架构,所以需要下载对应ARM的VMware。可以通过可以从直接官网下载, 也可以直接参考这篇博客 mac pro M1(ARM)安装:ubuntu虚拟机(四)里面有非常详细的教程。
但是看到这里不要急于尝试,对于Ubuntu20和22,上述方法是有效的,但是对于Ubuntu18则行不通(笔者已经踩过这个坑),后文会对此进行详细解释。
- Ubuntu18的镜像文件也需要采用对应的ARM版本,这里直接给出下载链接。选择其中的buntu-18.04.6-server-arm64.iso下载即可。
- 上文提到,哪怕是使用支持ARM架构的VMware也无法成功安装Ubuntu18。笔者尝试了很多次,每次在系统setup的阶段都会出现“Your installation CD-ROM couldn’t be mounted. This probably means that the CD-ROM was not in the drive. If so you can insert it and try again”的报错。笔者查阅资料得知, 这是下述原因造成的。
The issue is that kernel isn’t detecting the VMware CD-ROM device or the VMware SATA controller. Nor that ISO boot from the CD if you change its bus type to SCSI. That installer is using a 4.x kernel. That’s an old kernel.
-
对此,相应的解决方案是:利用UTM安装Ubuntu18。利用UTM安装Ubuntu的过程参考这篇教程就好m1芯片的macbook pro使用UTM虚拟机安装ubuntu18.04 server镜像。注意走完上述教程的安装流程后(安装完ubuntu图形化界面后),会出现没有网络的问题。
-
注意,走完4中的教程的安装流程后(安装完ubuntu图形化界面后),会出现没有网络的问题。这里的解决方案打开终端输入ifconfig -a命令查看可用网卡名称。下图中我的网卡名称就是enp0s6。
(注意ifconfig查看当前启动的网卡,如果你的ifconfig结果只有lo,记得sudo ifconfig enp0s6 up, 启用该网卡)
然后sudo gedit /etc/netplan/01-netcfg.yaml, 修改网卡配置文件,将网卡名称修改为ifconfig命令看到的。注意记得sudo chmod 777 +文件名 修改权限,否则01-netcfg.yaml文件是只读模式,无法对其进行修改。
sudo chmod 777 /etc/netplan
sudo gedit /etc/netplan/01-netcfg.yaml
6) 配之好网卡后reboot重启虚拟机,就可以尽情上网了。
7) 到这里虚拟机的安装就结束了。
虚拟机上ROS Melodic的安装
1)安装过程可以参考这篇博客
2)如果你没有梯子的话,我猜你在rosdep update阶段一定会遇到报错,解决方法可以参照这篇博客,按照博客的流程走一遍,我相信你一定可以解决这个问题。
3)到这里应该ros的安装也就大功告成啦。
未完待续
这篇文章是匆匆写完,有不尽之处欢迎在评论补充,之后我有空也会对文章进行改进使其更清晰且完善。