android上一次wifi模組除錯經過

2021-06-22 00:32:31 字數 1880 閱讀 3582

在android裝置的開發過程中,經常會碰到更換模組的情況,比如說經常被更換的wifi模組,這裡有可能是硬體部門覺得某個別的模組比現有的模組做得更好所以希望嘗試一下,做做對比實驗;也有可能是公司找到了更便宜的**商,想做cost down,貌似是後者佔的概率更高......

把wifi模組更換之後,一般情況下就需要進行驅動上的匹配和除錯,以及編譯生成韌體了。當然,不排除更換wifi模組之後原有韌體還能直接相容的,不過這種好事貌似一般享受不到呢....下面記錄一次比較完整的比較走運的除錯經過.

首先使用最小檔案系統(rootfs)作為boot映象,以單步燒錄的方式寫入到板子上.最小檔案系統的製作可以問谷歌,搜出來的第一頁就足夠用了.之所以要用rootfs進行除錯,是因為完整的android系統需要底層、hal層和上層都配合好才能正常執行,並不利於模組除錯.使用最小檔案系統就是為了避開這種情況,把模組的除錯層次化,先從底層調起,確認模組能正常工作是第一步;

最小檔案系統燒錄進去之後,板子上電開機,等待一會,應該就可以使用adb進行連線了,如果最小檔案系統沒有adb,回到第一步新增進去.確認adb正常連線,準備好需要除錯的wifi模組的驅動,現在的晶元廠商一般都會針對各個平台釋放相應的wifi驅動(已經編譯好的ko檔案)及文件,照顧得都比較周到.直接使用adb push需要的驅動到板子上,可以把驅動放在某個新建的目錄下,如/tmp,準備安裝;

adb連線進板子上操作,su獲取最高許可權之後使用insmod載入wifi驅動程式,留意返回資訊,載入沒有報錯的話,就lsmod確認一下;

假設wifi驅動已經載入上,則使用busybox ifconfig -a,看看埠是否已經起來,通常情況下是wlan0;

假設wlan0已經起來,則載入環境變數,source /etc/profile,加入需要的工具,wpa _ supplicant和wpa _ cli.使用命令開啟wifi服務,典型用法是:

$wpa_supplicant -dnl80211 -iwlan0 -c/etc/wifi/wpa_supplicant.conf

更具體可以檢視man page或者直接谷歌.其中用到了乙個配置檔案wpa _ supplicant.conf,這個配置檔案的格式如下:

update_config=1

ctrl_inte***ce=wlan0

eapol_version=1

ap_scan=1

fast_reauth=1

network=

如果上述命令連線還穩定,那麼就用-b引數再跑一次,讓它在後台執行,然後繼續使用wpa _ cli工具檢視實際的連線狀態,命令:$wpa _ cli status 不成功的話就使用wpa _ cli terminate關閉服務,回頭開始找問題除錯.如果返回的資訊是成功的,那就證明連線是穩定的,這時候就可以使用udhcpc -i wlan0來嘗試獲取ip位址了,看返回值;

如果不能通過dhcp服務自動獲取ip,手動設定也是很有必要嘗試的,設定方法 ifconfig wlan0 192.***.***.***

ip獲取或者設定完畢之後,嘗試ping路由器,看是否可以ping通,ping 192.168.1.1

如果路由也能ping通,那離成功就很近了,下面使用route add default gw 192.168.1.1增加一條預設路由,然後使用route -n檢視路由表,看是否成功新增上去,如果成功了,那應該就能ping同區域網內的其他ip了

然後繼續ping谷歌的網域名稱服務 ping 8.8.8.8,測試路由能否跳轉到外網

如果也可以ping通,那就可以嘗試ping網域名稱了,如ping www.baidu.com

最後幾步通常是比較順暢的幾步,如果以上都成功了,那wifi的底層除錯已經基本完成了,接下來就可以換回正常的android系統,在圖形介面中進行測試嘗試了.

當然,這裡的每一步可能都會有坑,而且,一般都會有......

WIFI 在android上的應用

wifi direct 該技術在android 4.1中引用,wifi peer to peer 的允許兩台android 手機不需要路由器或者hotspot模式直接互聯,其相容wifi director 技術,其鏈結方式類似藍芽,但是提供遠大於藍芽的頻寬。但該功能依賴與硬體,硬體廠商可以通過公升級...

Android 再按一次退出頁面

很多程式都當使用者按back鍵退出頁面時,會先提示使用者再按一次退出,防止使用者無意間觸碰到了back鍵退出了頁面,這樣有乙個很好地使用者體驗。實現思路 通過handler改變退出的標識位 1.設定標識位 分為確認退出狀態,退出狀態 狀態為確認 private boolean i it handle...

記一次初級 Android 面試

前段時間依然裸辭了,上乙份工作是某事業單位,身邊的朋友就不明白我為啥要辭掉那麼好的工作。其實吧,我覺得對於好這個定義,一直以來都是相對的,而不是絕對的。至於明白的人都知道,事業單位辦事情相對於企業而言,還是有很大差別的。比如在工作效率方面,事業單位比較穩打穩紮,效率可能比較慢。企業 公司追求效益,要...