x86-64 Arch Linux on ThinkPad x220i - 行者无疆 始于足下 - 行走,思考,在路上

x86-64 Arch Linux on ThinkPad x220i

xiaohanyu posted @ Thu, 18 Aug 2011 23:35:21 +0800 in Linux with tags archlinux x220i , 4523 readers

去年换x201i的时候,曾经折腾出一篇《x86-64 Arch Linux on ThinkPad x201i》,后来x201i陪我度过了毕业半年最为艰难的岁月,表现可圈可点,配合我自己调制的ArchLinux,系统非产高效,让我在4个月的时间内搞定了8门课程、毕业设计,还看了不下二十部电影和纪录片。

说起操作系统重装,我也算究竟沙场了。基本上每半年会重装一次操作系统,从XP,Vista,RedHat 9.0,Fedora,到Ubuntu 8.x,转向ArchLinux、Gentoo,甚至在华数淘宝实习的时候还装了4台PC和2台Dell的PC Server。最长的一次要属第一次接触Gentoo的那次,装操作系统装了有2个星期,折腾了两个月,终于发现这个东西不符合低碳节能的基本要求,再一次不小心的fsck误操作中彻底结束了Gentoo之旅,回到了Ubuntu和Arch的怀抱。

来到百度第一天领到的新笔记本,x220i,好家伙,上网一搜,居然是今年最新款的X系列ThinkPad。CPU是新一代的SNB架构。默认系统的十年前的XP。本来我想另辟空间再装个Linux来个双系统,后来XP实在用着不爽,遂全盘格式化,全部分给ArchLinux。

我一直有一个疑问:为什么Windows的命令行,无论是CMD还是PowerShell,不能实现最简单的窗口最大化功能?

OS版本用的是Arch Linux 2010.05,在mirrors.sohu.com上下载支持 32 位及 64 位架构的 Dual 映像,用UltraISO刻录硬盘镜像到U盘上。本以为ArchLinux的安装会像以前一样轻车熟路,不曾想这次却遇到了以前从来没有遇到的一个大麻烦:网卡无法识别!!!

不能上网就意味着不能装X,不能装X就意味着没有Firefox,没有Firefox就意味我不能上网来写这篇博客。无奈之下,去同事的机器上下载了最新的Linux Mint 11,痛快装好,网卡这次能用了。

Google搜索,发现Arch Linux 2010.05是2.6.32的内核,而Linux Mint 11是2.6.38的内核,因此我怀疑是不是ArchLinux内核比较老而x220i架构比较新的原因。搜索的过程中发现了一个叫做ArchBoot的项目,说白了就是半官方的ArchLinux滚动更新ISO。热切的下载了最新的ArchBoot刻录安装,但是不幸的是这个ArchBoot在我的笔记本上根本无法启动。

怎么办?要不重新叫IT部门的人重装下XP?还是先用一段时间的Mint,等下一个ArchLinux的官方安装版?

但我终究是忍不住的。电脑之于黑客,相当于宝剑之于剑客。没有顺手的系统,自然没有高效的工作和良好的心情。

于是不得不换一种思路:尝试手动去下载Intel网卡的驱动,然后编译安装,搞定网卡驱动后再联网升级到新的内核。事实证明这个策略是奏效的,所需要的网卡驱动程序可以在Intel的网站上下载。安装过程不再赘述,按照安装包里的说明即可。装好驱动后升级内核,装X,装KDE,简单配置下字体,一切顺理成章,不亦乐乎。

最后的两个问题依然是驱动相关。一个是显卡的问题,这个可以通过更新内核来搞定。一个是thinkpad风扇的问题,x201i上的方案迁移到x220i上并不奏效,tpfand基本不可用。好在有thinkfan,通过yaourt安装下。设置主要参考这里,但是原文中所设置的:

sensor /proc/acpi/ibm/thermal (0, 3, 3, 2, 10, 0, 10, 0, 2, 2)

并不存在。在x220i上的/etc/thinkfan.conf设置为:

# I use this on my T61p:                                                                                                                             
#sensor /proc/acpi/ibm/thermal (0, 10, 15, 2, 10, 5, 0, 3, 0, 3)                                                                                     
                                                                                                                                                     
# (0,   0,   55)                                                                                                                                  
# (1,   48,     60)                                                                                                                                  
# (2,   50,     61)                                                                                                                                  
# (3,   52,     63)                                                                                                                                  
# (4,   56,     65)                                                                                                                                  
# (5,   59,     66)                                                                                                                                  
# (7,   63,     32767)                                                                                                                               
                                                                                                                                                     
sensor /sys/class/hwmon/hwmon0/temp1_input (0, 3, 3, 2, 10, 0, 10, 0, 2, 2)                                                                          
(0, 0, 45)                                                                                                                                           
(1, 45, 48)                                                                                                                                          
(2, 48, 55)                                                                                                                                          
(3, 55, 58)                                                                                                                                          
(4, 58, 60)                                                                                                                                          
(5, 60, 63)                                                                                                                                          
(6, 63, 65)                                                                                                                                          
(7, 65, 32767)            

经过此番修整,x220i终于被我调教的舒舒服服,服服贴贴cool。至于旧爱x201i,简单修整了一下给妞用了。

最后许个愿望吧:希望在未来可见的三年内不要再折腾操作系统了。同时遥祝远在Singapore的阿黎早日搞定MacBook上的Ubuntu,整好MitSIM,顺利毕业。嘿。

 

Avatar_small
金属狂潮 said:
Tue, 13 Sep 2011 17:02:32 +0800

估计现在在x220i上玩linux的人还比较少吧,看了您这篇文章,受益非浅啊,请问博主现在的x220i上的linux跑得还顺利吧?我也想入手x220i,就怕linux不听话了

vissible said:
Fri, 16 Sep 2011 12:36:05 +0800

怎么我在x220上这么设置,风扇还是3480转/秒呢?

Avatar_small
Lox said:
Wed, 21 Sep 2011 12:38:55 +0800

嗯,除了无线网络有时不太稳定,其余都还好。
另外,archlinux最近除了2011版,linux 3.0,网络设置应该简单了很多。

Avatar_small
Lox said:
Wed, 21 Sep 2011 12:39:43 +0800

可以发邮件交流下:xiaohanyu1988@gmail.com

alswl said:
Fri, 28 Oct 2011 10:13:33 +0800

唔,我的X201i最近无线驱动不稳定,我也去官方下载新的驱动装一下。

yetone said:
Sun, 04 Mar 2012 12:20:24 +0800

最近的内核对网卡支持很好的

Avatar_small
星空™ said:
Sat, 10 Nov 2012 22:29:17 +0800

余今购TP X230,遇君之blog,arch之顾虑顿消


Login *


loading captcha image...
(type the code from the image)
or Ctrl+Enter
Host by is-Programmer.com | Power by Chito 1.3.3 beta | © 2007 LinuxGem | Design by Matthew "Agent Spork" McGee