Read Sean

          Read me, read Sean.
          posts - 508, comments - 655, trackbacks - 9, articles - 4

          Ubuntu Karmic安裝手記 - T400s

          Posted on 2009-12-26 11:14 laogao 閱讀(1416) 評論(2)  編輯  收藏 所屬分類: Computer UsageOperating SystemsGNU/Linux

          周二的時候拿到了新的T400s,安裝Linux(64位Karmic)的過程比預想的要曲折,趁周末有時間,整理記錄于此,希望對遇到同樣問題的人有所幫助。

          T400s送到之前,我先簡單的在網上查了查基本的配置信息,同時也看到有很多網友十分順利的安裝了Linux,不論是Ubuntu Karmic還是Arch Linux,基本都是除了指紋都是out-of-box就可直接工作的,這也符合我的預期。于是,拿著amd64版的Karmic盤,開始在T400s上安裝。

          基本系統的安裝很順利,跟著提示一路走完,Karmic就能夠boot并正常login了,so far so good。不過登錄進去之后,無線網卡不工作,只有有線連接,這是怎么回事?用lspci一看:
          • 00:00.0 Host bridge: Intel Corporation Mobile 4 Series Chipset Memory Controller Hub (rev 07)
          • 00:02.0 VGA compatible controller: Intel Corporation Mobile 4 Series Chipset Integrated Graphics Controller (rev 07)
          • 00:02.1 Display controller: Intel Corporation Mobile 4 Series Chipset Integrated Graphics Controller (rev 07)
          • 00:03.0 Communication controller: Intel Corporation Mobile 4 Series Chipset MEI Controller (rev 07)
          • 00:03.3 Serial controller: Intel Corporation Mobile 4 Series Chipset AMT SOL Redirection (rev 07)
          • 00:19.0 Ethernet controller: Intel Corporation 82567LM Gigabit Network Connection (rev 03)
          • 00:1a.0 USB Controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #4 (rev 03)
          • 00:1a.1 USB Controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #5 (rev 03)
          • 00:1a.2 USB Controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #6 (rev 03)
          • 00:1a.7 USB Controller: Intel Corporation 82801I (ICH9 Family) USB2 EHCI Controller #2 (rev 03)
          • 00:1b.0 Audio device: Intel Corporation 82801I (ICH9 Family) HD Audio Controller (rev 03)
          • 00:1c.0 PCI bridge: Intel Corporation 82801I (ICH9 Family) PCI Express Port 1 (rev 03)
          • 00:1c.1 PCI bridge: Intel Corporation 82801I (ICH9 Family) PCI Express Port 2 (rev 03)
          • 00:1c.2 PCI bridge: Intel Corporation 82801I (ICH9 Family) PCI Express Port 3 (rev 03)
          • 00:1c.3 PCI bridge: Intel Corporation 82801I (ICH9 Family) PCI Express Port 4 (rev 03)
          • 00:1d.0 USB Controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #1 (rev 03)
          • 00:1d.1 USB Controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #2 (rev 03)
          • 00:1d.2 USB Controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #3 (rev 03)
          • 00:1d.7 USB Controller: Intel Corporation 82801I (ICH9 Family) USB2 EHCI Controller #1 (rev 03)
          • 00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev 93)
          • 00:1f.0 ISA bridge: Intel Corporation ICH9M-E LPC Interface Controller (rev 03)
          • 00:1f.2 SATA controller: Intel Corporation ICH9M/M-E SATA AHCI Controller (rev 03)
          • 00:1f.3 SMBus: Intel Corporation 82801I (ICH9 Family) SMBus Controller (rev 03)
          • 03:00.0 Network controller: Realtek Semiconductor Co., Ltd. Device 8172 (rev 10)
          • 04:00.0 Memory controller: Intel Corporation Turbo Memory Controller (rev 11)
          • 05:00.0 SD Host controller: Ricoh Co Ltd Device e822 (rev 01)
          • 05:00.1 System peripheral: Ricoh Co Ltd Device e230 (rev 01)
          注意03:00.0這一行,竟然是Realtek的8172,對應Windows下的型號是8192,Lenovo什么時候把T400s原本的無線芯片配置(Intel WiMAX/WiFi Link 5xxx)換成了Realtek 8172的?難怪沒有無線,這塊網卡的驅動還沒有被Linux內核直接支持,需要手工安裝。網上搜到很多方案,比如ndiswrapper+win版驅動等等,但這個Ubuntu LaunchPad上的方案[1]看上去最靠譜,還等什么,開工吧。
          • 首先下載驅動: http://launchpadlibrarian.net/34090404/rtl8192se_linux_2.6.0010.1012.2009_64bit.tar.gz
          • 解壓后進入rtl8192se_linux_2.6.0010.1020.2009_64bit子目錄,make
          • 成功后在HAL/rtl8192下能夠找到r8192se_pci.ko文件,cp至/lib/modules/`uname -r`/kernel/drivers/net/wireless/
          • 然后將固件相關文件,即firmware/RTL8192SE目錄,cp至/lib/firmware/`uname -r`/
          • 執行命令depmod -a重新掃描module依賴關系
          • 執行命令modprobe r8192se_pci加載該module,這一步完成以后NetworkManager就可以搜到無線網絡并進行連接了
          好了,到此最大的攔路虎已經消滅,開始裝別的軟件吧。就在這時,新的問題出現了,dmesg可以看到重復出現的如下報錯/警告信息:
          • [ 483.431670] DMA: Out of SW-IOMMU space for 9100 bytes at device 0000:0e:00.0
          • [ 483.435783] DMA: Out of SW-IOMMU space for 9100 bytes at device 0000:0e:00.0
          • [ 483.439867] DMA: Out of SW-IOMMU space for 9100 bytes at device 0000:0e:00.0
          • ...
          通常經過數分鐘的積累,系統就死機了,只剩下CapsLock鍵上的小燈不停閃爍,典型的kernel panic? 根據網友提供的線索[2],由于Intel的64位實現雖是參考AMD64但細節有差異,所以在實際內存大于等于4G的環境下,某些未考慮到該特性的代碼會leak memory,怎么辦?增加內核啟動參數mem=4G iommu=off,一方面限定內存范圍,另一方面關閉IOMMU。

          經過測試,這樣的配置下系統和無線網絡都能夠持續穩定運行。系統安裝到此,一個大的里程碑達成,唯一的缺憾是每次kernel升級,可能還需要手工做一些工作,且暫時不能既開無線又開4G以上內存,不過這樣總好過沒有無線,或者繳槍投降,不是嗎?本想多罵幾句Lenovo,好好的Intel芯片不用,要換Realtek,但轉念一想,這已是既成事實,而且看到很多其他型號的ThinkPad,如R500、SL400等,也有不少用上了Realtek的這款無線芯片,讓我們一起期待穩定可靠的驅動最終被Linux內核支持的那一天吧。

          參考鏈接:
          [1] https://bugs.launchpad.net/ubuntu/+source/linux/+bug/401126
          [2] http://lwn.net/Articles/91870/

          主站蜘蛛池模板: 丹江口市| 阜平县| 诏安县| 望都县| 利辛县| 石城县| 北流市| 新营市| 固安县| 吴江市| 景谷| 延寿县| 大宁县| 北安市| 台安县| 临沭县| 绩溪县| 高阳县| 凌源市| 本溪市| 屏边| 龙川县| 临猗县| 类乌齐县| 论坛| 新泰市| 界首市| 乐山市| 琼海市| 通榆县| 武鸣县| 丰宁| 余干县| 安龙县| 山西省| 延吉市| 祁阳县| 油尖旺区| 长乐市| 哈尔滨市| 湖南省|