聯想 ThinkPad T420

出自 Arch Linux 中文维基


本文涵蓋了在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

參考文獻[編輯 | 編輯原始碼]