Linux WiFi porting
wpa_supplicant-0.7.3
The WIFI server terminal program Wpa_supplicant contains two main executable tools:
Wpa_supplicant and WPA_CLI.
Wpa_supplicant is the core program,
Its relationship with WPA_CLI is the relationship between service and client: Run Wpa_supplicant in the background, use WPA_CLI to search, set up, and connect to the network. Wireless Card driver dpo_rt5572_linuxsta_2.6.1.3_20121022 compile NIC driver 1: Modify the makefile file of the extracted directory set the "MODE = STA" Set "TARGET = LINUX" Ifeq ($ (P Latform), xxxxx)//can customize the platform name linux_src: = LINUX//linux Directory cross_compile = arm-linux-//Cross compile ENDIF 2: Modify Os/linux/config.mk File Has_wpa_supplicant=y has_native_wpa_supplicant_support=y ifeq ($ (PLATFORM), xxxxx) Extra_cflags: =-d__kernel__-I$ ( Rt28xx_dir)/include \-i$ (linux_src)/include \-wall-wstrict-prototypes-wno-trigraphs \-o2-fno-strict-aliasing- Fno-common \-uarm-fno-common-pipe \-d__linux_arm_arch__=7 \//Match actual platform-march=armv7-a-wa,\//CPU model-DMODVERSIO NS \ $ (wflags) export Export Extra_cflags endif 3: Compilation encounters the following issue: Error:unknown field ' Private ' specified in initializer/os/ Linux/sta_ioctl.c:2386:2: Warning:initialization from incompatible pointer type/os/linux/sta_ioctl.c:2387:2: error: Unknown field ' num_private ' specified in Initializer/os/linux/sta_ioctl.c:2387:2: Warning:excess elements in struct Initializer/os/linux/sta_ioctl.c:2387:2: Warning: (near initialization for ' Rt28xx_iw_hand Ler_def ')/os/linux/sta_ioctl.c:2388:2: Error:unknown field ' Private_args ' specified in Initializer/os/linux/sta_ ioctl.c:2388:26:warning:excess elements in struct initializer/os/linux/sta_ioctl.c:2388:26:warning: (near Initialization for ' rt28xx_iw_handler_def ')/os/linux/sta_ioctl.c:2389:2: Error:unknown field ' Num_private_args ' specified in Initializer/os/linux/sta_ioctl.c:2389:2: warning:excess elements in struct initializer/os/linux/sta_ Ioctl.c:2389:2: Warning: (near initialization for ' Rt28xx_iw_handler_def ') os/linux/. /.. /OS/LINUX/STA_IOCTL.O] Error 1 can be resolved in the following way: Enter the Linux kernel #make menuconfig to select Device drivers==> Network deivce support==& Gt Wireless lan==> <*> USB ZD1201 based Wireless device support, compile to sysctl -w coherent_pool= kernel parameter ! 0100 0100 0000 0000 0000 0000 0000 0000 4 x x 16 x x: View detailed information about the wireless card Cat/proC/net/wireless ifconfig ra0 up report the following error Rtmpasicloadfirmware:ver 21/21, sum Cdf7/cdf7, Mac cdf72100 Ifconfig:ioctl 0x8914 Failed:operation not permitted wireless_tools.29 Wireless card tool, mainly used to obtain the status information of the wireless card. Insmod rt5572sta.ko RTUSB init rt2870---> Background run program wpa_supplicant-dwext-c/etc/wpa_supplicant.conf-ira0 PLATFORM = BRO ADCOM7252D1 Read Network file #define PROC_NET_WIRELESS "/proc/net/wireless" need to copy the following files to the/etc/wireless/rt2870sta directory RT2870STA.dat RT2870STACard.dat rt2870.bin configuration file/etc/wpa_supplicant.conf inside the content is ctrl_interface=/var/run/wpa_supplicant ap_scan=1 Plug in the USB WiFi report below error # Insmod Rt5572sta.ko RTUSB init rt2870---> usbcore:registered new interface Driver rt2870 # USB 1- 1:new High-speed USB device number 2 using EHCI-BRCM error:256 KiB atomic DMA coherent pool is too small! Increase it with coherent_pool= kernel parameter! Ifconfig:ioctl rtmpasicloadfirmware:ver 21/21, sum Cdf7/cdf7, Mac cdf72100 0x8914 failed:operation not permitted [NetMg Rwifi.cpp:558]cmd (ifconfig ra0 up) RET 2[netmgrwifi.cpp:562]iret=27 rtmpasicloadfirmware:ver 21/21, sum Cdf7/cdf7, Mac cdf72100 Could not set interface RA0 FL Ags:operation not permitted Failed to initialize driver interface [Netmgrwifi.cpp:599]waitfor_wpasupplicant_start Failed kernel parameter Sysctl-a method sysctl-w parameter name = value VI./ARCH/ARM/MM/DMA-MAPPING.C early_param ("Coherent_pool", Early_c Oherent_pool); #define Default_dma_coherent_pool_size sz_150k will sz_150k changed to sz_2m, change this parameter is OK
Linux WiFi porting