Mac mini 2006(初代Intel)安装黑群晖,交叉编译内核驱动 

2022-07-25 15:07:22 9点赞 38收藏 6评论

背景

去年,我收藏的iMac Intel 初代因为长时间没开机,加上受潮,屏幕出现了竖线。我的初代Intel Mac Pro 也因为长时间不用,突然开机崩坏了2个电源了,但是你要开它吧,性能孱弱,MacOS X 10.11也很多软件不兼容了,况且很费电,干脆不开了,留着今后改机箱吧。但是Mac mini不占地方,功率也低,为了防止它崩掉,打算把它利用起来。

配置

CPU:T7200,64位,由T2300升级

内存:2G DDR2

硬盘:500G机械

这套配置在06,07年的时候还是相当不错的,直到MacOS X 10.6 时代都是能够流畅使用的。现在只能算是古董,收藏价值大于实用价值。

版本选择和引导

介于这台机器的性能还是选择DSM5.2吧,下载DS3615的5.2的引导,打开看看里面是什么:

5.2引导文件5.2引导文件

很简单了,BIOS的syslinux。但是,这台Mac mini采用了32位的uefi,很鸡肋。而且Mac不是随便识别MBR引导的。于是我们祭出Mac平台引导管理神器(曾经):rEFIT。

首先,给U盘分个区,MBR格式,先建立2个分区。1个FAT32,用来放5.2引导的文件。第二个分区按照rEFIT的要求,格式化为HFS+也就是MacOS扩展,把rEFIT的efi文件夹复制进去,然后在MacOS中执行enable.sh。不出意外的话,重启Mac mini,按alt,就能看见rEFIT了。不过不急,先去Windows用bootice安装syslinux的分区引导。安装完成后,将5.2的引导文件放入FAT32分区。这下就能正常引导DSM5.2的安装了,这里安装过程就不赘述了。安装好后没什么大问题:只是风扇狂转,这对老Mac来说显然是不健康的,必须解决。

编译AppleSMC驱动,解决风扇问题

给Mac装过Linux应该知道,控制Mac风扇的软件:mbpfan。在GitHub上找到它的主页看看说明:需要applesmc和coretemp这两个模块。可以用lsmod | grep -e applesmc -e coretemp检查是否被加载。applesmc肯定是没有的,我们需要自己编译。applesmc有个依赖:input-polldev.ko也需要编译。

在群晖中执行命令:uname -a,得到内核版本:3.10.35 并将/proc/config.gz复制出来。这个是内核的配置文件,后面会用到。

applesmc.ko这个模块在许多大的Linux发行版都是默认启用了的,但是3.10.35的版本比较老,我找了许多Linux发行版都没有找到现成模块,只能自己编译了。先去source forge的群晖主页(dsgpl)下载DSM5.2的源码(5565是5.2的,这里吐槽一下老版的源码是大包1.6g,实际上我们只需要内核源码,如果你要编译6.2.3的内核,只下载Linux开头的就行了)DS3615xs代号bromolow,就下载bromolow-source.txz。再下一个编译工具吧,在DSM 5.2 Tool Chains目录里面没有bromolow,没关系Intel x86 Linux 3.10.35 (Braswell)是可以的,都是x86。

接下来就是编译了,3.10.35的内核比较老了,稳妥起见我们在Ubuntu14.04中编译。将源码和编译工具导入到Ubuntu中,解压。

安装编译工具:sudo apt-get install libc6-i386 build-essential libncurses5-dev

cd 到source/linux-3.10.x,解压之前从群晖中复制的config.gz到这里,命名为.config

make ARCH=x86_64 CROSS_COMPILE=/path_to_your_toolchain/x86_64-pc-linux-gnu/bin/x86_64-pc-linux-gnu- menuconfig

进入配置菜单在Device Drivers > Hardware Monitoring support 中找到 Apple SMC按M选择。

Mac mini 2006(初代Intel)安装黑群晖,交叉编译内核驱动 

在Device Drivers > Input device suppert 找到Polled input device skeleton 按M 选择。

Mac mini 2006(初代Intel)安装黑群晖,交叉编译内核驱动 

Save,Exit。

make ARCH=x86_64 CROSS_COMPILE=/usr/local/x86_64-pc-linux-gnu/bin/x86_64-pc-linux-gnu- modules 开始编译。

编译结束后复制drivers/input/input-polldev.ko和/drivers/hwmon/applesmc.ko 到群晖的/lib/modules/下,安装内核:

insmod /lib/modules/input-polldev.ko

insmod /lib/modules/applesmc.ko

接下来编译mbpfan,放到群晖,运行试一下:mbpfan -t -v

出错了!mbpfan could not detect any temp sensor. Please contact the developer.

这一句Using new sensor path for kernel >= 3.15.0 or some CentOS versions with kernel 3.10.0让我感到很迷。内核明明3.10.35啊,被它判断错了。3.15.0以上的内核温度传感器位置变了,这样是找不到传感器的。于是打开mbpfan的源码看看:

改后的改后的

