Cody Blog

Software development

ThinkPad x220

再見了,小黑(2011/5 - 2014/8)。願你在新的主人那邊可以有繼續發揮的空間

把小黑賣掉,主要的原因是斷捨離的概念,讓我決定放下。另一方面也是對於 Lenovo 沒辦法在創造出新價值,有點失望。用腳投票,投入蘋果陣營。

X220 美規機(過保)

  • CPU : i5 2410m
  • RAM : 海盜船 16GB (8GB x 2)
  • 硬碟 : SATA 320GB, Masta SSD Intel 320 80GB
  • 螢幕 : 自換 IPS 面板
  • 電池 : 6 cell x1, 9cell x1
  • 電源供應器: 65W 充電器 x1 + 原廠 90W 充電器 x 1
  • Express Card :
  • ATM 晶片卡 Smart card reader, 可以ATM轉帳,網路報稅
  • AKE USB 3.0 ExpressCard : 多二個 USB 3.0 孔
  • Windows 7 序號
  • USB 外接鍵盤

安裝ThinkFan風扇控制軟體

安裝 Thinkfan

$ sudo apt-get install thinkfan

開啟風扇控制權

系統預設並不容許直接控制風扇速度,所以需要特別設定thinkpad-acpi的config值:

$ sudo echo "options thinkpad_acpi fan_control=1" | sudo tee /etc/modprobe.d/thinkpad_acpi.conf

重新載入thinkpad_acpi driver 套用新的設定值

$ sudo modprobe -rv thinkpad_acpi
$ sudo modprobe -v thinkpad_acpi

修改 thinkfan 設定檔

thinkfan 設定檔在 /etc/thinkfan.conf,主要可以設定的要用那些sensor以及設定溫度與轉速的規則。首先先找到溫度量測的檔案:

$ find /sys/devices -type f -name "temp*_input"

以x220為例,一共找到四個檔:

/sys/devices/virtual/hwmon/hwmon0/temp1_input
/sys/devices/platform/coretemp.0/temp3_input
/sys/devices/platform/coretemp.0/temp1_input
/sys/devices/platform/coretemp.0/temp2_input

把這四行寫入到 /etc/thinkfan.conf

sensor /sys/devices/virtual/hwmon/hwmon0/temp1_input
sensor /sys/devices/platform/coretemp.0/temp3_input
sensor /sys ...

Linux在充放電切換時執行特定指令

Linux筆電在充放電的時侯可以執行特定指令。例如我們想增加電池的使用時間,可以在電池放電的時侯,把一些較消耗資源的背景程式先暫時暫停,等插回AC電源的時侯再重新開始。這邊以暫停Insync為例:

方法一 /etc/pm/power.d

我們可以放script放到/etc/pm/power.d來達成,當進入電池模式的時侯會帶true參數,而離開電池模式的時侯會帶false參數,只要新增一個檔案,例如/etc/pm/power.d/00-powersaving加入以下內容,實際指令就依照自己的需求修改:

case $1 in
    true)
        echo "Enable screen power saving"
        sudo -u cody insync pause_syncing
    ;;
    false)
        echo "Disable screen power saving"
        sudo -u cody insync pause_syncing
    ;;
esac

最後記得再加上執行權限sudo chmod +x /etc/pm/power.d/00-powersaving

方法二 /etc/acpi/power.sh

Linux 有一個指令 on_ac_power,如果回傳0代表是AC,如果是用電池的話,則回傳1,例如:

On AC Power

:::bash
$ on_ac_power 
$ echo $?
0

On Battery

:::bash
$ on_ac_power 
$ echo $?
1

所以透過這個指令,我們就可以修改/etc ...

Update ThinkPad BIOS in Linux with a USB disk

In this post, I recorded my ThinkPad x220 BIOS update steps. In Windows, we can use BIOS Update Utility provided by Lenovo, but it's only available in Windows platformas. For Ubuntu user like me, we can still update BIOS with a USB disk.

Download BIOS Update Bootable CD

The latest version is 1.39(2013/11), Go to lenovo support site:BIOS Update Bootable CD for Windows 8 (32-bit, 64-bit), 7 (32-bit, 64-bit), Vista (32-bit, 64-bit), XP - ThinkPad X220, X220i, X220 Tablet, X220i Tablet, download 8duj25us.iso(31.6 MB)

Download geteltorito.pl to generate boot image

$ wget 'http ...

Install IBM Active Protection System Linux Driver (HDAPS)

Installation

:::bash
$ sudo apt-get update
$ sudo apt-get install tp-smapi-dkms hdapsd
$ echo 'tp_smapi' | sudo tee -a /etc/modules
$ echo 'hdapsd' | sudo tee -a /etc/modules
$ sudo modprobe tp_smapi
$ sudo /etc/init.d/hdapsd restart

Verify if it works

:::bash
$ sudo hdapsd

it should display "parking" on console if you move your laptop

