基於Android的SDIO WIFI移植(1)

2021-07-25 13:52:19 字數 2483 閱讀 6279

一、sdio 裝置驅動移植

很不巧核心已經「被」支援了,我就先不費這事了。

二、配置核心以支援marvel無線wifi

在這裡我編譯成模組的方式:

device drivers  --->

[*] network device support  --->

wireless lan  ---> 

marvell 8*** libertas wlan driver support

marvell libertas 8385 and 8686 sdio 802.11b/g cards

[*] networking support  --->

[*]   wireless  ---> 

<*>   improved wireless configuration api  

[*]     cfg80211 regulatory debugging  

[*]     nl80211 new netlink inte***ce support   

common routines for ieee802.11 drivers 

配置好後執行:make zimage然後,make modules以生成我們要的驅動模組。把編譯好的drivers/net/wireless/libertas/目下的驅動模組檔案libertas.ko和libertas_sdio.ko複製到android檔案系統下的/system/lib/modules/目錄下。後面發現根檔案系統裡面也「被」支援了,很鬱悶!

三、放置好韌體

建立firmware路勁為/system/etc/firmware目錄,把helper_sd.bin,sd8686.bin移動至/system/etc/firmware下面,並更改helper_sd.bin為sd8686_helper.bin

#mkdir /system/etc/firmware

#mv /helper_sd.bin sd8686.bin /system/etc/firmware/

#cd /system/etc/firmware

#mv helper_sd.bin sd8686_helper.bin

使用如下載入方法:

insmod /system/lib/modules/libertas.ko

insmod /system/lib/modules/libertas_sdio.ko

檢視有沒有建立wlan0這個裝置節點,若沒有驅動好網絡卡,再次熱插拔一下就好

# err = -123

mmc1: new sdio card at address 0001

__func__ = if_sdio_prog_helper

libertas_sdio mmc1:0001:1: firmware: requesting sd8686_helper.bin

init: untracked pid 2074 exited

libertas_sdio mmc1:0001:1: firmware: requesting sd8686.bin

init: untracked pid 2077 exited

libertas: 00:0b:6c:89:62:4b, fw 9.70.3p23, cap 0x00000303

……四、手動連線ap

首先得在android上移植好無線工具,和fs2410類似(可參考我有關介紹android上移植無線工具iwconfig、iwlist等)。

移植好無線工具後便可以測試了:

ifconfig -a檢視是否有wlan0 網路節點。

利用無線工具連線:

ifconfig wlan0 up      

iwlist wlan0 scanning

iwconfig wlan0 essid "fs2410"

ifconfig wlan0 192.168.1.99 netmask 255.255.255.0 up

這時可以執行:

ping 192.168.1.1&

64 bytes from 192.168.1.1: seq=0 ttl=64 time=2.247 ms

64 bytes from 192.168.1.1: seq=1 ttl=64 time=1.900 ms

……(可以kill -9 pid結束程序)

五、自動連線ap,android方式

……(下一節)

下一節為正式專案課題:基於android的sdio-wifi移植(2)

Android 基於Message的程序間通訊

例項在最後,先簡析原理。1 服務端重要 解析 nullable override public ibinder onbind intent intent getbinder裡面是這樣的 public ibinder getbinder mtarget是什麼?怎麼來的?public messenger...

基於EasyPR的車牌識別android實現

easypr4android,基於easypr1.5beta的android實現 更新 新增編譯好的安裝檔案 採用android studio2.3.3大幅簡化ndk開發的配置 特性 1.支援拍照和支援相簿瀏覽識別 2.ndk呼叫opencv 3.從assets讀取並複製檔案 4.採用多執行緒進行識...

基於Android的Linux核心的電源管理 概述

1.電源管理的狀態 android的linux核心為系統提供了4種電源狀態,核心的源 為其中的3種定義了名字和對應的巨集定義,名字定義在kernel power suspend.c中 const char const pm states pm suspend max 對應的巨集定義在 include...