# Lenovo ThinkPad T420 (简体中文)

翻译状态： 本文是英文页面 CPU_Frequency_Scaling 的翻译，最后翻译时间：2013-04-04，点击这里可以查看翻译后英文页面的改动。

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

## 安装

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

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

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

## 硬件

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

### 指纹扫描器

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

查看 Fprint#Setup_fingerprint-gui[broken link: invalid section]以获得更多细节。

### 部分多媒体按键

- 查看 下文[broken link: invalid section]

### 未测试

- 火线

## 笔记本设置

### ACPI

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

### Tp_smapi

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

一些特性，如设置电池开始充电阈值仍然不工作。为了控制电池充电阈值，请安装Perl脚本tpacpi-batAUR，它位于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

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

    /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的型号上工作正常。

### 可选内核引导参数

使用如下内核引导参数可以[1]:

    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

新建一个`~/.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

## 参考文献

- Lenovo ThinkPad T420s
- ThinkPad T420i上的Arch Linux

Category:

- Lenovo (简体中文)

Hidden category:

- Pages with broken section links