无头MacBook(2025)

Hacker News Top 新闻

摘要

一位开发者详述了将MacBook Air M1设置为无头模式用于Apple平台开发的旅程,探索了虚拟机和CI服务等替代方案,同时注重成本和能源效率。

暂无内容
查看原文
查看缓存全文

缓存时间: 2026/09/07 21:33

## 改装Macbook:一场奥德赛 2025年3月6日更新于2025年8月28日 27分钟阅读 ## 引言*第1部分,共11部分* > 接受一个事实:如果要为Apple平台开发,我需要一台Mac。 - 无头Macbook Air M1无头Macbook Air M1 我不太喜欢使用Apple产品。但我希望能让自己的软件在它们的平台上可用。 要在MacOS/iOS/iPadOS上发布应用,你确实需要Apple硬件。而且,如果我为他们的平台提供软件,尤其是如果我想销售我的作品,**我需要能够以用户将体验的方式来体验我的应用**。 这是对用户的基本尊重。 ### 虚拟化 我尝试过虚拟机,可能在VirtualBox和QEMU/KVM中运行过半打MacOS虚拟机。让MacOS在虚拟机中工作既困难、不稳定,而且(至少在我的机器上)性能也不佳。Apple强烈不希望你这样做,你将永远是在逆流而上。 这是一段毫无乐趣的体验。 ### Codemagic 我尝试了 Codemagic (https://codemagic.io/),一个持续集成/持续交付服务,可以让你发布到包括Apple在内的多个平台。这是一个很棒的服务,并且有免费套餐,但看起来我的使用量最终会把我推入付费套餐,这对我来说可能会很快变得昂贵。 而且它是远程操作的,虽然Codemagic确实允许远程登录到MacOS图形界面,但这与面前有一台设备不同。如果我想彻底检查在Codemagic远程机器上使用我的应用的体验(而不仅仅是运行构建),那会迅速耗尽所有免费分钟数。 我当然能看到这在某些情况下是个解决方案——但不适用于我。 ### 所以... 在我拥有数十台计算机的二十多年来,我第一次允许自己决定:我需要某种Mac。 ## 我该选哪款Mac?*第2部分,共11部分* > 找到一台我能用的Mac。 影响我决策的最关键因素是: - *成本*。我想尽可能少花钱。 - *功耗*。我生活在一个低功耗环境(https://mm-dev.rocks/posts/my-working-environment/intro/),不想引入一个会显著增加我电力消耗的新设备。 显然,在功耗方面,我需要的是Apple Silicon。多年来我偏爱ARM处理器,并尽可能地在我的工作中使用它们 (https://mm-dev.rocks/posts/android-as-a-dev-environment/intro/)。Apple使用专用ARM芯片并严格控制其硬件/软件架构,这意味着他们在最大化性能功耗比方面处于有利地位……如果我必须在Apple的池子里划水,那么选择Apple Silicon是无需思考的。 为了保持低价,显而易见的选择是使用第一代M1芯片。据报道它们仍然表现良好,并且应该会获得一段时间的操作系统更新(使用 OpenCore Legacy Patcher (https://dortania.github.io/OpenCore-Legacy-Patcher/) 甚至更久)。 我不太喜欢笔记本电脑(我宁愿自己选择键盘、指点设备和屏幕(https://mm-dev.rocks/posts/oled-and-ink-4-life/intro/),所以把这些我不需要的东西冗余地粘在计算机上是一种浪费),所以我最初被 **M1 Mac Mini** 吸引了。它只是一台计算机,没有我不需要的人机接口设备。 然而,有两件事让我对M1 Mac Mini望而却步: ### 它有风扇 人们说它很安静。即使这是真的(噪音也有程度之分),风扇是机械部件,可能会磨损(并产生噪音)、吸入/吹出灰尘(需要清洁),或发生故障。它们也消耗电力。 ### 供电 为我的家供电的电池组是12V(24V或48V会更好,我会在适当的时候升级)。我所有的电力都来自这个电池组。 我有一个电力逆变器,这意味着我**可以**使用带有普通/家用插头的电器,但逆变器在将12V升压到220V的转换过程中会浪费一些电力。然后再插上一个电源适配器,它又会将220V转换回设备使用的电压时再次浪费一些电力,这意味着双重浪费,以及一堆插头和电线的混乱。 我有来自电池的直流12V,以及通过升压转换器获得的易获取的20V电源。当然,我还有通过USB提供的5V,更不用说所有各种USB-C变体了。通过所有这些方法,我可以为我定期使用的所有设备供电。 - 各种XT-60适配器各种XT-60适配器 当我购买新设备时,我做的第一件事就是切掉它的电源接口,将其连接到我用于所有设备的 XT60 连接器之一(https://mm-dev.rocks/series/decapitating-macbook-an-odyssey/#),然后丢弃(实际上是囤积)设备的电源适配器。我已经这样处理过多个笔记本电脑和小型规格PC,没有出现任何问题。它们通常似乎需要19V-21V,并且能容忍20V,*尽管我听说过有人用类似我这种鲁莽行为损坏设备的事情*,所以也许我只是运气好。 我搜索了关于对M1 Mac Mini电源适配器进行此操作的信息,发现有些人说他们遇到了问题。在写这篇文章时,我再次搜索以尝试找到这些讨论,但这次我找到了一些表明这相当容易的信息。所以我不确定是之前用了错误的搜索词,还是我只是对修改Apple设备的供电过于紧张。Apple通常对不走寻常路非常不友好,并且他们以实施措施阻止你用“未批准”的方式做事而闻名。我不想浪费钱买一个我用不了的东西。 无论如何,我决定放弃M1 Mac Mini。 ## M1 Macbook Air*第3部分,共11部分* > 我承认这是一款现代经典。 尽管它是笔记本电脑,但我决定更深入地考虑Macbook Air: - 它薄、轻,功耗特别低 - 它无风扇 - 虽然我永远不会偏爱它,但Apple(或者我的?)用户往往*喜欢触控板*,因此能够在M1 Air的触控板上测试我的应用并确保一切感觉正常可能很有用 至于我对于冗余(对我来说)显示屏的问题?\.\.*这可能变成一个优势*。 当显示屏损坏时,人们会便宜地出售这些机器(Apple……不太重视维修权)。我可以买一台屏幕损坏的Macbook,然后移除它。我检查了这是否可行(对于大多数笔记本电脑来说,这是理所当然的,但对于Apple,我不确定会发生什么)。我发现这是可行的,有人正在这样做。太棒了。 ### ‘立即购买’ 我在eBay上设法找到了一台屏幕碎裂的8GB M1 Macbook Air,玫瑰粉色,售价300英镑。老实说,如果我等一等,可能还能以更低的价格买到。 但这是一个*趁热打铁*的情况……我的抵抗已经持续了很多年,如果我等下去,很容易最终改变主意。 ### 8GB内存?玫瑰粉色? 我理想中希望现代笔记本电脑至少有16GB内存,但这个和8GB之间的价格差异即使在二手市场上也很显著。似乎每个人都说Apple Silicon上的8GB相当于AMD64上的16GB,这听起来非常像现实扭曲场在起作用,但也有一些架构现实,比如他们的“统一”内存架构支持这一点(或者至少是说你在Apple Silicon上每GB内存能获得更多性能的观点)。我决定相信它。 我主要对将这台机器用于Flutter开发感兴趣,并发现有几个人说他们在M1的8GB机器上进行开发没有问题。\[来自未来的备注:它很棒,没问题,对我来说轻松流畅。] 这个型号是玫瑰粉色,是我通常最不可能选择的颜色。考虑到我是为了立即拆解而购买它,这 somehow 让它更加完美。 ## 这是eBay上买的。它能用吗?*第4部分,共11部分* > 我在eBay上购物的经历通常还不错。但在开始拆解我的购买品之前,我应该先确保它能用。 作为eBay上的购买(尽管来自一个信誉良好的卖家),我需要做的第一件事就是确保这东西确实能工作。 屏幕损坏了(如描述所示),基本上不显示任何东西,或者具体地说,有几条单像素的彩色线条,暗示机器是开还是关,在黑色的碎裂背景上。 现代Mac上不允许有像“一个告诉你何时通电的LED”这么俗气的东西。*这些细细的、单像素的彩色线条将是我的电源指示灯*。 ### 显示器和线缆 在这里我遇到了第一个困难。我有一台非常小、非常便宜的USB-C显示器。这是我唯一真正拥有的显示器。我通常通过VNC、NoMachine等以无头模式运行东西,使用像我的Galaxy Tab S8 Ultra这样的平板电脑作为远程OLED显示屏。我只是没有太多对显示器的需求。我有一台Boox Max Lumi E-ink平板电脑,带有micro HDMI输入,所以它*可以*作为显示器使用,但……也许稍后再说。 所以我把小显示器插到那台**毫无个性、勇敢极简**机身上两个可用端口中的一个(另一个端口用于供电)。\*显示器没有亮起来。\* 一片充满困惑的可能状态的广阔景象在我面前展开。我插错端口了吗?USB-C端口并非都一样,尤其是在涉及显示和供电时。也许只有一个特定的端口能为Mac供电,或者只有一个能输出显示信号。 线缆呢,两根线缆?它们真的在提供电力/图像吗,还是里面有错误的线芯? Macbook通过USB-C输出的功率足以驱动显示器吗?我需要额外插一根电源线,或者给电池再充点电,或者给显示器本身额外供电吗? 我的显示器不兼容吗?它只是一个简单的来自速卖通的通用产品,而Apple以与第三方产品广泛兼容而闻名吗?是不是只是在操作系统里还没启用? 我现在是“在操作系统里”了吗,或者Macbook还在启动……或者卡在某个可怕的“恢复区”里,盲目按错按钮可能会导致操作系统损坏,唯一的解决方案是“把它插到你没有的其他Apple电脑上”或者“把它带到Apple Store,那里(如果穿着像你这样的人被允许进去的话)一位天才会对无头Macbook的概念感到气喘吁吁,然后让你用你没有的一千英镑买一台新的”? 在经历了令人尴尬的多次换线(我80%的USB-C线要么无法提供足够的电力,要么无法传输图像,而且我经历过这么多次这种事,应该早就知道*永远不要假设我的线缆是好的*)之后,我终于取得了进展。 显示器亮了。 然后它又黑了。不是死寂的黑,而是TFT面板那种劣质发光灰色的尝试黑色,这告诉我显示器已通电并试图显示某些东西,但没有东西可显示。 ### 电源按钮 - Macbook Air M1电源按钮Macbook Air M1电源按钮 Macbook至少给了我一个电源按钮,以键盘角落上的一个特殊按键的形式。 这是一个奇怪的部件,位置比键盘上其他按键略低,触感反应与其他按键略有不同。也许这是为了可用性原因将其标记为“其他”(我喜欢这样),或者也许是按钮内置指纹传感器的副作用。 由于我缺乏Apple经验且屏幕无法工作,我实际上发现这个按钮有点令人困惑。我从来不确定是否“正确”地按了它,即它是需要轻点,还是稍微按住,或者长按是否可能执行不同的功能? 我尝试搜索关于这个按钮的信息,但有太多不同型号的Macbook,许多用户有不同的表达想法的方式,没有官方的详细文档来说明这些事情,而且当然有合理的假设认为Macbook有屏幕。是的,我被一个电源按钮搞糊涂了。 - 外接显示器 - 无登录界面外接显示器 - 无登录界面 按了几次电源按钮,并等待查看是否重启后,有了更多进展。树木!出现了MacOS登录界面,只是……不完全对。没有按钮、对话框或任何用户界面元素。 经过一番搜索,我了解到缺失的登录UI表明有一块第二屏幕连接到了Macbook。登录界面正显示在我看不见的坏掉的内屏上,而我的小显示器只是作为扩展。这很合理。 更多的“网络研究”显示 `CMD + F1` 会将输出切换到外接显示器。这很有效。太好了。*我现在有了一个小巧的11英寸MacOS登录屏幕*。 - 登录屏幕:成功登录屏幕:成功 它(勉强)能用。 ## 移除显示屏*第5部分,共11部分* > 终于开始进行硬件修剪。 移除显示屏相对容易,但很耗时。有很多螺丝,它们有五角星形和梅花头,但这些在任何电子螺丝刀套装中都是标准的——我有那么一套。 我在YouTube上看了几个拆解视频,以确保我不会遇到可能断裂的塑料卡扣、易撕的扁平排线等,并找到显示屏连接器的位置。我拆过不少笔记本电脑,这不算最难的。 将顶盖与底座分离很棘手。即使移除了所有固定件,它仍然卡住。我无法确定是铰链的公差太紧(嘿,把公差收紧,金属就会粘住金属 (https://www.youtube.com/watch?v=0INUtcvhK3U)……虽然我认为即使Apple精密的工程,这也可能是正常的卡住,而非更神秘的原因),还是某个组件挡住了路,我遗漏了什么。 我找到一个视频,建议将笔记本打开到90度,然后将其挂在桌子边缘,用力一击将顶盖与底座分离。他们做起来看起来比我发现的要容易,但最终我还是取下了顶盖。 ### 保留顶盖 在研究了各种保护套和内胆包(如果没别的,我希望能防止按键在Macbook收起时被按下而唤醒它)之后,我决定保留顶盖。它又薄、又轻、又结实,为什么不继续用它来保护计算机呢?它就是为此设计的。 将玻璃面板从顶盖中取出是一件苦差事。像大多数现代显示屏一样,它非常薄且易碎(在这种情况下已经碎了),并且通过某种粘合剂或薄胶带紧紧地粘在金属外壳的内部。我不得不使用加热和刮刀,这造成了一个可怕且可能危险的混乱,成千上万的碎屑看起来像太妃糖苹果,但实际上是会割伤、可吸入的玻璃。 我工作得很慢,大约每一分钟就把最新的碎片扫进一个容器,以免它们嵌入我的手/角膜/细支气管。我轻轻地这样做,以免刷子抖动把碎片弄得到处都是。 过了一会儿,我想到在刮掉每块玻璃之前,在上面贴一片管道胶带。这很有效,防止了碎片散落,并更容易将玻璃从顶盖的金属外壳上刮下来。 - Macbook Air M1顶盖,屏幕已移除Macbook Air M1顶盖,屏幕已移除 当所有玻璃最终被清除后,仍有几个区域保持粘性,以及一些未完成的锋利金属边缘。为了防止它粘住头发或刮伤键盘/触控板,我在顶盖的整个内表面覆盖了一层透明的粘性塑料片。 这

相似文章

健忘的 CPU(M4 上的 Linux)

Lobsters Hottest

一篇详细的技术文章,讲述如何在 M4 Mac mini 上启动主线 Linux,克服新引入且强制启用的 SPTM(安全页表监控器)——它破坏了现有的基于 m1n1 虚拟机管理程序的工作流程,并让 SoC 启动到足以通过串口控制台进行调试的程度。作者对 Asahi Linux 团队表示感谢,并记录了被锁定的 GXF/RVBAR 寄存器以及早期 Linux 启动的进展。