2010年2月27日 星期六

在CentOS中使用SMC 2835W無線網卡(PCMCIA)

繼透過手機3G行動上網後, 忽然想到當初買這一台IBM R40時有多買一張PCMCIA介面的無線網卡(型號是SMC2835W), 雖然在家裏沒有無線AP可以使用, 但是還是試裝了一下, 天曉得會不會在哪一天在家裡用無線AP. 一開始到『鳥哥的Linux私房菜』去找如何設定無線網路,但是鳥哥講解的是透過USB介面的無線網卡的設定, 所以經過一些網路上文章的說明, 終於設定了這張網卡!

電腦: IBM R40 2681-BV1
OS: CentOS 2.6.18
無線網卡: SMC 2835W Cardbus Wireless Card (PCMCIA介面)

安裝這張PCMCIA的無線網卡主要是依照『How to install a SMC2835W V2 Wireless CardBus Adapter under Debian GNU/Linux』這個網站的說明來安裝的:

1. 必須先安裝 prism54 這個 module.

上面的網站指出只要 Linux Kernel 版本是在2.6.5以上的話, prism54 已經內建在 kernel 裡了, 所以這部份我就不需要安裝了. 若沒有安裝的話可以下『#yum install prism54』來安裝.

2. 必須安裝 hotplug 與 wireless-tools 這兩個 packages.


同樣的, hotplug 與 wireless-tools 已經是內見了, 若沒有的話可以執行『#yum install hotplug wireless-tools』來安裝. (似乎無法透過 yum 來找到 hotplug, 不過沒關係, 還好是已經內建了)


3. 下載 SMC 2835W 的 Driver 回來安裝.

可上SMC的網站下載 2835W V1 的 Driver (DR_2835W_v1.zip) 回來, 並將他解壓縮後的包含的 Driver 目錄裡的 smc2835w.arm 改名為 isl3890 並複製到 /lib/firmware 裡:

#mkdir 2835w
#unzip DR_2835W_v1.zip -d 2835w
#cd 2835w/Driver
#cp smc2835w.arm /lib/firmware/isl3890

這時 SMC 2835W 的驅動程式應該已經安裝好,執行下列指令應該會出現 firmware 已經就緒:
#ifconfig eth1 up (注意,我的 SMC2835W 無線網卡是用到 eth1)
#dmesg | tail
eth1: resetting device...
eth1: uploading firmware...
eth1: firmware version: 1.0.3.0
eth1: firmware upload complete
eth1: interface reset complete
eth1: no IPv6 routers present

4. 將模組與網卡的代號寫入 /etc/modprobe.conf 中

#joe /etc/modprobe.conf

將『alias eth1 prism54』加入到 modprobe.conf 中, 需注意的是, 由於 SMC2835W 這張卡是透過 prism54 這個模組來驅動, 所以是將 eth1 設別名到 prism54.

5. 利用 iwlist 偵測 AP, 並手動啟動

  5.1 先確定已經啟動網卡:

  #ifconfig eth1 up

  5.2 使用 iwlist 來搜尋無線 AP

  #iwlist eth1 scanning

  會出現 AP 的列表, 必須注意的是哪個 AP 的 ESSID
  例如在鳥哥的例子裡是『ESSID:"BLW-VBIRD"』

  
  5.3 使用手動的方式來啟動無線網卡的連線

  #iwconfig eth1 essid "BLW-VBIRD" key "12345678901234567890123456" 

  5.4 檢視是否連線

  #iwconfig eth1

  
  需注意 Bit Rate 的值 (Bit Rate:11Mb/s), 被設定為11Mb/s了, 但我這張卡是支援到54Mb/s, 所以可以依照鳥哥教的方式設定一下網路卡設定檔來改善 (如下面的步驟6).


6. 設定網路卡設定檔 (ifcfg-ethn)

因為我的無線網卡使用的代號是 eth1,所以也是需要在 /etc/sysconfig/network-scripts 設定好相對應的 ifcfg-eth1 這個檔案才行 (可參考 /etc/sysconfig/network-scripts/ifup-wireless 的說明來設定):

#joe /etc/sysconfig/network-script/ifcfg-eth1
DEVICE=eth1
BOOTPROTO=dhcp
ONBOOT=no
TYPE=wireless
ESSID=BLW-VBIRD
MODE=Managed
RATE=54M     
KEY=12345678901234567890123456

說明如下:
DEVICE: 使用哪一個網卡, 在此是eth1
BOOTPROTO: 無線網路多是採用DHCP
ONBOOT: 是否要一開機就啟動無線網卡, 在此是不要, 因為這張卡不是內建的, 所以設定為no
TYPE: 因為是無線網路, 所以是wireless
ESSID: 無線AP的SSID, 這裡例如是抓到BLW-VBIRD
MODE: 設為Managed
RATE: 依據無線網卡的規格頻寬來設定, 我這張卡是54Mb/s, 所以設定為54M
KEY: 依據使用的AP的KEY填入

Refernece:
1. How to install a SMC2835W V2 Wireless CardBus Adapter under Debian GNU/Linux
2. 鳥哥的Linux私房菜-[連上Internet]-[3. 無線網路--以筆記型電腦為例]

沒有留言: