Transplantation of USB Wifi module RT3070 driver and wifirt3070 driver on the tianembedded E9 Platform
Due to project work requirements, point-to-point and multi-point transmission of wifi must be implemented on the embedded E9 platform.
Wifi module chip: Reiling 3070 Chip
Embedded platform: E9 (ARM)
Cross-compilation environment: arm-none-linux-gnueabi
1. First download the driver for the Wi-Fi module
2. Cross-compile the driver
A. open the file after decompression of the driver file. If you need WPA and other functions, you can enable./OS/linux/config. mk for editing. If you do not need to directly go to step B
B. Open the Makefile in the root directory of the driver file and modify it. First, change CHIPSET to 3070.
Then configure the cross-compilation environment. The default PLATFORM is PC. we modify the PC Code as follows:
ifeq ($(PLATFORM),PC)# Linux 2.6LINUX_SRC = /opt/E9_CD/Linux/linux_E9_3.0.35_for_Linux# Linux 2.4 Change to your local setting#LINUX_SRC = /usr/src/linux-2.4LINUX_SRC_MODULE = /opt/E9_CD/Linux/linux_E9_3.0.35_for_Linux/drivers/net/wireless/CROSS_COMPILE = /opt/Embedsky/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/tq-linaro-toolchain/bin/arm-none-linux-gnueabi-endif
Save and run sudo make
Linux_E9_3.0.35 is the directory where the Linux kernel source code is located.
3. After compilation, copy RT2870STA. dat and rt30870.sta. ko in the root directory to the board.
mkdir –p /etc/Wireless/RT2870STA/cp RT2870STA.dat / etc/Wireless/RT2870STA/cp rt3070sta.ko /usr
4. Load the driver
insmod /usr/rt3070sta.ko
5. Then, you can see through ifconfig-a that the system has correctly identified the NIC, named ra0.
6. Start the NIC ifconfig ra0 up and see the data output. The port is successfully transplanted.
Certificate ---------------------------------------------------------------------------------------------------------------------------------------------------
Possible problems:
1 rtmp_chip.c: 470: error: implicit declaration of function 'rt33xx _ init'
Solution: comment out the RT33xx_Init (pAd) of line 470th in rtmp_chip.c under the chips directory)
2. Problems with insmod
Solution: Generally, the problem is that the kernel version used in the Board kernel is inconsistent with that used during cross-compilation. You can view the Board kernel version uname-a and modinfo rt3070sta. ko: Check the generated driver version to see if it is consistent. I encountered this problem and solved it one morning. I found that the version number was armv5 and armv7, and finally compiled the linux source code (set the cross-compilation environment and run the build. sh), and then compile the wifi module. When compiling the kernel, pay attention to setting the cross-compiling environment.
Related blog recommendations:
1 http://blog.chinaunix.net/uid-28599023-id-3483821.html
2 http://www.linuxidc.com/Linux/2011-03/33483.htm
3 http://blog.csdn.net/zhuqing_739/article/details/6259686 #
Usb interface wifi module 3070 Driver Installation instructions
This is the driver step for installing the NIC.
1. decompress the package and go to the directory you just decompressed.
2. Select the corresponding system kernel version and source file path before executing the compilation driver.
3. Configure your GCC compiler (LD does not know what it is) and then configure two parameters as y (YES should be selected by default)
4. Compile the driver To fix "error: too few arguments to function using iwe _ stream_add_event"
This should be a compilation error display and write the log
5. Copy the compiled driver to/etc/Wireless/RT2870STA/RT2870STA. dat.
6. Add the driver to the system add-on and activate the NIC.
7. Uninstall the driver (stop the NIC and then delete the driver)
Arm Development Board, wifi driver transplantation, I use the friendly arm mini2440 board, kernel linux26322, wifi is rt3070
Check whether the wireless network interface wlan0 is up.
# Ifconfig-a (view the status of all network interfaces)
If wlan0 is down:
# Ifconfig wlan0 up
Now you can search for the AP.
# Iwlist wlan0 scan