标签归档:MacBook

【翻译】如何快速给 MacBook 预热

前言

文章来源:z3ugma.github.io

原文标题:Warm up your MacBook

原文发布时间:2019-11-18

原文链接:https://z3ugma.github.io/2019/11/18/warm-up-your-macbook/

本文根据原文内容翻译整理,并补充了适用范围与使用注意事项,译文由 AI 辅助完成。


这是一篇带点玩笑意味的实用短文:如果你刚从冬天室外、冷车厢,或者空调很足的环境里拿出 MacBook,金属机身摸起来冰凉,想让它快一点“热起来”,最直接的方法其实不是等,而是让 CPU 开始工作

如何快速给 MacBook 预热

如果你只是想粗暴地让机器升温,可以打开终端,执行下面这条命令:

yes > /dev/null

这个命令会持续输出 y,再把输出丢进黑洞设备 /dev/null,从而让一个 CPU 核心持续忙碌起来。机器开始算东西,温度自然就会上去,机身也会慢慢暖和。

不过,如果你想要一个更可控的方式,原文更推荐使用 stress 这个小工具。先用 Homebrew 安装:

brew install stress

然后运行:

stress -c 6 -m 2 -t 300

这条命令的意思是:

  • -c 6:启动 6 个 CPU 压力任务;
  • -m 2:再启动 2 个不断做内存分配/释放的任务;
  • -t 300:持续 300 秒,也就是 5 分钟后自动停止。

这样做的好处是,你不用自己记得去停掉进程,时间到了它会自动结束。

如果你觉得这个操作以后还会经常用,原文建议顺手在 shell 配置里加一个别名,例如:

alias warm='stress -c 6 -m 2 -t 300'

以后只要输入:

warm

MacBook 就会开始“自我发热”。

补充说明

原文写于 2019 年,更贴近当时的 Intel MacBook 使用场景。放到今天,有几点值得补充:

1. yes > /dev/null 只会打满一个核心

在多核机器上,这条命令并不会让整台机器瞬间满载,它只是让一个核心一直忙。想要更明显地升温,还是 stress 这类可以并发压测的工具更直接。

2. 不要把“预热”变成“过热”

这类做法本质上是在主动制造负载。短时间内问题不大,但如果你把任务开得太猛、时间拉得太长,风扇噪音、电池消耗、表面温度都会明显上升。放在腿上、被子上或者不通风的地方跑,就更不推荐了。

3. Apple Silicon 时代通常没那么需要

现在的 M 系列 MacBook 在能耗和发热控制上比当年的 Intel 机型好很多。多数情况下,你可能根本不需要专门“预热”它;如果只是嫌机身太凉,降低空调、换个环境,往往比专门压 CPU 更自然。

4. 想停下来就直接中断

如果你是手动运行 yesstress,发现已经够热了,直接按 Ctrl+C 即可结束。不要让它在后台一直跑着忘了关。

小结

这篇原文其实就讲了一件事:想让冷冰冰的 MacBook 快点变暖,最简单的方法就是让 CPU 忙起来。

2019 年看,这是一个略带黑色幽默的 MacBook 小技巧;今天再看,更像是一篇属于 Intel 时代的轻松小品。拿来了解一下无妨,真要使用时,记得适可而止。

Parallels m1 安装 arch 虚拟机并配置 KDE 和辅助程序

最近在探索 m1 MacBook 下运行 linux 虚拟机的可能性,计划未来在 linux 虚拟机下完成所有开发工作,parallels desktop 天然提供了 debian/ubuntu/fedora 等 linux 发行版支持,但是在我个人使用场景中还是多少有些问题。

几天在浏览 archWiki 时发现社区提供了一个直接可用的 parallels Deskto 虚拟机模版,可以用来快速配置 linux 开发环境,比较省时省力,在这里介绍几个关键步骤。

获取 arch linux 虚拟机模版

这里下载 Arch Linux Parallels Desktop 虚拟机模版。

下载完毕后解压,使用 Parallels 打开即可。

在 对应的 README 文件中可以看到默认的用户名和密码。

