Lenovo ThinkPad T420 (简体中文)

From ArchWiki
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
翻译状态:本文是 Lenovo ThinkPad T420翻译。上次翻译日期:2013-04-04。如果英文版本有所更改,则您可以帮助同步翻译。

本文涵盖了在Lenovo T420笔记本上安装和配置Arch Linux的信息。

安装

此型号笔记本支持UEFI,也支持传统BIOS。

使用最新的Archiso没有遇到安装问题。

其余安装过程请参考official install guide

硬件

除了以下硬件外,其余硬件安装完成即可使用:

指纹扫描器

指纹扫描器可以在fprint和PAM配合下完美工作(建议同时安装fingerprint-gui)。

查看 Fingerprint GUI以获得更多细节。

部分多媒体按键

未测试

  • 火线

笔记本设置

ACPI

ACPI 支持完善。没有明显问题。

Tp_smapi

不幸的是,tp_smapi在Thinkpad T420上只被部分支持。很多特性从0.41开始才能工作。例如,硬盘驱动器保护机制HDAPS现在工作得非常好。请阅读链接的wiki入口。

一些特性,如设置电池开始充电阈值仍然不工作。为了控制电池充电阈值,请安装Perl脚本tpacpi-bat,它位于AUR.

通过以下命令加载内核模块acpi_call

modprobe acpi_call

通过命令手工设置阈值

perl /usr/lib/perl5/vendor_perl/tpacpi-bat -v startChargeThreshold 0 40
perl /usr/lib/perl5/vendor_perl/tpacpi-bat -v stopChargeThreshold 0 80

这个示例中40和80表示满电量的百分比。请调整为你需要的值。你也可能想编写一个简单的set-battery.service并且启用它以便在启动系统时自动执行。虽然这些值应该是永久有效的,但实际上它们会在电池被移除时重置。

[Unit]
Description=Set battery capacity

[Service]
Type=oneshot
ExecStart=/usr/bin/perl /usr/lib/perl5/vendor_perl/tpacpi-bat -v stopChargeThreshold 0 80
ExecStart=/usr/bin/perl /usr/lib/perl5/vendor_perl/tpacpi-bat -v startChargeThreshold 0 40

[Install]
WantedBy=multi-user.target

另外,如果你装了Windows作为双引导,你仍然可以通过联想电源管理器来控制电池阈值。它会直接与电池控制器通讯来达到目标。

如果使用systemd,你可能想在systemd-modules-load.service加载失败时屏蔽tp_smapi,因为新型号的ThinkPad都能够通过ACPI控制一切(逻辑混乱,没理解原作者什么意思)。

CPU频率调整

CPU frequency scaling在这个机型的所有可能处理器上都能正常运作。

风扇

thinkpad_acpi需要配置才能让用户空间程序正确控制风扇转速。

/etc/modprobe.d/thinkpad_acpi.conf
options thinkpad_acpi fan_control=1

thinkfanAUR配置文件需要知道如何控制风扇转速。用以下配置替换默认的传感器配置:

/etc/thinkfan.conf
sensor /sys/devices/virtual/thermal/thermal_zone0/temp

你可以通过在rc.conf文件中添加或删除DAEMONS数组中的项来启动它。它最终看起来将类似于:

DAEMONS=(...@thinkfan...)

或者,如果你使用systemd,请使用:

# systemctl enable thinkfan.service

Laptop Mode Tools

使用Laptop Mode Tools时未发现任何问题。

可能的Bug#使用电池时关机

AUR中的tlp是另一个可选的可替换Laptop Mode Tools的工具。

触摸板

触摸板和小红帽能直接工作,但触摸板实在太过灵敏而不便使用,因为它被当作是鼠标对待。为了修复这个问题,安装xf86-input-synaptics包并把以下两个文件加入你的/etc/X11/xorg.conf.d/目录中:

50-thinkpad-trackpoint.conf
 Section "InputClass"
        Identifier      "ThinkPad TrackPoint"
        MatchProduct    "TPPS/2 IBM TrackPoint"
        MatchDevicePath "/dev/input/event*"
        Option          "EmulateWheel"          "true"
        Option          "EmulateWheelButton"    "2"
        Option          "XAxisMapping"          "6 7"
        Option          "YAxisMapping"          "4 5"
 EndSection
50-twofingerscroll.conf
 Section "InputClass"
        Identifier      "two finger scrolling"
        Driver          "synaptics"
        MatchProduct    "SynPS/2 Synaptics TouchPad"
        MatchDevicePath "/dev/input/event*"
        Option          "VertTwoFingerScroll"   "on"
        Option          "HorizTwoFingerScroll"  "on"
        Option          "EmulateTwoFingerMinW"  "8"
        Option          "EmulateTwoFingerMinZ"  "40"
        Option          "TapButton1"            "1"
 EndSection

