Android version :
Android 4.2.2 
Wifi module : TOTOLINK N150UM
(RT3070) 
 之前提到在BBB上做了android的porting,又在上做了wifi的配置,結果忘了把過程寫出來,上半年真是太懶散了,多虧有網友提醒,我在這裡把相關的配置設定做個記錄,這裡的資料是我參考一些網路上的資料,綜合而來,希望對各方朋友能有所幫助。 
這篇Note分成2個部分: 
1. RT3070 wifi driver
porting 
2. Android 4.2.2
setting 
在1.
RT3070 wifi driver porting時,我會簡介一下如何把RT3070的驅動程式修改程能在Android上用的版本,基本上程式碼是不太需要動到的,只是需要修改一些設定,在cross-compiler到ARM的android平台上。 
在2.
Android 4.2.2 setting時,我會簡介一下如何修改部分的Android source,把wifi的設定匹配到我們剛剛cross-compiler的
driver上。
這篇文章為
1. RT3070 wifi driver porting 
========================================================================================
下載Driver source 
本篇文章使用的是[塔米歐 N150UM 極致輕薄USB無線網卡],其驅動程式下載位置:
http://www.tamio.com.tw/tamio/component/phocadownload/category/61-totolink-n150um?download=144:2011-0719-rt3070-rt3370-rt5370-rt5372-linux-sta-v2-5-0-3-dpo 
下載之後你會得到以下檔案:
2011_0719_RT3070_RT3370_RT5370_RT5372_Linux_STA_V2.5.0.3_DPO.bz2 
使用tar指令把他解開
| 
#tar jxvf
  2011_0719_RT3070_RT3370_RT5370_RT5372_Linux_STA_V2.5.0.3_DPO.bz2 | 
因為此驅動程式預設是給linux PC用的,所以我們要作一些修改,才能給我們的android平台用
驅動程式修改
1.     修改”os/linux/config.mk”的內容,新增wpa_supplicant的支援
| 
 # vim os/linux/config.mk 
 修改以下內容 
 HAS_WPA_SUPPLICANT=y 
 HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=y | 
2.     這個驅動程式會把device的名字註冊成ra,而一般的裝置名字似乎是wlan比較常見,因此修改”include/rtmp_def.h”的內容,讓驅動把名字註冊成wlan,當然,不改也沒關係,只是往後在修改Android 設定時需要注意一下。
| 
 # vim include/rtmp_def.h 
 修改以下內容 
 #define INF_MAIN_DEV_NAME        "wlan" 
 #define INF_MBSSID_DEV_NAME        "wlan" | 
Makefile 修改
1.     因為這個平台沒有預設Beaglebone Black的驅動程式,因此我們新增一個給BBB用,首先,先來修改Makefile,在約25行處,有一串的PLATFORM的設定,預設的PLATFORM是PC
| 
PLATFORM
  PC | 
把PLATFORM PC註解,增加新的platform
BBB
| 
#PLATFORM PC 
PLATFORM BBB | 
2.     在Makefile約
172行處有platform PC的設定檔,依照他的格式,新增以下內容作為platform BBB的設定檔。
| 
        #
  --------------------------------------------------------------- 
        ifeq ($(PLATFORM),BBB) 
        # Linux for Android TI source 
        CHIPSET = 3070 
        LINUX_SRC =
  /home/BeagleboneBlack/Android/rowboat-android/kernel/ 
        CROSS_COMPILE = arm-eabi- 
        endif 
        # --------------------------------------------------------------- | 
§   因為我使用的wifi模組是RT3070的晶片,因此CHIPSET改成3070
§   而LINUX_SRC是kernel
source的位置,如果是要cross compiler到其他平台上,就要改到此平台linux
kernel對應的存放位置,在這裡我是為了porting到Android上,所以將路徑改成這樣
§   CROSS_COMPILE則是看corss-compiler來決定,請修改成您使用的corss-compiler
3.     接著為我們新增的platform,增加gcc的include路徑,否則一compiler會直接說某些結構找不到definition,因為他找不到include的路徑,修改”os/linux/config.mk” 這個檔案,新增以下內容,增加gcc運行時的flag
| 
 # vim os/linux/config.mk 
增加以下內容 
 ifeq ($(PLATFORM),BBB) 
     EXTRA_CFLAGS
  := $(WFLAGS) -I$(RT28xx_DIR)/include 
 endif | 
4.     接著就可以開始make了,記得指定ARCH=arm
| 
 # make ARCH=arm | 
5.     編譯完成之後,會在os/linux/ 下產生rt3070sta.ko的driver
Reference
:
[1]http://askubuntu.com/questions/148767/help-do-i-install-the-ralink-rt3070-wireless-driver
[1]http://askubuntu.com/questions/148767/help-do-i-install-the-ralink-rt3070-wireless-driver






 
你好,我在Google搜索時看到你的帖子
回覆刪除其實我在尋找rt3070驅動與Android 連接方法
我的電視機盒WiFi不給力,所以想利用外接無線網卡連WiFi,可是我的totolink u150ua 網卡插入後完全沒有反應,我上網爬文後發現需要驅動才能使用,可是我不是電腦程式員沒辦法自己用。
想請問,我要怎樣才能在android7環境下使用無線網卡呢?
我也想知道。我電視盒的無線網壞了,想外接無 線USB,已有官方安卓驅動,但就是不會用。
回覆刪除