如果一切顺利,启动虚拟机,即可看到一个配置好的 arch linux。

安装 KDE 桌面

# 根据需要配置镜像后进行
# 建议配置 ustc arch arm 镜像后继续
pacman -Syyu # 升级系统中全部包
pacman -S sudo vim xf86-video-vesa 

# 创建非 root 账号
useradd -m -G wheel -s /bin/bash myusername
passwd myusername
# 最后记得赋予新用户 sudo 权限

# 安装 kde plasma 桌面
pacman -S plasma-meta konsole dolphin 
# plasma-meta 元软件包、konsole 终端模拟器和 dolphin 文件管理器
pacman -S plasma-wayland-session xdg-desktop-portal
sudo pacman -S packagekit-qt5 packagekit appstream-qt appstream # 确保 Discover(软件中心)可用,需重启
systemctl enable sddm
systemctl start sddm  # 直接启动显示管理器

# 安装中文字体
sudo pacman -S adobe-source-han-serif-cn-fonts wqy-zenhei # 安装几个开源中文字体。一般装上文泉驿就能解决大多 wine 应用中文方块的问题
sudo pacman -S noto-fonts noto-fonts-cjk noto-fonts-emoji noto-fonts-extra # 安装谷歌开源字体及表情
sudo pacman -S kdeconnect # 安装 KDE Connect,可以用智能手机控制 KDE

安装 Parallels Tools

实测默认无法通过 Parallels 菜单栏的安装 Parallels Tools 来安装辅助工具,需要手动挂载安装。

前往 /Applications/Parallels Desktop.app/Contents/Resources/Tools 文件夹,找到 prl-tools-lin-arm.iso 文件,手动挂载到虚拟机中,运行安装即可。

效果展示

以上描述了几个需要特别注意的点,之后按照需要配置系统即可:

搭载 Apple Sillicon 芯片的 MacBook 目前软件生态还有待完善,虚拟化方面,我尝试了 UTM、VMware Fusion 和 Parallels Desktop 三种虚拟化桌面软件,以及 Debian/Fedora/Ubuntu 等系统。

体验下来 Parallels Desktop 比较省时省力,系统方面貌似 Arch 和 Debian 下 aarch64 的软件生态相对完善,如果有时间建议都尝试一下选择适合自己的。

体验下来我个人更倾向 Arch Linux,KDE 支持比较好,软件生态也相对更好。不管选择什么,记得日常配置多打快照,避免哪一天滚挂了。

相比于 macOS,linux 下的 aarch64 软件生态相对更好些,特别是开源软件和终端下常用的软件,未来我是打算将所有开发和终端操作全部放在 linux 虚拟机中使用了。

参考文献

Homebrew 安装策略(M1芯片 Macbook)

换了 m1 芯片的 Macbook 之后第一个感受到的就是使用 homebrew 的不一样,由于不同的芯片架构,其安装方法也有不同,在这简单记录。

Arm Mac 安装步骤

# arm homebrew 同时设为国内源
/bin/zsh -c "$(curl -fsSL https://gitee.com/huwei1024/HomebrewCN/raw/master/Homebrew.sh)"

# 可在 .bashrc 追加下列内容实现 intel 和 arm 共存
alias abrew='arch -arm64 /opt/homebrew/bin/brew'
alias ibrew='arch -x86_64 /usr/local/bin/brew'

安装更新国内 homebrew 镜像源

/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"

说明

根据官方规划,ARM 版 Homebrew 必须安装在 /opt/homebrew 路径下,而非此前的 /usr/local/Homebrew

参考文献

Mac 下解决 zsh: no matches found: postcss@^7

mac开发引入 tailwindcss 库时遇到如下错误:

zsh: no matches found: postcss@^7

可以这样解决:

# 官网给出的命令如下
npm install -D tailwindcss@npm:@tailwindcss/postcss7-compat postcss@\^7 autoprefixer@\^9

# mac的zsh中需要这样,因为错误的 ^ 解析
npm install -D tailwindcss@npm:@tailwindcss/postcss7-compat postcss@^7 autoprefixer@^9

参考文献