SDB:在 Mac 上安装
本页是关于在苹果电脑上安装 openSUSE 的说明主页。 此处的说明最初是为 openSUSE 11.1 版本编写的,后来更新到 openSUSE Leap 42.2,随后是 Leap 15.0。
本页将描述在 Intel Mac 上安装 Linux 的背景和常用步骤,以及 openSUSE 安装过程中的任何特殊问题。
虽然有几种不同的方法可以在 Mactel 上运行 Linux,但此处描述的过程是截至 2018 年夏季最常用且最广泛支持的方法。
准备
本章描述了在安装 openSUSE 到您的 Mac 之前应该执行的步骤。
请记住始终先备份您的数据!
您可以选择仅安装 openSUSE、多重引导 OS X 和 openSUSE,或 OS X、Windows 和 openSUSE。 即使您不打算使用它,也建议保留 OS X,因为这将允许您安装 Apple 发布的所有固件更新。
如果您打算仅安装 openSUSE,则可以跳过所有准备步骤。
更新 OS X
在 OS X 中运行“软件更新”工具以检查 OS 和固件更新。
rEFInd
rEFInd 管理基于 EFI 的启动过程。 它安装到磁盘的一个分区中,具体选择取决于您在 rEFInd 安装说明中提供的选项。 openSUSE Leap 42.3 和 15.0 会覆盖默认的 EFI 启动管理器,导致无法加载 MacOS。 因此,在安装 Linux 后安装 rEFInd 是必要的。 在某些 Mac 硬件上,需要一个特殊的 WiFi 驱动程序(如下所述),因此最好提前下载 zip 文件。
注意:rEFInd 需要一个干净的启动周期才能正确安装。 您甚至不需要登录到 OS X,只需单击关机,下一个启动屏幕应该是 rEFInd。 如果您在 OS X 中安装了 Oracle 的 VirtualBox,它将阻止该启动周期成功。 简单地将 /Library/StartupItems/VirtualBox (目录) 移出 StartupItems,执行启动周期,然后稍后将其放回。 哇! 请注意,其他第三方程序也可能阻止完整的启动周期。(2012 年 5 月)
rEFInd 包含一个有用的工具,用于同步 GPT 和 MBR 分区详细信息。 您应该在对您的分区方案进行任何更改(在 Mac、Linux 或 Windows 中)后运行此工具。 从 rEFInd 初始启动屏幕,选择“启动分区工具”,仔细阅读输出,然后键入“y”进行确认。 请注意,rEFInd 假定美国键盘布局。(2012 年前,从旧 wiki 迁移)
调整 OS X 分区大小
必须调整 OS X 分区的大小,以腾出空间给 Linux(如果需要 Windows)。 这可以使用图形磁盘工具来实现。 您应该缩小大的系统分区。 不要触碰 EFI(如果存在恢复分区)分区。
使用 OS X 10.5 Leopard 或 OS X 10.6 Snow Leopard (2012 年前) 中的磁盘工具
这是推荐的方法,因为它既可以本地缩小 HFS+ 分区,又可以写入保证有效的 GPT 分区表。 在“应用程序/实用工具”下或使用 Spotlight 启动磁盘工具,并将 OS X 分区调整为所需大小。 建议您在此处设置 Linux 和 Windows 的所需分区方案,以确保您的 GPT 分区表有效。 简单地创建所有必需的分区,设置大小和类型为 HFS+,除了您打算用于 Windows 的分区,该分区应设为 NTFS。 请参阅下面的分区方案说明。
使用 OS X 10.5 Leopard 或 OS X 10.6 Snow Leopard (2012 年前) 中的 BootCamp
Bootcamp 提供了一个简单的 GUI,用于分割现有的 OS X 驱动器为两个分区,非破坏性地缩小第一个分区用于 OS X,并创建一个第二个分区作为 FAT32,稍后可以根据需要重新分区。 分区完成后,退出 BootCamp,即使您计划进行三重引导设置,也不要安装 Windows。 磁盘工具方法更受欢迎,因为它更灵活。
使用 OS X 10.4.6 或更高版本 (2012 年前) 中的 diskutil
BootCamp 最初以 beta 形式发布于 OS X 10.4,但现在已不再可供下载。 另一种选择是使用 Mac OS X 程序 diskutil。 将非破坏性地调整卷大小的功能已添加到 OS X 10.4.6 中的 diskutil(有关更多信息,请参见 macgeekery.com)。
以下命令示例假定“disk0s2”是 OS X 分区,并将调整其大小为 60 千兆字节)
$ sudo diskutil resizeVolume disk0s2 60G Started resizing on disk disk0s2 Mac OS X Verifying Resizing Volume Adjusting Partitions [ + 0%..10%..20%..30%..40%..50%..60%..70%..80%..90%..100% ] Finished resizing on disk disk0s2 Mac OS X /dev/disk0 #: TYPE NAME SIZE IDENTIFIER 0: GUID_partition_scheme *149.1 Gi disk0 1: EFI 200.0 Mi disk0s1 2: Apple_HFS Mac OS X 59.9 Gi disk0s2 $
警告:这可能有效也可能无效,具体取决于您的分区是否已被重新调整大小。
替代方法
禁用 MacOS 中的日志记录,启动到 Linux,使用 Parted 调整 MacOS 分区大小,然后在 MacOS 中重新启用日志记录并检查文件系统。
下载 WiFi 驱动程序
某些 Mac 无线网卡可能不受开源驱动程序的支持。 如果您没有连接到互联网的有线连接,则应提前下载驱动程序。 否则,您可以跳过以下步骤,稍后使用 yast。 在 ubuntu help 上有一个相对完整的 Mac 及其硬件支持列表。 您可以通过以下方式找到您的 Mac 版本
- 打开 Apple 菜单下的“关于本机”
- 单击“系统报告”按钮
- “型号标识符”将出现在默认对话框中。
闭源驱动程序在 openSUSE 中称为 broadcom-wl,在基于 Ubuntu 的发行版中称为 bcmwl-kernel-source。 有两个(!)软件包需要安装,其中一个内核模块需要与内核版本匹配。
在 MacOS 上制作可引导的 USB 存储器
在 MacOS 上,您也可以使用 dd,但命令略有不同
dd if=/downloaded/iso/file.iso of=/dev/rdisk42 bs=1m
请注意,of 转到 rdisk(否则可能需要数小时),并且 bs 使用小写字母而不是大写字母。
从安装 CD / DVD 启动
要使您的 Mac 从 Linux 或 Windows CD 或 DVD 启动,您需要在 Mac 启动时按住“Alt”键(EFI-Boot),并保持按住,直到明显 CD 正在启动(2012 年前)。
在 MacBook Air 上(从 USB 存储器启动),需要按住 alt/option 键。 通过 EFI 方法启动到安装(您应该在按 alt/option 键后看到一个选择)。
分区
只需要确保
- 第一个分区 (/dev/sda1) 保留用于 EFI 启动分区,不要删除或格式化。 但是,它必须在 Linux 安装期间挂载到 /boot/efi 中。
- 第二个分区 (/dev/sda2) 保留用于 OS X,不要删除或格式化。
- 第三个分区 (/dev/sda3) 保留用于 GRUB,因此用于 Linux / 或 /boot
- 第四个分区 (/dev/sda4) 保留用于 Windows
- 第五个及后续分区用于 Linux,如需要,例如 /、/home、/tmp、swap 等。
说明
- 应该自动选择一个 EFI Grub 选项。 但是,请确保它已选择。 绝不要覆盖第一个分区。 浏览 GRUB 页面安装程序中的每个页面,并确保这一点。(如果您想知道会发生什么:据我所知,EFI 启动管理器停止工作,包括 MacOS 的启动管理器。 我能够启动到恢复模式,然后崩溃了完整的 EFI 分区(也称为 ESP),并设法在一天内将其恢复。)
- 实际上,OS X 可以位于 ESP 之外的任何分区,但最好将其保留在原来的位置。 与 Linux 或 Windows 类似,OS X 可以有多个分区,例如用于操作系统的一个分区,以及类似于 /home 的用户数据分区。
- 大多数参考此处特定分区都假定 Linux(和 Windows)将添加到现有的 Mac OS 安装中。 同样有可能先安装 openSUSE,然后安装 Windows,然后安装 Mac,或者 Windows,然后安装 Mac,然后安装 Linux,或者 Linux,然后安装 Mac,然后安装 Windows。 重要的是在磁盘开头创建一个 ESP 分区,并明智地分配磁盘其余部分的空间。 我提前决定创建哪些分区、大小和位置,并在开始第一个 OS 安装之前创建它们。 也可以使用 openSUSE 安装程序的分割器来在安装任何 OS 之前创建所有分区,或者只创建 openSUSE 将使用的分区,为其他分区留出空白空间。
与 Windows 多重引导 (2012 年前)
您可以将您的 Mac 与 OS X、Windows 7、8 和/或 10 以及 Linux 多重引导。 如果您想这样做,通常建议先安装 Windows,然后再安装 openSUSE。 您需要在安装 Windows 之前重新分区硬盘,以选择 Windows 和 openSUSE 的方案。
强烈建议使用内置的 OS X 磁盘工具,因为它将保证有效的 GPT 表。 或者,使用带有 GPT 功能分区工具(parted > x.x.x)的 Linux Live CD,例如 openSUSE >= 11.1 或 Ubuntu >= 8.10 或 Mandriva >= 2010,来启动您的 Mac 并设置您的分区方案(如下面的分区部分)。
现在继续进行 Windows 安装。 您无法使用 BootCamp 执行此操作,因为它仅支持 Mac/Windows 分区方案。 相反,直接启动您的 Windows 安装 CD。 确保您拥有完整的 Windows 安装盘,或者如果您有升级盘,则需要第二个外部 CD 驱动器,因为您无法在大多数 Mac 上手动弹出主安装 CD,而需要在插入您的原始许可盘时弹出。
安装 Windows 后,您可以继续进行 Linux 安装。
openSUSE 安装
遵循正常的 openSUSE 安装过程,因此此处不详细介绍。 本节仅讨论 Mac 安装与正常安装的不同之处。
请记住
- 第一个分区 (/dev/sda1) 保留用于 EFI 启动分区,不要删除或格式化。 它必须在安装期间挂载到 /boot/efi 中。
- 安装到您之前在 MacOS 中创建的空间。
- 在摘要页面开始实际安装过程之前,打开 GRUB 页面。 应该自动选择一个 EFI Grub 选项。 但是,请确保它已选择。 绝不要覆盖第一个分区。 浏览 GRUB 页面安装程序中的每个选项卡,并确保这一点。
系统安装完成后,解压缩 refind zip 并以 root 身份运行 refind-install
WiFi 驱动程序
安装过程完成后,您可能会遇到有关固件问题的启动消息,如下所示
b43-phy0 ERROR: Firmware file "b43/ucode16_mimo.fw" not found b43-phy0 ERROR: Firmware file "b43-open/ucode16_mimo.fw" not found b43-phy0 ERROR: Please open a terminal and enter the command "sudo /usr/sbin/install_bcm43xx_firmware" to download the correct firmware for this driver version. For an off-line installation, go to https://en.opensuse.net.cn/HCL/Network_Adapters_(Wireless)/Broadcom_BCM43xx and follow the instructions in the "Installing firmware from the RPM packages" section.
截至撰写本文时,这些说明并不完全完整:按照指示安装固件后,您必须运行 sudo dracut -f 以确保在启动过程中加载固件。(此额外步骤 可能在未来的错误修复中得到解决。)
完成这些操作后,您可以通过软件管理(在 Dolphin 中右键单击并打开 RPM)或 Zypper 从 USB 笔驱动器安装 WiFi 驱动程序。请注意,软件包系统会提示 RPM 文件已损坏。这是因为签名密钥未安装在系统中。另外请注意,软件管理会提示缺少依赖项(这两个软件包相互依赖,并且软件管理器不会查看目录),只需按“忽略”。
如果您在休眠后遇到 WiFi 问题,则需要执行以下操作
rmmod wl; modprobe wl;
在 Linuxmint 上,pm-utils 会处理调用它,但我认为 openSUSE 使用不同的系统。
在某些型号(如 MBP 2015)上,WiFi 驱动程序默认安装。有时 YaST 在安装期间无法识别它。解决方法是在 YaST 中打开网络配置,然后选择“使用 Network Manager”而不是 Wicked 服务。重启后,WiFi 应该可以工作。
键盘问题(2012 年前)
有报告称,有时 MacBook 和 Macbook Pro 的内置键盘在启动期间无法识别。如果 openSUSE 安装菜单(带有安装/救援/选项)在“从硬盘启动”选项上挂起,请尝试重新启动您的 MacBook。一种解决方法是在安装菜单启动时将 USB 键盘连接到您的 MacBook。
键盘背光肯定可以工作,但需要一些帮助。我已成功编译 lightum。您需要添加这些软件包(2012 年前,在 Leap 中运行良好)
- dbus-1-devel
- dbus-1-glib-devel
- xorg-x11-devel
- gcc
- make
以 root 身份编译,以用户身份运行。使用“-f”进行前台测试 -> lightum -f
享受吧!
摄像头
如果摄像头无法工作(尝试启动 `cheese`),并且是 FaceTime 摄像头
user@macbook:~> sudo lspci | grep -i facetime 05:00.0 Multimedia controller: Broadcom Limited 720p FaceTime HD Camera
那么有一些驱动程序可能有效。
sudo zypper install kernel-devel cd /tmp # or wherever you keep developer repos # Download and extract firmware git clone https://github.com/patjak/facetimehd-firmware cd facetimehd-firmware make sudo make install cd .. # Build and install driver git clone https://github.com/patjak/bcwc_pcie.git cd bcwc_pcie/ make sudo make install sudo depmod sudo modprobe facetimehd
之后,在“sudo lspci -vd 14e4:”输出中(14e4 是 Broadcom 供应商 ID),您应该看到 FaceTime HD 摄像头,并且“kernel driver in use”字段中包含“facetimehd”。如果对您有效,您可能希望在启动时自动加载模块。为此,请在 modprobe.d 中添加一个文件
echo facetimehd | sudo tee /etc/modules-load.d/webcam.conf
您可能希望在内核更新时自动重新构建模块。为此,请使用 DKMS。首先,删除当前模块和自动加载配置,因为该模块会导致冲突,并且 dkms 服务负责加载已安装的模块
sudo rmmod facetimehd sudo rm -f /lib/modules/$(uname -r)/extra/facetimehd.ko sudo rm -f /etc/modules-load.d/webcam.conf
然后使用 DKMS 安装并重新构建模块
sudo zypper install dkms sudo systemctl enable dkms sudo dkms add /tmp/bcwc_pcie/ # path to wherever you checked it out sudo dkms install facetimehd/0.1 sudo systemctl restart dkms
这将源文件复制到 /usr/src/facetimehd-1.0,并在安装新内核版本时执行所有 make/make install/depmod 步骤。dkms restart 加载 facetimehd 模块(如果尚未加载),并启用 dkms systemd 服务将在重新启动时自动加载模块。您可以使用以下命令检查当前内核的模块状态
sudo dkms status facetimehd/0.1
挂起至内存
MacBook Air 6-x 的背光存在问题,亮度设置停止工作,在此处记录,包括解决方案。Leap 42.3 和 15.0 以及 Tumbleweed 有 OBS 软件包,您可以通过 一键安装。
如果您正在测试休眠,并且唤醒后显示器变暗,请尝试使用键盘调亮它。尝试使用和不使用 Fn 键,因为该功能可以互换。尝试经常按压它,因为您看不到它是否正在更改任何内容。
我遇到笔记本电脑在休眠几秒钟后唤醒的问题。
for i in $(cat /proc/acpi/wakeup | grep enabled | grep -o -E "^[A-Z0-9]+"); do echo $i > /proc/acpi/wakeup; done
这需要在每次系统启动时执行。我切换到 Linuxmint 并将其放入 /etc/rc.local,不确定它是否也适用于 openSUSE。如果您打开屏幕或按下随机按钮,笔记本电脑将不再自动唤醒,但电源按钮有效。请注意,在某些硬件上,您可能会遇到问题,因为您基本上关闭了可以唤醒系统的事件。但在最坏的情况下,您必须等待系统耗尽电池,硬件复位应该始终有效。
其他事项
- 为了降低功耗,我建议安装并激活 tlp(它位于默认存储库中,但 在系统服务中手动激活是 WONTFIX)。
- 这里有更多适用于 Mac 笔记本电脑的省电选项(这特定于 MacBookAir6-2,但其他笔记本电脑可能类似。我仍在测试)。
- 这里有更多关于苹果键盘的文档,包括 一个用于切换 Fn 和 Ctrl 按钮的补丁。请注意,如果您只想切换 command 和 alt 按钮,则可以在 KDE 的系统设置 -> 输入设备 -> 高级 -> 配置键盘选项 -> Alt/Win 键行为 -> Alt 与 Win 交换中默认完成此操作。