在Mac mini上安装Linux的详细指南

在Mac mini上安装Linux可能会遇到一些挑战,尤其是当想要让所有外设都能顺利工作时。本文旨在覆盖在Linux安装过程中遇到的问题,以及如何让苹果硬件在Linux下愉快地运行。在开始之前,假设已经具备了一定的*nix操作系统和命令行知识。

首先,确保有稳定的电源供应。需要一台状态良好的Mac mini(如果不是,可以重新安装OSX,就是这么做的)。此外,还需要键盘和鼠标,以及一台或两台显示器,以便可以看到正在发生的事情。

注意:在安装Linux之前重新安装了macOS,并使用苹果磁盘工具重新创建了分区表。由于有一块1TB的硬盘,将其分成了两个相等的分区,并在第一个分区上重新安装了macOS。让第二个分区保持未格式化状态。不认为这是必须的操作,但只是告诉配置是什么。

简介

Mac mini配备了UEFI引导程序,最简单的方法是通过rEFInd在机器上运行多个操作系统。可以从下面的链接下载rEFInd。据所知,rEFInd是一个软件层,用于基于UEFI的计算机,以便可以轻松地运行多个操作系统,并通过一个漂亮的菜单驱动界面轻松切换它们。

从下面的链接下载“二进制zip文件”。下载后,解压缩zip文件,进入文件夹并运行"sudo ./install.sh"。它会显示一些消息并完成安装。重启后,如果rEFInd安装正确,将在启动时看到菜单。

(截至2013年9月5日版本0.7.4,二进制zip存档)

安装过程

安装过程应该是直接的,直到到达选择分区设置的地方。需要在硬盘设置/分区部分选择"Something else",然后在分区编辑器中选择在mac磁盘分区工具中留下的第二个分区,使用空白分区设置最喜欢的分区表。

有关手动磁盘分区的视频教程,请访问:

在"设备用于引导程序安装"下拉菜单中,请选择在分区表中创建的根分区或/boot/分区。永远不要使用Mac OSX使用的任何块设备,在电脑中它们是设备本身/dev/sda和/dev/sda1,/dev/sda2。

一旦分区确认并且引导程序安装设备设置好,就可以继续安装了。

第二个显示器的颜色深度较低

如果有双显示器设置,可能会注意到其中一个显示器的颜色深度比另一个显示器少。在某处读到,这个问题发生在基于EFI的机器上,这些机器配备了Intel HD xxxx显卡,但不确定背后的原因。

永久修复这个问题的方法是通过/etc/profile文件更改Intel HD显卡的配置寄存器。更喜欢的方式是:

sudo gedit /etc/profile

添加以下行:

intel_reg_write 0x70008 0xC4002000

保存文件并退出。在下一次启动时,显示器的颜色将恢复正常。

Broadcom无线BCM4331芯片组

Broadcom芯片在Linux上支持不是很好,如果需要更多信息,为什么Arch Linux文档提供了很好的内部信息()。让安装无线驱动程序。

需要确保仓库源设置为从源包本身下载并编译驱动程序,为了启用源代码仓库,请参考(),通常在Linuxmint/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

重启机器,无线应该可以正常工作了。

如果真的不在乎将Mac mini可靠地挂起到RAM,以便可以节省树木,并且无线工作得很好,可以跳过这一节。如果需要同时让挂起和无线工作,请继续。

在最新的Ubuntu发行版中,内核3.8.xx无法可靠地将Mac mini置于睡眠状态,无法找出确切的原因,但经过大量的试错,发现内核-3.11.xx可以可靠地挂起Mac mini。

但是,安装最新内核的缺点是,wifi驱动程序停止编译,因为内核-3.10.0中的内核头文件发生了变化。

如果按照指南逐字进行,应该能够应用提交给bcm-kernel-source包的补丁,并正确编译和安装它。

mkdir /tmp/kernel-3.11.0 cd /tmp/kernel-3.11.0

从下面的链接获取内核包,根据处理器架构。由于所有最新的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

在编写本文时,bcmwl-kernel-source没有使用内核头文件3.11.0编译,并出现下面段落中提到错误,已经在ubuntu launchpad上提交了一个补丁。可以在文档末尾的URL检查包的状态,如果它说包已更新,就不用担心运行以下任何命令。

运行dpkg命令后,可能会看到一个错误,说检查make.log以获取调试信息,这意味着无线驱动程序未能正确编译和安装。但不用担心,只需重新启动计算机,这样下次计算机将使用刚刚安装的最新内核启动。请注意,重启后无线将无法工作(这是由于得到的wl.ko内核模块错误),所以确保有另一个设备打开这个教程,这样可以继续阅读。

重启后,下载在launchpad bug报告中附加的补丁,并按照以下方式将其复制到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"

需要添加的行

#PATCH_MATCH[3]="^3.[23456]" #PATCH_MATCH[4]="^3.[56]" AUTOINSTALL="yes"

如果正确完成了上述所有步骤,应该能够运行以下命令并重新编译bcmwl驱动程序,而不会出现编译时错误。

sudo dpkg-reconfigure bcmwl-kernel-source cd /lib/modules/3.11.0-031100-generic/kernel/drivers/net/wireless ls -l

应该看到一个名为wl.ko的文件,就是这样!

重启机器,无线应该会启动。也可以尝试在终端中运行"sudo modprobe wl"来加载内核模块,而不会出现找不到模块的错误。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485