大家好,欢迎来到IT知识分享网。
简介
移植过程
移植的过程分为以下几个步骤:
- 下载rtl8188eu驱动源码,并修改MakeFile文件
- linux内核配置
- 修改编译相关配置
- 设备树修改
- RK_wifi源码修改
- wifi默认账号密码
下载rtl8188eu驱动,并修改MakeFile文件
ARCH ?= arm CROSS_COMPILE ?= KVER ?= $(if $(KERNELRELEASE),$(KERNELRELEASE),$(shell uname -r)) KSRC ?= $(KERNEL_DIR) MODDESTDIR := /lib/modules/$(KVER)/kernel/drivers/staging/r8188eu/ INSTALL_PREFIX :=
154行的modules改成:
modules: $(MAKE) ARCH=$(ARCH) CROSS_COMPILE=$(CROSS_COMPILE) -C $(KSRC) M=$(shell pwd) modules cp $(shell pwd)/8188eu.ko $(M_OUT_DIR) @mkdir -p $(SYSDRV_DIR_OUT_ROOTFS)/lib/firmware/rtlwifi cp $(shell pwd)/rtl8188eufw.bin $(SYSDRV_DIR_OUT_ROOTFS)/lib/firmware/rtlwifi/
linux内核配置
配置支持USB 设备
Device Drivers ---> [*] USB support ---> <*> EHCI HCD (USB 2.0) support <*> ChipIdea Highspeed Dual Role Controller [*] ChipIdea device controller [*] ChipIdea host controller
配置支持WiFi设备
Device Drivers ---> [*] Network device support ---> [*] Wireless LAN ---> <*> IEEE 802.11 for Host AP (Prism2/2.5/3 and WEP/TKIP/CCMP) [*] Support downloading firmware images with Host AP driver [*] Support for non-volatile firmware download [*] Realtek devices <*> Realtek rtlwifi family of devices ---> <*> RTL8723AU/RTL8188[CR]U/RTL819[12]CU (mac80211) support [*] Include support for untested Realtek 8xxx USB devices (EXPERIMENTAL)
配置支持IEEE 802.11
[*] Networking support ---> -*- Wireless ---> <*> cfg80211 - wireless configuration API <*> Generic IEEE 802.11 Networking Stack (mac80211)
修改编译相关配置
- 打开project/cfg/BoardConfig_IPC/*.mk (备注:你使用的是哪个板子就选择哪个mk文件),将以下代码添加到最后一行:
export RK_ENABLE_WIFI=y
- 打开sysdrv/drv_ko/wifi/MakeFile文件,找到”build-usb:”和”build-usb-clean:”标签,添加rtl8188eu编译相关的代码:
build-usb: @make -C rtl8188ftv/ @make -C ssv6x5x/ @make -C rtl8188eu/
build-usb-clean: @make -C rtl8188ftv clean @make -C ssv6x5x clean @make -C rtl8188eu clean
- 打开sysdrv/drv_ko/wifi/insmod_wifi.sh文件,在第44、45行空白处添加:
#rtl18188eu cat /sys/bus/usb/devices/*/uevent | grep "bda\/179" if [ $? -eq 0 ];then insmod cfg80211.ko insmod 8188eu.ko fi
设备树修改
修改对应的设备树,将USB模式设置为host模式。
&usbdrd_dwc3 {
status = "okay"; dr_mode = "host"; };
RK_wifi源码修改(重点)
- 打开project/app/wifi_app/wifi/src/Rk_wifi.c文件,将942行-958行代码改成:
if (access("/data/cfg/wpa_supplicant.conf", F_OK) == 0) {
exec_command_system("wpa_supplicant -B -i wlan0 -c /data/cfg/wpa_supplicant.conf -Dwext"); } else {
if (access("/etc/wpa_supplicant.conf", F_OK) == 0) {
//check /data write? if (exec_command_system("cp /etc/wpa_supplicant.conf /data/wpa_supplicant.conf") == 0) exec_command_system("wpa_supplicant -B -i wlan0 -c /data/wpa_supplicant.conf -Dwext"); else exec_command_system("wpa_supplicant -B -i wlan0 -c /etc/wpa_supplicant.conf -Dwext"); } else {
pr_info("Don't found wpa_supplicant.conf so RK_wifi_enable failed!\n"); gstate = RK_WIFI_State_OFF; wifi_onoff_flag = false; wifi_state_send(gstate, NULL); } }
- 将979行的
exec_command_system("dhcpcd wlan0 -AL -t 0 &");
改成:
exec_command_system("udhcpc -i wlan0 -t 5 &");
wifi默认账号密码
打开project/app/wifi_app/wpa_supplicant.conf,修改成你自己的wifi账号密码:
network={
ssid="iPhone" psk="" key_mgmt=WPA-PSK }
注意:WPA-PSK不要动,WPA和WPA2都是用这个。
总结
编译下载上电运行,能自动连接到我的手机热点,并且自动获取到了ip。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/126656.html