2013年11月7日 星期四

Build the USB WIFI Dongle(N150UM) driver to BeagleBoard-xM(2.6.32 kernel)

由於8712u.ko  , 好不容易編譯好了結果 module 一直掛不起來,  只好換一個試試看,
我去商場買了一個USB WIFI Dongle (N150UM) , 圖如下:




相關產品規格去官網找就有了 , Driver for linux 可從底下載:
去裡面選擇:
要注意我們的這個Driver是 "RT3070" .

-----------------------------------------Starting Cross Compiler-----------------------------------------------

先說說我bb-xM的環境:
Kernel : 2.6.32
Rootfs : Angstrom 
值得注意的是 , 當初Build in Kernel 時 , 需要勾選wireless 以及Ralink rt27xx/rt28xx/rt30xx (USB) support這些選項 .


好了 ,  可以開始了 .

  • Step1. 設定wireless WPA 相關設定檔. 
vim os/linux/config.mk
# Support Wpa_Supplicant
HAS_WPA_SUPPLICANT=y
# Support Native WpaSupplicant for Network Maganger
HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=y


  • Step2.  modify platform for arm system from Makefile
ifeq ($(PLATFORM),PC)
# Linux 2.6
LINUX_SRC = /home/jack/beagleboard-validation-linux
# Linux 2.4 Change to your local setting
#LINUX_SRC = /usr/src/linux-2.4
LINUX_SRC_MODULE = /home/jack/beagleboard-validation-linux/drivers/net/wireless/
CROSS_COMPILE = /home/jack/angstrom_toolchain/usr/local/angstrom/arm/bin/arm-angstrom-linux-gnueabi-
CROSS_COMPILE = arm-none-linux-gnueabi-
endif

         請注意藍字的部份是針對我的kernel source包(Linux 2.6.32),
         以及cross-compiler toolchain path ,
         值得一提的是 , toolchain 用 arm-angstrom-linux-gnueabi-  也是可以的 , 所以我保留住                  angstrom的toolchain path , 但實際上我是用arm-none-linux-gnueabi- 來編的.
         若沒有 kernel source 包 請至下列網址下載:
         Jason Kridner’s Beagleboard validation 2.6.32 kernel
       


  • Step3.  resolve the CHIPSET changed bug
           #vim chips/rtm_chip.c    
           goto 470 line

#ifdef RT30xx

    if (IS_RT30xx(pAd))
    {
        if (IS_RT3390(pAd))
            ;//RT33xx_Init(pAd);                                              
        else
            RT30xx_Init(pAd);
    }
#endif /* RT30xx */

           
  • Step4. make start
  #sudo -s
             #make ARCH=arm   #Dont forget this .

     
        上述動作做完了之後會產生相關檔案 , 其最重要的是rtl3070sta.ko 以及 RT 2870STA.dat
         並將這兩個檔案透過NFS方式放置bb-xM



  • Step5. Insmod the module
             On the bb-xM:
    #mkdir –p /etc/Wireless/RT2870STA/    
    #cp RT2870STA.dat / etc/Wireless/RT2870STA/   
               (注意RT2870STA.dat一定要放置/etc/Wireless/RT2870STA/ 裡 , module 才會吃的到)
   #insmod rt3070sta.ko
       上述完整描述了從編譯到掛載, 如果掛載沒出現錯誤 也確定都可以開啟wifi, 那就成功了

        當然連線的操作就是搭配一下wireless tools ,
         如下操作:
          #ifconfig ra0 up
          #iwlist scan
          #iwconfig ra0 essid "Emily NCKU"
          可能會提示出要輸入密碼等等. 連線成功之後可以使用ping ip 來test看看封包有無遺失.




          Gj!!

          Refer to :
          1.http://blog.chinaunix.net/uid-28572323-id-3482376.html
          2.http://bbs.chinaunix.net/thread-1921952-1-1.html
          3. http://www.tamio.com.tw/tamio/component/phocadownload/category/61-totolink-n150um

      

沒有留言:

張貼留言