Fedora on MBP 问题一览

我在我的Mac Book Pro上装了一个Fedora作为办公用。

风扇控制

apple没有使用标准的SMBus,它自己定制了一个smc模块。由于不知道它具体是怎么工作的,所以Linux对applesmc的支持极差。

风扇控制模块是坏的,所以CPU经常过热。表现在经常收到mce事件

CPU7: Core temperature above threshold, cpu clock throttled (total events = 3)

mce: [Hardware Error]: Machine check events logged

用sensors命令可以看到CPU温度经常在90度以上。实际上应该在87度以下。

bugzilla上相关链接:

https://bugzilla.redhat.com/show_bug.cgi?id=924570

https://bugzilla.kernel.org/show_bug.cgi?id=14514

解决办法:安装这个针对mbp的fan control 软件 https://github.com/dgraziotin/Fan-Control-Daemon

并且手动把最低风速调到3000

echo 3000 > /sys/devices/platform/applesmc.768/fan1_min

echo 3000 > /sys/devices/platform/applesmc.768/fan2_min

smc经常会报错,发送命令失败:

kernel: applesmc: send_byte(0xe0, 0x0300) fail: 0x40

kernel: applesmc: F1Tg: write data fail

分辨率

首先是分辨率的问题。我的笔记本的分辨率是2880x1800,大多数程序不是为这么高的分辨率设计的。于是Fedora19下显示效果就特别差,字小的看不清。windows下可以调整DPI,其中win 8.1对这个的支持就比较好,win 7就很差。

升级到Fedora 20后,这个问题有很大改善。升级到Fedora 21后有更大的改善。

但是chrome不是DPI aware的,暂时的做法就是把chrome的zoom level调大。不要试图调大chrome的默认字体,否则连google都无法正常使用了。

Intel显卡驱动启动时崩溃

这个笔记本是双显卡,一个内置的Intel显卡,一个GeForce GT 650M。内置的Intel显卡所使用的是内核的i915模块。这个模块在启动的时候经常崩溃,导致还没到登录界面,就卡死了。而且这个问题似乎只出现在使用EFI引导的时候。

我的解决办法是:禁用它!

浏览器不支持GPU加速

很奇怪,如果我使用外接U盘引导,按照传统BIOS的方式启动GRUB,那么chrome可以部分的使用GPU加速,但是如果是采用EFI启动,则chrome完全不能使用gpu。

提示说:"GPU process was unable to boot: Features are disabled upon full but not preliminary GPU info."

再或者提示说:"Older Drivers are unreliable for Optimus on Linux"

不过,反正国内这环境,也没机会在浏览器内看1080p的视频。

内核进程占用100%的cpu

然后是背光模块似乎与nvidia的官方驱动冲突。用top看,kworker的某个进程始终CPU 100%。

我用perf研究了一下,发现大部分cpu都耗费在了gmux模块上。

Samples: 44K of event 'cycles', Event count (approx.): 36241300831

  • 48.37% kworker/0:3 [kernel.kallsyms] [k] native_read_tsc

    • native_read_tsc

      • 64.95% delay_tsc

        __const_udelay

        • gmux_index_wait_ready.isra.7
      • 35.03% __const_udelay

  • 37.76% kworker/0:3 [kernel.kallsyms] [k] delay_tsc

  • 7.83% kworker/0:3 [apple_gmux] [k] gmux_index_wait_ready.isra.7

我查了一下,这个符号来自apple_gmux模块,把这个模块禁用后就好了。我这个模块的版本号是3.2.19

不过很奇怪的是我把kernel升级到3.16.3后,这个问题就消失了。apple_gmux似乎并未做什么更新。

键盘布局

键盘布局可以通过修改hid_apple的参数来实现。把这下面这两个加入到/etc/default/grub中

hid_apple.fnmode=2 hid_apple.swap_opt_cmd=1

virtualbox不支持usb

换vmware吧。附带说,vmware在mac下也不支持usb,可能是因为我用的vmware fusion的版本太老。

其它硬件无关的问题

刻录u盘启动盘要用fedora官方的live usb工具,Ubootin不行。

vmware workstation直接装是装不上的,要给它的kernel modules打patch。

yum里的thunderbird太老,mozilla官网上有新的,但是是32位的。

此博客中的热门博文

在windows下使用llvm+clang

少写代码,多读别人写的代码

tensorflow distributed runtime初窥