简直要崩溃了,就因为我试图在 Apple Silicon 芯片上运行一个 Windows 软件

54 天前
 sillydaddy

最近在研究 8 音盒,自己用纸带打孔(30 音)的那种。然后发现了FairyMusicBox这个软件,做的挺好,可以自己打谱试听,绘制出纸带的打孔孔位,软件精美的,让我放弃了用 python 手搓轮子的想法。

但是,它只支持 Windows 系统。万恶之源!

一番折腾下来,真是累坏了!

虚拟机方案。

下载 Windows 镜像、VirtualBox 虚拟机、UTM 虚拟机,这些都要特别关注是不是 Apple Silicon 芯片。为了下载 Windows 镜像,还要下载 CrystalFetch ,然后配置虚拟机,死活跑不起来,各种尝试,最后发现竟然是没有“在 boot 时按任意键”导致进了 shell ,而不是加载 EFI 引导盘,WTF !这中间下载了至少 3,4 个版本的 windows 镜像,包括 windows preview 计划。

等虚拟机跑通之后,程序也终于跑起来了,然而,怎么会这么卡?不是使用的 Apple 的 Hypervise 虚拟化技术吗?怎么会这么卡?是软件的问题吗?

虚拟接口层方案

还有另一种方案,用 macOS 的接口模拟 Windows 的接口。开源的有 Wine 。用 homebrew 安装,提示 Rosetta 2 没有安装,可是我记得没动过 Rosetta 啊,还提示 wine 的镜像下载失败。暂时放弃,后来虚拟机的路子实在走不通了,又尝试安装了一下 Rosetta 2 ,竟然安装上了,那么我机器上的 Rosetta 是什么?不解。

配置 Wine 的过程一路坎坷,等终于通过 wine FairyMusicBoxInstaller.exe 把软件的安装包跑起来,中文乱码、提示框报错,于是又安装 wine 的补丁,安装系统字体包,安装 vcruntime 运行时,终于,软件安装好了!结果 FairyMusicBox 一跑起来就崩溃了,0x00 地址访问错误,连初始化界面都没进!又开始查日志,搜 github ,问 AI ,最后定位到是 DirectX 的问题,原来 FairyMusicBox 使用 DX11 渲染那一个个漂亮的音符,但 Wine 不支持,超过能力范围了,Apple 的图形接口又那么独特。所以又开始找 Vulkan 模拟 DX 的方案,尝试 DXVK ,MoltenVK 等等,试来试去,总是不行。log 显示模拟 DX11 倒是成功了,图形设备也创建成功,但下一句 log 又立马又是访问 0x00 崩溃,这到底是模拟成功了还是没成功呢?!

放弃了

算了,还是老实付费 CrossOver 这个 Wine 的商业版软件吧,支持一下 Wine !折腾这么一番,图什么呢!!

其实在最开始阶段,用 CrossOver 很顺利就跑通了,然后也成功打了一只曲子的纸带。后面之所以再去折腾虚拟机、Wine 这些,主要也是希望用开源免费的,毕竟 CrossOver 就是 Wine 的商业化版本啊,难不成守着开源的赶着去付钱?结果给我来个这样的暴击!

看到 macOS 上跑起来 Windows 的软件,感觉还是挺不错的,算是一个欣慰。有没有同样踩过坑的,这真的太坑了!!

7352 次点击
所在节点    macOS
83 条回复
hwdq0012
54 天前
建议一个 windows 台式,一个 mac book max , 再配置一台 mac book air 用来远程他们,出门 mac book air 只是听听音乐,远程一下,续航是有保障的
ratazzi
54 天前
我觉得我天生跟 windows 犯冲的,从来没顺过
cskzhi
54 天前
或者捡一台二手 Intel mac 装 windows ,可省略主贴里的折腾
yinmin
54 天前
mac 跑 win 应该是:parallels desktop 跑 win11arm 版虚拟机,在虚拟机里可以跑 x86/x64/arm64 的 win 程序。

唯一的缺点是 win arm 版不支持 x86/x64 的内核驱动程序,如果 x86/x64 程序要加载内核驱动就不能用了,必须 arm64 才行。例如一些银行软件、游戏软件等,必须用 arm 版,没 arm 版就没法用。
wanguorui123
54 天前
UTM 安装 x86 的 win 看看呢?
sillydaddy
54 天前
@yinmin 我用的是 UTM 这个软件,也是下载的 arm 版 Windows11 。它说用的是 Apple 的硬件虚拟化,跟 VirutalBox 这样的纯粹通过模拟的还不一样。按理说不应该那么卡,结果却是奇卡无比。parallels 应该跟 UTM 是类似的吧?
sillydaddy
54 天前
@wanguorui123 那样肯定更卡了。装 x86 的只能是通过「模拟」技术,而不是「虚拟化」技术。我也不太懂底层,反正这 2 个是有区别的,虚拟化更接近原生。
destine
54 天前
VMWare Fusion 没试试?
MacsedProtoss
54 天前
感觉…不如…再来个 win
反正我 Mac 主力 win 游戏 顺便干一些 win only 的活
yinmin
54 天前
@sillydaddy #6 parallels desktop 有免费 14 天试用的,你用了就知道差别了。
hefish
54 天前
买台 windows 嘛。。又不贵。200 块也能买到啊。
ratazzi
54 天前
我最近刚试了 vmware fusion 装系统后面让我选网卡驱动,这我去哪找,相比之下 parallels 自动下载 iso 安装到进入桌面很省心
Nosub
54 天前
所以我说,其实 Windows 程序员远比 MacOS 程序员多,一部分原因是很多程序员没钱买 Mac ,另外是,一些程序员不屑于在封闭的 MacOS 开发应用。
okakuyang
54 天前
什么鬼,难道不是装个 pd ,装个 arm 版本的 win ,再用 win 的转译 x86
dilidilid
54 天前
《封闭的 MacOS 》,还挺幽默,我寻思 Windows 也不咋开放呀,那肯定开放的 Linux 应用是最多的吧
sillydaddy
54 天前
@yinmin
感谢提醒,回头我试试。

@hefish
@MacsedProtoss
买 Windows 计算机也是成本啊,要随时开机能远程,主要是还占地方。

@ratazzi
对,商业软件不是白付钱的,用开源的基本要做好被折腾的准备。用开源的 Wine 就要折腾显卡、显示、依赖库这些问题,而 CrossOver 都给解决了。
catazshadow
54 天前
Mac 不是封闭
是小众,非主流
Socrazy
54 天前
难道第一想到的不是 PD 试一下?
kodise
54 天前
一楼提议不错,另外如果这么做的话可以考虑 parsec 这款软件。唯一讨厌的是这个软件有 macos 唯独没有 ios
atone
54 天前
直接使用 CrossOver ,新建一个 Win10 的 bottle ,然后安装,运行,一切正常。
付费能解决的问题,干嘛花那么多时间折腾?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://yangjunhui.monster/t/1125283

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX