勤&快

          問題其實就是你期望的東西和你體驗的東西之間的差別
          隨筆 - 55, 文章 - 0, 評論 - 68, 引用 - 0
          數據加載中……

          如何在ubuntu下使用intel 3945abg無線網卡

          這個方案在升級到內核"2.6.24-20"之后不可用,不知道為何。搞定的朋友可以將方案貼出來分享,謝謝。
          查閱了很多方法,包括對內核打補丁,都不是很理想。其實iwl3945對于其他intel 3945的芯片的支持還是挺好的,比如dell d630中的無線網卡(芯片是8086:4222),但是,我的x60中的無限網卡,芯片是8086:4227的。最終選擇使用ndiswrapper+無線網卡驅動for windows。參見這里
          如何查看無限網卡芯片:
          lspci

          找到表示無限網卡的一行,看看最開頭,就是你的網卡信息。
          比如:
          03:00.0 Network controller: Intel Corporation PRO/Wireless 3945ABG [Golan] Network Connection (rev 02)
          那么,03:00.0就是所求。

          然后運行
          lspci -n

          找到和剛此型號對應的行,如:
          03:00.0 0280: 8086:4227 (rev 02)
          那么,無線網卡的芯片就是8086:4227的。

          -----------------------------------------------------我是分割線----------------------------------------------------------

          警告:本教程存在一定的風險,請謹慎使用,使用前請將相關文件備份。因為使用本教程帶來的任何損失,本人概不負責。
          本文中用到的所有文件,都可以在這里一次性下載。
          自從升級到ubuntu 8.04之后,自己的ibm x60上的無線網卡就變的很不穩定。

          癥狀

          具體癥狀如下:
          1. 可以識別無線網絡,可以鏈接到無線網絡。
          2. 剛連接上之后一段時間,速度還不錯。
          3. 過一段時間,網絡就變的很慢很慢,有時候是沒有速度,有時候會斷線。
          4. 期間偶爾會變好。
          總體來說,就是無線網卡不穩定。
          于是很無奈的,我的筆記本只能天天插著網線上網了。

          解決方案

          最近終于不能忍了,在網上搜索了一下解決方案。是因為ubuntu 8.04使用intel新開發的驅動iwlwifi(驅動名稱是iwl3945)作為intel無線網卡的驅動,而這個iwlwifi還很不穩定。所以,基本思想是使用原來的很穩定的ipw3945驅動替換現在的iwl3945驅動。ipw3945現在已經停止開發了,最新版本是1.2.2,但是1.2.2在linux內核2.6.24或者更高版本中不能正常安裝。幸好[3]中提供了一個可用的補丁,才可以解決問題。[3]中還強烈譴責了這種新版本驅動還沒有開發穩定就停止對于舊驅動的開發的行為,認為這是對用戶極大的不負責任。
          使用命令
          lshw -C network
          查看自己的網卡驅動。
          下面詳細介紹一下替換驅動的步驟。主要參考[1]。

          具體步驟

          1. 阻止原有驅動的加載
          為了使用新驅動,我們需要屏蔽掉原有驅動。編輯/etc/modprobe.d/blacklist
          sudo vim /etc/modprobe.d/blacklist
          在blacklist文件中加入
          # blacklist new iwl3945
          blacklist iwl3945
          2. 安裝ipw3945 microcode
          下載ipw3945 microcode,下載地址
          解壓縮之后,將得到的ipw3945.ucode文件,拷貝到/lib/firmware/2.6.24-19-generic/下。
          注意,我這里的內核版本是2.6.24-19,請根據自己的情況,將這個數字替換為當前內核版本號??梢允褂?#8220;uname -r”命令查看當前內核版本。
          sudo cp ipw3945.ucode /lib/firmware/2.6.24-19-generic/
          3. 安裝ipw3945 Regulatory daemon
          下載ipw3945 Regulatory daemon,下載地址
          解壓縮后,將x86(如果是64位機器,則是x86_64)下的ipw3945d拷貝到/sbin目錄下。
          cp x86/ipw3945d /sbin
          為了讓ipw3945d工作,需要進行一些操作,這些操作已經寫在了兩個文件中,分別是ipw3945d-start和ipw3945d-stop中。我們需要將這些文件拷貝到/sbin下,執行如下命令:
          sudo cp ipw3945d-{start,stop} /sbin
          sudo chmod a
          +/sbin/ipw3945d-{start,stop}
          更詳細的說明,請參考README.ipw3945d
          4. 安裝ieee80211
          一般在內核中都有,特別是ubuntu安裝的內核中。所以我就不需要安裝。如果你內核中沒有ieee80211,需要安裝。請參考http://ieee80211.sf.net/。一般ubuntu用戶都可以跳過這個步驟。
          5. 下載ipw3945 1.2.2
          下載地址,要下載1.2.2版本。如果鏈接不能下載,可以在本文的附件中下載。得到ipw3945-1.2.2.tgz
          6. 下載ipw3945補丁
          下載地址。這個是一個文本文件,請直接點擊右鍵另存為。得到ipw3945-1.2.2.patch文件。
          7. 打補丁
          解壓縮ipw3945-1.2.2.tgz文件,將ipw3945-1.2.2.patch文件拷貝到ipw3945-1.2.2.tgz解壓縮后的目錄下,運行patch命令
          patch -p1 < ipw3945-1.2.2.patch
          提示輸入文件名的時候,輸入ipw3945.h
          8. 安裝ipw3945
          ipw3945-1.2.2.tgz解壓縮后的目錄下,運行intall命令
          make
          sudo make install
          sudo chmod 777 /sbin/ipw*
          9. 將ipw3945加入內核啟動加載模塊
          新建文件 /etc/modprobe.d/ipw3945
          sudo vim /etc/modprobe.d/ipw3945
          并且在文件中添加
          install ipw3945 /sbin/modprobe -i ipw3945 ; sleep 0.5 ; /sbin/ipw3945d --quiet
          remove ipw3945 
          /sbin/ipw3945d --kill ; /sbin/modprobe --i ipw3945
          載入模塊
          sudo modprobe ipw3945
          10. 重啟電腦
          重啟之后,就可以正常使用無線網絡了。

          參考文檔

          [1] http://www.ubuntugeek.com/using-ipw3945-instead-iwl3945-in-hardy.html
          [2] http://ipw3945.sourceforge.net/
          [3] http://james.colannino.org/downloads.html

          posted on 2008-07-09 14:21 daning 閱讀(8392) 評論(12)  編輯  收藏 所屬分類: ubuntu

          評論

          # re: 如何在ubuntu下使用intel 3945abg無線網卡  回復  更多評論   

          # blacklist new iwl3945
          blacklist iwl3945

          還是
          # blacklist new iwl3945
          blacklist iwl3945
          blacklist mac8021

          2. Reboot
          3. Download ipw3945 microcode

          2是否必要?

          抄襲也要抄全了啊。

          我就是編譯失敗,而且要ieee80211,雖然是ubuntu
          2008-08-04 09:41 | 沖浪板

          # re: 如何在ubuntu下使用intel 3945abg無線網卡  回復  更多評論   

          To 沖浪板:
          1. 沒有必要屏蔽mac8021,我屏蔽mac8021之后,就不能檢測到無線網絡了。
          2. 不需要重啟。最后重啟就可以。
          3. 我參考了一些英文資料,自己總結翻譯了一下,而且都注明了出處,不算抄襲吧。

          個人情況不一樣,我只是給出自己的經驗,分享一下。按照我的方法,你如果沒有成功,只能說明我們的情況不一樣。你可以自己再搜尋一下答案,把你的經驗分享一下。或者把你具體的配置環境列出來,大家共同參考一下,比如你是哪個版本內核,哪個版本ubuntu等等。不需要出言如此無理吧。
          2008-08-04 15:41 | daning

          # re: 如何在ubuntu下使用intel 3945abg無線網卡  回復  更多評論   

          說抄襲嚴重了一點:-p
          說是在的,英文的比較嚴謹,如
          4. Download ipw3945 regulatory daemon from here and copy it into /sbin/
          (copy the file within folder x86 to /sbin/ too)

          我的是8.04.1,沒編譯ieee8021的話不成啊,可是這個ieee8021編譯也是出錯,錯誤和某些人的貼一樣,可是沒見解決辦法。
          ieee8021出錯,ipw3945就更了。

          有人說連接一個2.6.24-17的就ok,可是2.6.24-17的哪來

          livecd裝的是不是沒編譯環境啊,編譯驅動模塊,比編譯一般軟件要求多吧,起碼頭文件....

          冒險用這個,以后升級,就麻煩了吧。
          2008-08-04 22:26 | 沖浪板

          # re: 如何在ubuntu下使用intel 3945abg無線網卡  回復  更多評論   

          7. 打補丁
          解壓縮ipw3945-1.2.2.tgz文件,將ipw3945-1.2.2.patch文件拷貝到ipw3945-1.2.2.tgz解壓縮后的目錄下,運行patch命令


          若能說為什么要這個,就比較能讓人記錄住;萬一ta怕麻煩沒做這步驟,不麻煩咯。
          2008-08-04 22:30 | 沖浪板

          # re: 如何在ubuntu下使用intel 3945abg無線網卡  回復  更多評論   

          看來我永遠也編譯不成了,因為不用,這樣就ok
          sudo rmmod -f iwl3945
          sudo modprobe iwl3945 disable_hw_scan=1
          sudo iwlist wlan0 scan
          2008-08-04 23:37 | 沖浪板

          # re: 如何在ubuntu下使用intel 3945abg無線網卡  回復  更多評論   

          我也想解決這個問題..但一直沒成功,有空方便交流一下嗎?
          我很仔細看過你的教程了..但還是不成功..
          如果如果可以的話給我發E-MAIL aiches@qq.com
          2008-09-20 02:05 | aiches

          # re: 如何在ubuntu下使用intel 3945abg無線網卡  回復  更多評論   

          完全可以在2.6.24-20以后的Kernel中采用這個驅動,主要是編譯的時候注意加兩個參數:
          SHELL='/bin/bash' IEEE80211_IGNORE_DUPLICATE=y

          一個是用bash的shell,一個是忽略80211檢查,我是ubuntu 8.04,升級到2.6.24-21完全米問題。
          2008-09-21 18:15 | kouga

          # re: 如何在ubuntu下使用intel 3945abg無線網卡[未登錄]  回復  更多評論   

          我在第8個步驟中編譯的時候出錯了。不知道怎么辦。
          WARNING: Your kernel contains ieee80211 symbol definitions and you
          are not using the kernel's default ieee80211 subsystem.
          2008-09-27 10:45 | chris

          # re: 如何在ubuntu下使用intel 3945abg無線網卡  回復  更多評論   

          我的內核是2.6.24-21-generic,使用正常
          2008-09-29 12:26 | jfo

          # re: 如何在ubuntu下使用intel 3945abg無線網卡[未登錄]  回復  更多評論   

          在進行到第8步,make之后,提示有錯誤。請問如何解決?

          Makefile:53:
          Makefile:54: WARNING: $SHELL not set to bash.
          Makefile:55: If you experience build errors, try
          Makefile:56: 'make SHELL=/bin/bash'.
          Makefile:57:
          /bin/sh: Syntax error: "(" unexpected
          /bin/sh: Syntax error: "(" unexpected
          -e
          WARNING: Your kernel contains ieee80211 symbol definitions and you
          are not using the kernel's default ieee80211 subsystem. (Perhaps you
          used the out-of-tree ieee80211 subsystem's 'make install' or have
          provided a path to the ieee80211 subsystem via IEEE80211_INC.)

          If you wish to use the out-of-tree ieee80211 subsystem then it is
          recommended to use that projects' "make patch_kernel" facility
          and rebuild your kernel to update the Module symbol version information.

          Failure to do this may result in build warnings and unexpected
          behavior when running modules which rely on the ieee80211 subsystem.


          -e Aborting the build. You can force the build to continue by adding:

          IEEE80211_IGNORE_DUPLICATE=y

          to your make command line.


          make: *** [check_inc] 錯誤 1
          2008-10-02 23:26 | Jesse

          # re: 如何在ubuntu下使用intel 3945abg無線網卡[未登錄]  回復  更多評論   

          @Jesse

          不好意思,
          如kouga所說,
          加入SHELL='/bin/bash' IEEE80211_IGNORE_DUPLICATE=y 參數

          完整的命令為:
          make SHELL='/bin/bash' IEEE80211_IGNORE_DUPLICATE=y
          2008-10-05 22:45 | daning

          # re: 如何在ubuntu下使用intel 3945abg無線網卡  回復  更多評論   

          修改(沒有就新建一個)/etc/modprobe.conf
          添加內容
          #/etc/modprobe.conf: Configuration file/directory for modprobe
          options iwl3945 disable_hw_scan=1

          redhat上有人這們弄,我覺得ubuntu應該也可以。
          2008-11-16 08:38 | shuaikun
          主站蜘蛛池模板: 通州市| 南涧| 衡水市| 瑞金市| 太仆寺旗| 资阳市| 建昌县| 鹤山市| 历史| 正镶白旗| 沁阳市| 甘洛县| 儋州市| 新津县| 望谟县| 沙洋县| 长乐市| 科技| 乐山市| 博兴县| 卢湾区| 达拉特旗| 新巴尔虎左旗| 长岭县| 皮山县| 白玉县| 绥滨县| 常德市| 邢台市| 扶绥县| 特克斯县| 灵山县| 杂多县| 台州市| 尼木县| 清苑县| 朝阳区| 皮山县| 吉隆县| 通海县| 南宁市|