RT3070 在S3C2440平台上的移植
RT3070 在S3C2440平台上的移植
1.从官方下载原驱动程序
http://www.ralinktech.com/en/04_support/license.php?sn=5016
然后把驱动代码放到/home/tango/code/linux-2.6.32.2/drivers/net/wireless/目录下
其中/home/tango/code/linux-2.6.32.2 是 linux2.6.32.2内核源码路径。
2.在rt3070驱动程序根目录的Makefile文件的修改
2.1.定义芯片类型及头文件包含路径以及选择硬件运行平台
CHIPSET = 3070
C_INCLUDE_PATH ?= $(PWD)/include
PLATFORM = SMDK
2.2修改LINUX_SRC及CROSS_COMPILE参数
ifeq ($(PLATFORM),SMDK)
#LINUX_SRC = /home/bhushan/itcenter/may28/linux-2.6-samsung
#CROSS_COMPILE = /usr/local/arm/4.2.2-eabi/usr/bin/arm-linux-
#以下设置根据自己的放置位置及编译具体路径设置
LINUX_SRC = /home/tango/code/linux-2.6.32.2
CROSS_COMPILE = /opt/FriendlyARM/toolschain/4.4.3/bin/arm-linux-
endif
3.在os/linux/config.mk 文件中
定义
CHIPSET = 3070
CROSS_COMPILE ?=/opt/FriendlyARM/toolschain/4.4.3/bin/arm-linux-
修改以下两个选项
# Support Wpa_Supplicant
HAS_WPA_SUPPLICANT=y
# Support Native WpaSupplicant for Network Maganger
HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=y
然后再make即可生成rt3070sta.ko文件。
把RT2870STA.dat文件复制到etc/Wireless/RT2870STA 目录下
若编译中出现
/home/arm443/code/linux-2.6.32.2/drivers/net/wireless/rt3070/os/linux/../../chips/rtmp_chip.c:470: error: implicit declaration of function 'RT33xx_Init'
make[2]: *** [/home/arm443/code/linux-2.6.32.2/drivers/net/wireless/rt3070/os/linux/../../chips/rtmp_chip.o] Error 1
make[1]: *** [_module_/home/arm443/code/linux-2.6.32.2/drivers/net/wireless/rt3070/os/linux] Error 2
make[1]: Leaving directory `/home/arm443/code/linux-2.6.32.2'
make: *** [LINUX] Error 2
错误,则把/chips/rtmp_chip.c中的470行代码给屏蔽掉,然后再编译。iwlist scan 搜索网络
ifconfig eth0 down 关闭有线网络
insmod rt3070sta.ko 动态加载rt3070驱动
ifconfig ra0 192.168.1.231 up 设置无线网线的ip
route add default gw 192.168.1.1 添加网关
wpa_supplicant -Dwext -i ra0 -c /etc/wpa_supplicant.conf -dd & 连接无线路由,因为现大部分是wpa、wpa2加密的,所以使用wpa_supplicant 工具。
在开发板终端建立无线网卡运行目录:
mkdir –p /var/run/wpa_supplicant
ctrl_interface=/var/run/wpa_supplicant
network={
ssid="aaa 001"
scan_ssid=1
key_mgmt=WPA-EAP WPA-PSK IEEE8021X NONE
pairwise=TKIP CCMP
group=CCMP TKIP WEP104 WEP40
psk="aaa2007"
}
另:若驱动移植好后,用ifconfig -a可以看到这时多了一组ra0设备,它就是无线网卡的相关信息。
如果看到的是wlan0而不是ra0 的话,可能是在与rt2800驱动冲突导致的,在linux内核中让以下几项不编译进内核中。
--- Ralink driver support │ │
│ │ < > Ralink rt2500 (USB) support │ │
│ │ < > Ralink rt2501/rt73 (USB) support │ │
│ │ < > Ralink rt2800 (USB) support │ │
│ │
参考网站:
http://blog.csdn.net/armeasy/article/details/6252389
http://www.gentoo.org/doc/zh_cn/handbook/hb-net-wireless.xml
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述