请按自己需要调整。阅读Touchpad Synaptics以获取更多信息。

要调整小红帽的速度/灵敏度,请在/etc/rc.local中添加如下配置:

/etc/rc.local
TPDEV=/sys/devices/platform/i8042/serio1
echo -n 180 > $TPDEV/speed
echo -n 200 > $TPDEV/sensitivity

可取值范围是1-255。

NVIDIA Optimus

Bumblebee在具有NVIDIA Optimus的型号上工作正常。

可选内核引导参数

使用如下内核引导参数可以减少电池消耗:

i915.i915_enable_rc6=1
i915.i915_enable_fbc=1
i915.lvds_downclock=1 
i915.semaphores=1
注意: 当前的3.6.x内核中, 可能存在一个未知原因的电源效率衰退问题。它在3.7内核版本中还没有被修复。(预计修复版本是3.8——译者注)

故障解决

多媒体键

开箱即可使用的多媒体键:

  • 无线网络开/关
  • 背景灯光设置
  • 键盘灯
  • 静音

开箱不可直接使用的媒体键:

  • 音量键 (在GNOME中开箱即可使用)
  • 麦克风静音(很可能需要自定义内核补丁)

你必须找到变通方案并且自己绑定剩下的键。

重新绑定前进/后退键

前进/后退键(方向键旁边的键)可以容易地重新映射为PageDown/PageUp。

安装 xmodmap及其软件包xorg-server-utils[损坏的链接:package not found]

新建一个~/.Xmodmap 文件,内容为:

keysym XF86Back = Page_Up
keysym XF86Forward = Page_Down

把此行添加到你的~/.xinitrc文件中使它工作:

xmodmap ~/.Xmodmap

你也可以重新映射上一首(Fn+方向左)和下一首(Fn+方向右)为Home/End:

keysym XF86AudioNext = End
keysym XF86AudioPrev = Home
注意: 为使修改生效你必须重新登录。
注意: 至少在KDE下这些键本来是开箱可用的。

打开/关闭触摸板

一些情况下(Fn+F8)键无法正常打开或关闭触摸板。有一个简单的键盘绑定需要添加到你的~/.xbindkeysrc文件中以使快速切换触摸板键能够工作。为使它工作,运行xbindkeysrc。这将会绑定 Fn+F8到'切换触摸板开/关'功能。(在i3wm 和 xfce4中通过测试,这些情况下Fn+F8原本都不工作)

# 切换触摸板开/关
"synclient TouchpadOff=`synclient -l | grep -ce TouchpadOff.*0`"
   m:0x0 + c:199
   XF86TouchpadToggle

音量提升/降低键无法改变音量

又一个~/.xbindkeysrc中的快速键绑定以改变音量(在一些环境中本来不工作)。运行xbindkeys使设置生效。截取自Xbindkeys

#提升音量
"amixer set Master playback 1+"
   m:0x0 + c:123
   XF86AudioRaiseVolume
#降低音量
"amixer set Master playback 1-"
   m:0x0 + c:122
   XF86AudioLowerVolume

为了生静音按钮工作,我把它与Alsa接口绑定:

# Toggle mute
"amixer set Master toggle"
   m:0x0 + c:121
   XF86AudioMute

使用电池时关机

有用户汇报T420在使用电池时关机变为重启。有一些办法能够尝试修复这个问题,以下展示了三种。

一种办法是禁用模块ehci_hcd。查看Kernel modules#Blacklisting以获得更多信息。

或者是禁用Laptop Mode Tools 把!laptop-mode添加到DAEMONS数组,它位于文件/etc/rc.conf

DAEMONS=(...!laptop-mode...)

这篇论坛帖子详细描述了其他能让你电脑正常关机的方法。关闭laptop-mode守护进程会使电池持续时间受损,所以当移动使用中又需要正常关机时帖子里的方法会更方便。

注意: 在笔者的机器上只要在关机时把禁用的蓝牙/无线/WWAN启用,就可以完全避免重启。TLP能够更方便地实现这个功能

重启时挂起

这是一个很多笔记本上都存在的问题,可以通过禁用e1000e内核模块修复。

无背景灯控制

有一个用户报告亮度控制(fn+home, fn+end)在一些桌面环境中不工作。可以通过添加如下内核参数修复此问题:

acpi_backlight=vendor acpi_osi=Linux

参考文献