一、 linux 的移植。
首先編譯一遍確保沒有問題。
將驅動拷貝到 driver/net/wireless? 目錄下。
? 使用的是:
改寫 makefile Kconfig
去改寫 8723 的makefile
設置menuconfig
使能固有的 庫。
使能USB部分
ieee 部分
編譯一遍
有報錯。????????
解決:
遇到問題:
沒有wlan節點、
于是 insmod 8723du.ko,只有這些打印信息,與內置的打印信息是一樣的。
解決:
對比 沒有移植 8723du 的設備樹
將這個去掉,繼續測試。
當然,這里是需要移植 wpa_supplicant ,作為wifi 工具的,這里就不介紹了,參考正點原子的imx6ull 的手冊。
/etc/wpa_supplicant.conf 的設置如下:
ctrl_interface=/var/run/wpa_supplicant
network={
ssid="XW"
psk="aaaaaaaa"
}
ctrl_interface=/var/run/wpa_supplicant
ap_scan=1
network={
ssid="wang"
psk="123456789"????????
}
然后需要,將eth0 關閉掉,否則會出現ping 卡死。
輸入命令進行連接。
wpa_supplicant -Dnl80211 -iwlan0 -c /etc/wpa_supplicant.conf -dd >/var/wifi_log &
wpa_supplicant -D wext -c /etc/wpa_supplicant.conf -i wlan0 &
有報錯
解決:? 無法解決這個報錯。
我準備換一個驅動 , 重新編譯。
重新編譯。
燒寫測試:
繼續去改改menuconfig
發現的問題:
但是依然是鏈接不上。
目前問題已解決:
正確的打印信息:
經過我的測試做一個總結:
1 首先是? makefile 里? power-saving 宏定義控制著是否打印這個。
2? makefile 的 編寫。
ifeq ($(CONFIG_PLATFORM_6818), y)
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN -DCONFIG_IOCTL_CFG80211 -DRTW_USE_CFG80211_STA_EVENT #-DCONFIG_PLATFORM_ANDROID -DCONFIG_ANDROID
ARCH := arm
KSRC := /home/topeet/lollipop-5.1.1_r6/kernel
KVER := 3.4.39
endif
3 測試的命令。必須是:
wpa_supplicant -Dnl80211 -c /etc/wpa_supplicant.conf -i wlan0 &
而不能是:
wpa_supplicant -D wext -c /etc/wpa_supplicant.conf -i wlan0 &
二、 Android的移植
準備一份官方文檔。
1 device 目錄修改
首先是去掉 mt66xx的
menuconfig 中
怎么去掉藍牙呢?
但是我的Kernel 的 .config 是不是也需要改變,
這個也是需要改的。
cp? xxx.android? .config
wifi 驅動加上了Android.
linux 部分:
androdi 部分。
2 hardwaire 目錄修改
這個目錄不用改了,跟android4.4 是不一樣的。 參考wifi 驅動官方手冊
先編譯一遍:
可以編譯成功,
但是無法使用,當再設置中 打開wifi 時 出現報錯。
接下來嘗試, 使用ko 的方式。
并且參考 imx6q Android4.4 的? .mk
繼續編譯測試一下。