在 Mac mini 上安装 Ubuntu/Linux Mint/Debian 指南






4.50/5 (3投票s)
解释了如何在 Apple Mac mini late 2012 硬件上安装 Linux,以及如何配置设备驱动程序,例如内置的 Broadcom B43 wifi 控制器。
在 Mac mini 上安装 Ubuntu/Linux Mint 很容易,但要让它像你通常希望 PC 运行那样工作有点困难(这意味着,运行流畅并让所有外设正常工作):) 我试图涵盖我在 Linux 安装过程中遇到的所有问题,并让 Apple 硬件愉快地与 Linux 配合使用。
在我们开始之前的一些事情,
- 我假设您对基于 *nix 的操作系统和命令有相当的了解。
- 你需要一个稳定的电源 ;)
- 一台 Mac mini late 2012,装有状态完美的 OSX(如果没有,你可以重新安装 OSX 开始,我就是这么做的)
- 一个键盘和鼠标
- 一台或两台显示器,这样你就能看到正在发生什么 :)
注意:我在安装 Linux 之前重新安装了 macosx,并使用两个分区(使用 Apple 磁盘工具)重新创建了分区表。由于我有一个 1TB 的硬盘,我将其分成两个相等的分区,并在第一个分区上重新安装了 mac(使用了 512GB)。
我保留了第二个分区不动,这意味着未格式化。我不认为这是必须的,只是说明我的配置是什么......
引言
Mac mini 配备了 UEFI 引导加载程序,让多操作系统与机器一起运行的最简单方法是通过 rEFInd,您可以从下面的链接下载它。
据我所知,rEFInd 是一个基于 UEFI 计算机的软件层,这样你就可以通过一个漂亮的菜单驱动界面轻松运行多个操作系统,以便用户可以轻松切换它们。
从下面的链接下载“二进制 zip 文件”。
下载后,解压缩 zip,'cd' 到文件夹中并运行 "sudo ./install.sh"
它将显示一些消息并完成安装。
重启,如果 rEFInd 安装正确,你将在启动时看到菜单...
(版本 0.7.4,截至 2013 年 9 月 5 日,二进制 zip 存档)
http://www.rodsbooks.com/refind/getting.html
http://sourceforge.net/projects/refind/files/0.7.4/refind-bin-0.7.4.zip/download
安装过程
安装应该很简单,直到你到达选择分区设置的点。你需要从硬盘设置/分区部分选择“其他”,然后在分区编辑器中
选择你在 Mac 磁盘分区工具中留空的第二个分区(请查看上面的注意事项),使用空白分区设置你喜欢的分区表。
一个解释 Mint 中手动磁盘分区的视频片段。
http://www.youtube.com/watch?v=eWXtVkA-S6g
在“引导加载程序安装设备”下拉菜单中,请选择你在分区表中创建的根分区或 /boot/ 分区。切勿使用 Mac OSX 使用的任何块设备,在我的机器中,它们是设备本身 /dev/sda 和 /dev/sda1、/dev/sda2
一旦分区确认并且引导加载程序安装设备设置好,请继续安装。
第二台显示器颜色深度低
如果您设置了双显示器,那么您会注意到有时其中一台显示器的颜色比另一台少。我读到过这个问题发生在带有 Intel HD xxxx 显卡的 EFI 机器上,但我不太确定其背后的原因。
永久解决此问题的方法是更改 Intel HD 显卡的配置寄存器。我更喜欢通过 /etc/profile 文件来实现。
sudo gedit /etc/profile
添加以下行
intel_reg_write 0x70008 0xC4002000
保存文件并退出。下次启动时,显示器上的颜色将正常。
博通无线 BCM4331 芯片组
博通芯片在 Linux 上支持不佳,如果您需要更多信息,Arch Linux 文档提供了很好的内部解释 (https://wiki.archlinux.org.cn/index.php/Broadcom_wireless)。
让我们安装 wifi 驱动程序,
您需要确保已将存储库源设置为从源代码包本身下载和编译驱动程序,要启用源代码存储库,请参阅https://help.ubuntu.com/community/Repositories/Ubuntu#Adding_Ubuntu_Software_Repositories,通常在 Linux Mint/Ubuntu 的“软件源”应用程序中应该有一个启用“源代码”选项的选项。
启用源代码包后,打开终端并运行以下命令,为了从源代码编译包,您需要内核头文件和 Debian 包开发人员工具。
sudo apt-get update sudo apt-get install linux-headers-generic linux-headers-`uname -r` sudo apt-get install dpkg-dev debhelper dh-modaliases sudo apt-get install --reinstall bcmwl-kernel-source
并确保开源驱动程序已禁用,为了禁用它们,请编辑内核模块配置文件并进行如下所需更改
sudo gedit /etc/modprobe.d/blacklist.conf
在文件底部添加以下行
blacklist bcm43xx blacklist b43 blacklist bcma
重启机器,无线网络应该就可以运行了!;)
挂起到内存 (S3)
如果你真的不在乎可靠地暂停你的 Mac mini 以便节能 ;) 并且无线工作完美,你可以跳过此部分。如果你需要同时让挂起和 WiFi 工作,请继续。
在最新的 Ubuntu 版本中,内核 3.8.xx 无法可靠地使 Mac mini 进入睡眠状态,我无法找出确切的原因,但在多次尝试和错误后,我发现内核 3.11.xx 可以可靠地挂起 Mac mini。
但安装最新内核的缺点是 wifi 驱动程序无法编译,因为内核 3.10.0 中的内核头文件发生了变化。
如果您严格按照本指南操作,您应该能够应用我提交给 bcm-kernel-source 包的补丁,并使其正确编译和安装。
步骤 1:创建一个临时目录以获取下载并运行内核更新。
mkdir /tmp/kernel-3.11.0 cd /tmp/kernel-3.11.0
步骤 2:从下面的链接获取与您的处理器架构匹配的内核包。您应该从链接下载三个包:linux-headers-generic、linux-headers、linux-image。由于所有最新的 Mac mini 都运行 Core iX 处理器,您可以安全地下载 64 位包。
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.11-saucy/linux-headers-3.11.0-031100-generic_3.11.0-031100.201309021735_amd64.deb http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.11-saucy/linux-headers-3.11.0-031100_3.11.0-031100.201309021735_all.deb http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.11-saucy/linux-image-3.11.0-031100-generic_3.11.0-031100.201309021735_amd64.deb
sudo dpkg -i *.deb
步骤 3:错误消息和修复
在撰写本文时,bcmwl-kernel-source 未使用 kernel-headers 3.11.0 编译并出现下面段落中提到的错误,我已在 Ubuntu launchpad 中提交了一个补丁。您可以在文档末尾的 URL 中查看包的状态,如果它显示包已更新,则无需运行以下任何命令。
运行 dpkg 命令后,您可能会看到一个错误,提示检查 make.log 获取调试信息,这意味着无线驱动程序未能正确编译和安装。但别担心,只需重启您的计算机,下次计算机将使用我们刚刚安装的最新内核启动。请注意,重启后无线将无法工作(这是由于我们得到的 wl.ko 内核模块错误),因此请确保您有另一个设备打开此教程,以便您可以继续阅读。
重启后,下载我在 launchpad 错误报告中附带的补丁,并将其复制到 bcmwl-kernel-source 目录,然后重新编译代码,如下所示。
cd /usr/src/bcmwl-6.20.155.1+bdcom/patches wget https://bugs.launchpad.net/ubuntu/+source/bcmwl/+bug/1197586/+attachment/3808355/+files/0008-add-support-to-linux-3.9.0-3.11.0.patch cd /usr/src/bcmwl-6.20.155.1+bdcom/ sudo gedit dkms.conf
编辑 dkms.conf 后,您将看到 10-15 行如下所示,并将该行添加到文件中并保存。
PACKAGE_NAME="bcmwl" PACKAGE_VERSION="6.20.155.1+bdcom" CLEAN="rm -f *.*o" BUILT_MODULE_NAME[0]="wl" MAKE[0]="make -C $kernel_source_dir M=$dkms_tree/$PACKAGE_NAME/$PACKAGE_VERSION/build" DEST_MODULE_LOCATION[0]="/updates" PATCH[0]="0001-MODULE_LICENSE.patch" PATCH[1]="0002-Makefile.patch" PATCH[2]="0003-Make-up-for-missing-init_MUTEX.patch" PATCH[3]="0004-Add-support-for-Linux-3.2.patch" PATCH[4]="0005-add-support-for-linux-3.4.0.patch" PATCH[5]="0006-add-support-for-linux-3.8.0.patch" PATCH[6]="0007-nl80211-move-scan-API-to-wdev.patch" PATCH[7]="0008-add-support-to-linux-3.9.0-3.11.0.patch" <-- Line we need to add #PATCH_MATCH[3]="^3.[23456]" #PATCH_MATCH[4]="^3.[56]" AUTOINSTALL="yes"
步骤 4:重新配置 bcmwl-kernel-source
如果您已正确完成上述所有步骤,您应该能够运行以下命令并重新编译 bcmwl 驱动程序而不会出现编译时错误。
sudo dpkg-reconfigure bcmwl-kernel-source
步骤 5:检查驱动程序是否已安装
cd /lib/modules/3.11.0-031100-generic/kernel/drivers/net/wireless ls -l
您应该会看到一个名为wl.ko的文件,就是这样!
重启您的机器,无线网络应该就能正常工作了。您也可以尝试通过在终端中运行 "sudo modprobe wl" 来加载内核模块,而不会收到模块未找到的错误。
如果有人感兴趣,这就是我们刚刚修复的 bug:https://bugs.launchpad.net/ubuntu/+source/bcmwl/+bug/1197586
这些都是我在使用 Mac mini 和 Linux 的前两周遇到的所有问题,希望这篇文档能帮助你们这些勇敢的 Linux 用户在 Apple 提供的最佳硬件上运行你们最喜欢的发行版 :)
如果您发现 Mac mini 和 Linux 还有其他问题,请留言,我很乐意提供帮助。