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,已有官方安卓驅動,但就是不會用。
回覆刪除