Modify config: /etc/default/hdapsd

  • sensitivity: default is 15. higher value means less sensitive.
  • disk: the disk that hdapsd should monitor

Reference :

在 Ubuntu 修改 ThinkPad 的充電設定

在 Windows 中我們們可以很容易從 Power Manager Battery Maintenance setting來改變充放電的設定,我習慣低於65%開始充電,然後充到90%就停止。在Ubuntu中,稍微麻煩一些,因為目前沒有GUI的介面來達到這件事。在Ubuntu Brainstorm有提出這個需求,希望未來的版本可以直接從OS層級來解決這個問題。但還好目前有一個專門的API叫Tp smapi來達到我的需求。在Ubuntu 12.04下的安裝方法如下:

$ sudo apt-get install tp-smapi-dkms
$ sudo modprobe tp_smapi

成功之後,在 /sys/devices/platform/smapi/ _就會多了很多跟電源設定相關的檔案。而我最在意的莫過於 _stop_charge_threshstart_charge_thresh 跟_ cycle count_。例如說我想知道電池的cycle count 是多少:

$ cat /sys/devices/platform/smapi/BAT0/cycle_count 
130

這台在幾乎天天使用的情況下,從出廠到現在15個月,cycle count 達到 130,不曉得算不算高。希望還能再撐個15個月 :) 查了一下官方的 wiki,目前Tp smapi 對 x220只支援 stop_charge_thresh 而不支援 start_charge_thresh。冏。算了,之後應該會支援吧。目前就先防過充就好。設定的方式如下,例如我想充到95%就停止:

sudo sh -c 'echo 95 > /sys/devices/platform/smapi/BAT0/stop_charge_thresh'

稍微實驗了一下,插上電源之後,就真的只充到我想要的 95%

另一個設定則是插上電源之後幾分才開始充電,以避免頻繁的充電

sudo sh ...

Thinkpad X220 擴充記錄

記錄一下目前跟小黑相關的敗家購買清單: X220 i5-2410M 美規機 (42872VU)  1. 為了用桌機也可以跟ThinkPad有一樣的鍵盤體驗:ThinkPad USB Keyboard with TrackPoint img

  1. 為了Total 8GB的RAM:原廠記憶體 PC-10600 4GB 為了有SSD+HDD雙硬碟:Intel 310 Series 80GB mSATA SSD img

為了上班可以不用帶變壓器:90W 20V變壓器

為了IPS面板: IPS 面版 (LP125WH2 SLB1)

為了同時外接兩台VGA螢幕:VGA to Display 轉接線

為了用新的小紅盤Track Point 小紅盤

為了可以隨時馬上敗家刺激經濟:[讀卡機 SCM SCR3340 Express Card 54]

直衝16GB  :單條 8GB 的RAM * 2 Link

ThinkPad X220 TN 面板換 IPS 面板過程分享

這個面板是在淘寶買的,賣家是評價最好的那家,現在的價格是 368 RMB含郵寄到台灣,算一算兩千台票有找。寄送過程大概耗時兩天。星期日中午下定,星期二早上就收到了。

第一次買淘寶,是用順豐速運寄的。

img
裡面就是層層的保麗龍包裹著,看起來保護還不錯。

img

img

IPS 跟 收據合照

接下來就是拆解的過程了,首先當然是要先把電源、電池缷下,螢幕的左右兩角各有一個正方形的塑膠片,要先拿下來

img

我是用縫衣針從隙縫塞入,就可以很輕易的把塑膠片挑起,裡面就是兩個螺絲用來固定邊框的。把兩個螺絲都拆下來之後,接下來就可以開始拆螢幕的邊框了

img

我是用小號的一字起子,先從螺絲拆解處的小細縫,慢慢把細縫撐開,沿著邊緣一點一點弄。感覺這邊還蠻脆弱的,要小心弄,以免邊框斷掉。

img

img

弄過一圈之後就可以順利把邊框整個拆起來,舊的TN面板上面有四個螺絲,直接卸下

img

img

此時面板就只剩下排線連接的部份了,排線上面有一個塑膠貼片,先撕起來,然後小心把排線分離。

img

要注意,著力點要放在金屬排扣的部份,不要硬扯排線,應很容易可以把面板完全拆離主機。

然後就可以把新的 IPS 面板裝上,插排線,鎖四個螺絲,壓上黑色塑膠邊框,再鎖上螢幕左右兩角的螺絲,貼回正方形的兩個膠片, 完工!!過程順利的話,新手應該半小時內可以完成,換上IPS的感覺就是開心,這個面板的品質還算不錯,沒有白斑,亮暗點,只是要特別注意的是:

  1. 螢幕全黑時下方有小小漏光,不影響使用,跟我的iPad情況一樣。

  2. 色調偏黃,網路上有校色文檔可以使用,但是我是覺得還好,看一下就習慣了

  3. 此款的IPS型號是 LP125WH2 SLB1,想要買來換可以用這個Keyword search。

 

參考資料: