[基于瑞芯微RV1126调试RTL8818FU WIFI模组支持STA和AP模式]
生活随笔
收集整理的這篇文章主要介紹了
[基于瑞芯微RV1126调试RTL8818FU WIFI模组支持STA和AP模式]
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
基于瑞芯微RV1126調試RTL8818FU WIFI模組支持STA和AP模式
- 內核menuconfig配置
- 內核dts配置
- 文件系統配置和更改
- 驅動編譯
- wifi工具編譯
- libnl庫編譯
- openssl編譯
- wpa_supplicant編譯
- hostapd編譯(不過我沒用到,調不通,用的是rk自帶的)
- 開機運行腳本測試WIFI—STA模式
- 運行腳本測試WIFI-AP模式
- 全部資源下載
內核menuconfig配置
CONFIG_NETFILTER=y CONFIG_NF_CONNTRACK=y CONFIG_NF_TABLES=y CONFIG_NF_TABLES_INET=y CONFIG_NF_CONNTRACK_IPV4=y CONFIG_IP_NF_IPTABLES=y CONFIG_IP_NF_NAT=y CONFIG_IP_NF_TARGET_MASQUERADE=y CONFIG_BRIDGE=y CONFIG_IP_NF_FILTER=y CONFIG_IP_NF_MANGLE=y CONFIG_IP_NF_NAT=y CONFIG_IP_NF_RAW=y CONFIG_NETFILTER_XT_MATCH_STATE=y CONFIG_WL_ROCKCHIP=y CONFIG_WIFI_BUILD_MODULE=y CONFIG_USB_XHCI_HCD=y CONFIG_USB_XHCI_PLATFORM=y CONFIG_USB_NET_RNDIS_WLAN=y CONFIG_USB_OHCI_HCD=y CONFIG_USB_OHCI_HCD_PLATFORM=y CONFIG_USB_CONFIGFS_RNDIS=y CONFIG_USB_DWC3=y CONFIG_USB_DWC3_OF_SIMPLE=y CONFIG_USB_DWC3_ROCKCHIP_INNO=y CONFIG_USB_EHCI_HCD=y CONFIG_USB_EHCI_HCD_PLATFORM=y CONFIG_USB_HID=y CONFIG_USB=y CONFIG_USB_USBNET=y CONFIG_PHY_ROCKCHIP_NANENG_USB2=y CONFIG_RFKILL=y CONFIG_RFKILL_RK=y CONFIG_CFG80211=y CONFIG_CFG80211_WEXT=y內核dts配置
wireless_wlan: wireless-wlan {compatible = "wlan-platdata";rockchip,grf = <&grf>;/*clocks = <&rk809 1>;clock-names = "clk_wifi";*/pinctrl-names = "default";pinctrl-0 = <&wifi_init>;wifi_chip_type = "rtl8188fu";WIFI,poweren_gpio = <&gpio3 RK_PA5 GPIO_ACTIVE_LOW>; /*WIFI,host_wake_irq = <&gpio0 RK_PB0 GPIO_ACTIVE_HIGH>; */status = "okay";};wireless-wlan {/omit-if-no-ref/wifi_wake_host: wifi-wake-host {rockchip,pins = <0 RK_PB0 0 &pcfg_pull_up>;};wifi_init: wifi-init {rockchip,pins = <3 RK_PA5 RK_FUNC_GPIO &pcfg_output_high>,//wifi_enable<0 RK_PB1 RK_FUNC_GPIO &pcfg_output_high>,//usb_hub_enable//usb-switch<3 RK_PC1 RK_FUNC_GPIO &pcfg_output_high>,<3 RK_PC2 RK_FUNC_GPIO &pcfg_output_low>;};};文件系統配置和更改
刪掉中間文件: buildroot/output/rockchip_rv1126_rv1109_xxx/target/etc/init.d/S45connman buildroot/output/rockchip_rv1126_rv1109_xxx/target/usr/bin/connmanctl buildroot/output/rockchip_rv1126_rv1109_xxx/target/usr/sbin/connmand app/netserver/main.c main函數直接return不執行buildroot/output/rockchip_rv1126_rv1109/target/etc/init.d/S36load_rv1109_wifi_modules //注釋掉下面這兩行 printf "load wifi modules: " #insmod /system/lib/modules/"8188fu.ko" #[ $? = 0 ] && echo "OK" || echo "FAIL" #注etc/init.d/目錄的文件在系統啟動時會依次被調用,所以WiFi的驅動會被自動加載,這里我們注釋掉它使用自己的wifi驅動根目錄external/下添加softapDemo.tgz.gz main.c下 +++ main.c/static char softap_name[64] = "wlan0"; +++ main.c/wlan_accesspoint_start(apName, apPassword); --- main.c/eth_accesspoint_start(); --- main.c/iftables_usb0_to_eth0(wan,lan); package/rockchip/Config.in 添加:source "package/rockchip/softap/Config.in"根目錄 make menuconfig BR2_PACKAGE_RKWIFIBT_RTL8188FU =y # 選擇對應的WiFi型號 其實也可不選我們不用原廠wifi驅動 BR2_PACKAGE_IPC_DAEMON = n BR2_PACKAGE_NETSERVER = n BR2_PACKAGE_CONNMAN = n BR2_PACKAGE_DHCPCD = y BR2_PACKAGE_SOFTAP=y make savedefconfig make netserver-dirclean make connman-dirclean make ipc-daemon-dirclean make softap-dirclean make rkwifibt-dirclean #清除掉之前的 ./build.sh rootfs #編譯文件系統 注意: 編譯好看看buildroot/output/rockchip_rv1126_rv1109/target/etc/init.d/S36load_rv1109_wifi_modules 有沒被覆蓋,覆蓋掉的話需要重新注釋驅動編譯
修改配置
SDK\extern\rtl8188FU_linux_v5.11.5-13-g2482755ff.20210615\Makefile
make clean && make;
wifi工具編譯
libnl庫編譯
mkdir __install; ./configure CC=arm-linux-gnueabihf-gcc AR=arm-linux-gnueabihf-ar --prefix=$(pwd)/__install --host=arm-linux-gnueabihf; make && make install;openssl編譯
mkdir __install; ./config no-asm no-shared --cross-compile-prefix=arm-linux-gnueabihf- --prefix=$(pwd)/__install 去掉CFLAG參數中的 -m64 ,SHARED_LDFLAGS參數中的 -m64 make && make installwpa_supplicant編譯
cd SDK/extern/wifi_tool/wpa_supplicant_8_kk_4.4_rtw_r25669.20171213/wpa_supplicant; cp defconfig .config; #Makfefile中添加libnl和禮包ssl的路徑 CC=arm-linux-gnueabihf-gcc CFLAGS += -I../../libnl-1.1.4/__install/include CFLAGS += -I../../openssl-1.0.2g/__install/include LIBS += -L../../libnl-1.1.4/__install/lib -lnl -lm -lpthread LIBS += -L../../openssl-1.0.2g/__install/lib -lssl -lcrypto -ldl #編譯 make clean && make; #生成wpa_supplicant和wpa_cli arm-linux-gnueabihf-strip wpa_cli arm-linux-gnueabihf-strip wpa_supplicanthostapd編譯(不過我沒用到,調不通,用的是rk自帶的)
cd SDK/extern/wifi_tool/wpa_supplicant_8_kk_4.4_rtw_r25669.20171213/hostapd; cp defconfig .config; #Makfefile中添加libnl和禮包ssl的路徑 CC=arm-linux-gnueabihf-gcc CFLAGS += -I../../libnl-1.1.4/__install/include CFLAGS += -I../../openssl-1.0.2g/__install/include LIBS += -L../../libnl-1.1.4/__install/lib -lnl -pthread LIBS += -L../../openssl-1.0.2g/__install/lib -lssl -lcrypto -ldl #編譯 make clean &&& make;開機運行腳本測試WIFI—STA模式
開機后可以用lsusb命令看看是否有wifi節點(ID為下圖:即為wifi模塊)
運行腳本
./wifi_test.sh
然后板子就可以通過wifi ping外網了
運行腳本測試WIFI-AP模式
./hostapd.sh
killall wpa_supplicant sleep 2 ifconfig wlan0 0.0.0.0 ifconfig wlan0 down killall hostapd && killall udhcpd softapDemo然后可以用筆記本嘗試連接熱點ping板子wlan0 ip是否能通
全部資源下載
點這點這~~~~
總結
以上是生活随笔為你收集整理的[基于瑞芯微RV1126调试RTL8818FU WIFI模组支持STA和AP模式]的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 基于Android的相关毕业设计和论文
- 下一篇: IEEE期刊/会议模板