它这一段读取内核版本号的判断在群晖上是会出错的,不过没关系,暴力一点,不管新版老版都把传感器的路径设置老版的路径就行了。也可以直接删除这段if,直接将正确的路径赋给“path_begin”这个变量。改完后编译,重新放入群晖,再来

mbpfan测试通过mbpfan测试通过

风扇瞬间安静了。(这里我没有导入配置文件,可以按照mbpfan主页说明,将mbpfan.conf按自己的温控需求修改 复制到 /etc/下)

再测试一下:

for i in `seq 1 $(cat /proc/cpuinfo |grep "physical id" |wc -l)`; do dd if=/dev/zero of=/dev/null & done

以上命令会让群晖的CPU达到100%,观察温度:

cat /sys/devices/platform/coretemp.0/temp2_input

不错,温度上来了,观察风扇速度(也可以耳朵听,哈哈):

cat /sys/devices/platform/applesmc.768/fan1_output

转速也上去了,关闭测试进程:

pkill -9 dd

再看看温度和风扇速度,都下去了。完美!

最后:将一下命令加入开机脚本

insmod /lib/modules/input-polldev.ko

insmod /lib/modules/applesmc.ko

/your_path/mbpfan

总结

对于Mac,网上大多教程都是用虚拟机安装群晖,但是既然是老Mac了,性能本来就out了,再用虚拟机损耗太大了。经检验,老Mac mini直接安装黑群晖是可行的。我这里以5.2版本为例,抛砖引玉。如果你也有老Mac且是UEFI64位的,可以尝试安装6.2以上。引导可以使用rEFIT的新衍生版: rEFInd。重点就是要交叉编译applesmc。

作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

展开 收起

Synology 群晖 DS224+ 双盘位NAS(赛扬J4125、2GB)

Synology 群晖 DS224+ 双盘位NAS(赛扬J4125、2GB)

2849元起

Synology 群晖 DS920+ 4盘位 NAS存储(J4125、4GB)

Synology 群晖 DS920+ 4盘位 NAS存储(J4125、4GB)

2190.84元起

Synology 群晖 DS220+ 2盘位NAS (赛扬J4025、2GB)

Synology 群晖 DS220+ 2盘位NAS (赛扬J4025、2GB)

2179元起

Synology 群晖 DS423+ 4盘位 NAS网络存储 (Intel四核 、无内置硬盘)

Synology 群晖 DS423+ 4盘位 NAS网络存储 (Intel四核 、无内置硬盘)

4099元起

Synology 群晖 DS1821+ 8盘位NAS (V1500B、4GB)

Synology 群晖 DS1821+ 8盘位NAS (V1500B、4GB)

8899元起

Synology 群晖 DS223j 双盘位 NAS网络存储服务器 私有云 智能相册 文件自动同步

Synology 群晖 DS223j 双盘位 NAS网络存储服务器 私有云 智能相册 文件自动同步

1549元起

Synology 群晖 DS923+ NAS网络存储服务器 标准无硬盘

Synology 群晖 DS923+ NAS网络存储服务器 标准无硬盘

4899元起

Synology 群晖 DS1821+ 8盘位 NAS(V1500B、4GB)

Synology 群晖 DS1821+ 8盘位 NAS(V1500B、4GB)

7196元起

群晖(Synology)DS124单盘位NAS网络存储服务器私有云智能相册文件自动同步

群晖(Synology)DS124单盘位NAS网络存储服务器私有云智能相册文件自动同步

1399元起

Synology 群晖 DS720+ 双盘位NAS(J4125、2GB)

Synology 群晖 DS720+ 双盘位NAS(J4125、2GB)

4099元起

synology群晖nas云存储ds920+中小型企业办公网络存储群辉家庭个人私有云盘四盘位NAS备份硬盘服务器ds918+(DS920+希捷企业级16T*4)

synology群晖nas云存储ds920+中小型企业办公网络存储群辉家庭个人私有云盘四盘位NAS备份硬盘服务器ds918+(DS920+希捷企业级16T*4)

13746元起

Synology 群晖 DS416 企业级 NAS网络存储

Synology 群晖 DS416 企业级 NAS网络存储

暂无报价

Synology 群晖 DS223 2盘位NAS(Realtek RTD1619B、2GB)

Synology 群晖 DS223 2盘位NAS(Realtek RTD1619B、2GB)

2299元起

Synology 群晖 DS423 四核心 4盘位 NAS网络存储 私有云 照片自动备份

Synology 群晖 DS423 四核心 4盘位 NAS网络存储 私有云 照片自动备份

3199元起

Synology 群晖 DS1621+ 六盘位NAS (V1500B、4GB)

Synology 群晖 DS1621+ 六盘位NAS (V1500B、4GB)

6899元起

Synology 群晖 DS420+ 4盘位NAS (赛扬J4025、2GB)

Synology 群晖 DS420+ 4盘位NAS (赛扬J4025、2GB)

3090元起
6评论

  • 精彩
  • 最新
提示信息

取消
确认
评论举报

相关好价推荐
查看更多好价

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
38
扫一下,分享更方便,购买更轻松