2011年3月31日 星期四

在Linux 中如何驅動 EEBOX B202 中的無線網卡 RaLink RT2860 (以CentOS 5.5為例)e

eeebox B202 在 Linux CentOS 5.5 中用預設安裝....
系統應該只會驅動  RTL8111/8168B PCI Express Gigabit Ethernet 
那張有線的網路卡並自動設定為 eth0

如果你的應用是使用有線網路當成對外連線的 WAN, 而打算有另一個介面當成對內連線的LAN 
對於eeebox這種迷你主機而言,要添加網路卡,只能選擇USB網卡囉,
小橘之前是使用 PCI - UE200TX  這張 USB 的網路卡,在Linux可以無痛驅動 並識別為 eth1

可是好好的網卡昨天突然掛點,逼得小橘只好研究如何驅動 EEEBOX 中的另一張無線網卡
否則大半夜的也不知道去哪生一張USB 網卡出來, 該伺服器的服務就得停擺了 Q Q

首先,先確定你的linux 版本是否有抓到那個裝置,你可以用 :

#lspci
00:1f.3 SMBus: Intel Corporation N10/ICH 7 Family SMBus Controller (rev 02)
03:00.0 Network controller: RaLink RT2860
04:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 02) 

應該要有抓到 RaLink RT2860 這個裝置
接下來你需要去該網卡的官方網站下載驅動程式, 前往 http://www.ralinktech.com/
並在Menu中選擇 software --> linux 這選項



並選擇你對應型號的連結, 之後他可能會要你輸入名稱跟 email
只要填入之後你就可以下載了,
在小橘寫本篇時, 檔案的名稱為  2010_07_16_RT2860_Linux_STA_v2.4.0.0.tar.bz2

你只要將該檔案上傳至你的linux 主機上,並解壓縮後,編譯安裝即可。 步驟如下:

0. 將檔案上傳至 /usr/local/src 目錄下
1. #cd  /usr/local/src
2. #tar  xzvf  2010_07_16_RT2860_Linux_STA_v2.4.0.0.tar.bz2
    此時應該會在 /usr/local/src  下解壓縮一個 2010_07_16_RT2860_Linux_STA_v2.4.0.0 目錄

3. #cd  2010_07_16_RT2860_Linux_STA_v2.4.0.0
    目錄中會有一個   README_STA  這個是說明文件,了面應該有英文的教學
    教學中大概是叫你確認  Makefile 中等會要使用的參數有沒有正確
    ex:    set the "MODE = STA"     "TARGET = LINUX"
    你可以 按他的步驟做....

     2> In Makefile
         set the "MODE = STA" in Makefile and chose the TARGET to Linux by set "TARGET = LINUX"
         define the linux kernel source include file path LINUX_SRC
         modify to meet your need.

     3> In os/linux/config.mk
        define the GCC and LD of the target machine
        define the compiler flags CFLAGS
        modify to meet your need.
        ** Build for being controlled by NetworkManager or wpa_supplicant wext functions
           Please set 'HAS_WPA_SUPPLICANT=y' and 'HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=y'.
           => #>cd wpa_supplicant-x.x
           => #>./wpa_supplicant -Dwext -ira0 -c wpa_supplicant.conf -d
        ** Build for being controlled by WpaSupplicant with Ralink Driver
           Please set 'HAS_WPA_SUPPLICANT=y' and 'HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=n'.
           => #>cd wpa_supplicant-0.5.7
           => #>./wpa_supplicant -Dralink -ira0 -c wpa_supplicant.conf -d

    4> $make
        # compile driver source code
        # To fix "error: too few arguments to function ¡¥iwe_stream_add_event"
          => $patch -i os/linux/sta_ioctl.c.patch os/linux/sta_ioctl.c

    5> $cp RT2860STA.dat  /etc/Wireless/RT2860STA/RT2860STA.dat

    6> load driver, go to "os/linux/" directory.
     #[kernel 2.4]
     #    $/sbin/insmod rt2860sta.o
     #    $/sbin/ifconfig ra0 inet YOUR_IP up

     #[kernel 2.6]
     #    $/sbin/insmod rt2860sta.ko
     #    $/sbin/ifconfig ra0 inet YOUR_IP up

    基本上小橘只有按下列步驟繼續操作下去
      
4.#make

5.#make install

6.#cp RT2860STA.dat  /etc/Wireless/RT2860STA/RT2860STA.dat
     這個 RT2860STA.dat 算是一個設定檔,裡面可以設定你預設要連線AP的 ssid、加密方式、密碼...等等   請記得改一下

7. #cd os/linux    切到 2010_07_16_RT2860_Linux_STA_v2.4.0.0  中的 os/linux 目錄下

8. 如果你的 kernel 是 2.6
    #insmod  rt2860sta.ko

    如果你的 kernel 是 2.4
    #insmod  rt2860sta.o

9. 理論上這樣就算裝好啦  這張網卡應該會識別為 ra0
    你可以掃描一下附近可連線的AP
    #iwlist ra0 scan
    #ifconfig ra0 up  可以啟動網卡 

10. 接下來如果你希望開機網卡即啟動、並設定為DHCP、static 並指定IP時
       你可以在 /etc/sysconfig/network-scripts  下新增一個檔案名為  ifcfg-ra0

11. 並指定內容為 :
       DEVICE=ra0
       BOOTPROTO=static
       ONBOOT=yes
       IPADDR=192.168.1.10
       NETMASK=255.255.255.0

如此重開機後,網卡應該會自動設定IP 為 192.168.1.10

P.S  你也可以使用網卡本身所提供的工具  iwpriv  (用法請參考 iwpriv_usage.txt)

以下是一些範例
 iwpriv ra0 set NetworkType=Infra            //設定為 Infra 模式  有 Infra,Adhoc 可選
iwpriv ra0 set AuthMode=WPAPSK       //基地台的認證方式 還有OPEN, SHARED, WEPAUTO, 可選
iwpriv ra0 set EncrypType=TKIP             //加秘方式....  WPAPSK  有 TKIP、AES
iwpriv ra0 set SSID="dd-wrt-Dlink-B"     //AP 的 ssid
iwpriv ra0 set WPAPSK="23113215"   //金鑰 !!!

不過你也可以設定在 /etc/Wireless/RT2860STA/RT2860STA.dat  檔案中....

好啦 動手試試看吧  ^^

如果不想玩了... 可以利用
 #/sbin/ifconfig ra0 down
#/sbin/rmmod rt2860sta       把driver 移除

1 則留言:

匿名 提到...

讚!