本帖最后由 hello_limin 于 2018-10-11 11:45 编辑
开源无线驱动已经日臻完美,请大家移步到我的新帖子里阅览交流,谢谢
==================== ==============================
| || |
| |
感谢大神 @大茶园丁
核心内容已经在上述帖子中给出,我只是歇歇自己调试遇到的问题,以作总结之用。
我是纯小白,以前从没有做OpenWrt的移植过程
第一步:
前言
机缘巧合,最近想整一下OpenWrt,手头也没合适的开发板,那么就地取材,选择了百度音乐盒作为测试板子。
根据网上的教程 SVN 下载最新的版本,这里用的是trunk,版本号为 :43790
至于怎么拉代码,准备工作可以 参考 2 http://lotors.me/2014/08/16/opcompilepro/ 基础编译的部分就可以了
注:这一部分 (参考2)第一次make 之后 会下载很多的包,很多地方可能被墙掉了会报错,根据提示信息,一般手动下载之后拷贝到trunk/dl/下一般都能编译通过。
编译完成之后就是移植RT2860v2驱动了 具体步骤参考 参考1 。
第一步下载RT2860v2 驱动 这一部分可以通过参考1的网址下载 如果有GitHub的客户端可以点击右下角的 Clone in Desktop 如果没有就点击Download ZIP
第二步:拷贝文件和配置
将下载内容的 ralink 文件夹直接拷贝到
trunk/build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/linux-ramips_mt7620/linux-3.14.26/drivers/mtd 下,版本不同可能路径不完全相同 请自行更改,
在------/driver/mtd文件加下打开Kconfig 在文件的最后加入
source "drivers/mtd/ralink/Kconfig"
打开Makefile 在开头的地方加入
obj-$(CONFIG_MTD_RALINK) += ralink/
将rt2860v2 和rt2860v2_ap 两个文件夹拷贝到
trunk/build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/linux-ramips_mt7620/linux-3.14.26/drivers/net/wireless下,
在/net/wireless 下打开Kconfig文件,在最后的地方加入
source "drivers/net/wireless/rt2860v2_ap/Kconfig"
打开Makefile 在开始的位置加入
obj-$(CONFIG_RT2860V2_AP) += rt2860v2_ap/
第三步:配置内核
在......../trunk 目录下 执行make kernel_menuconfig 具体的配置如下:
A: Device Driver --> <\*> Memory Technology Device (MTD) support
---> Ralink Flash Type support
---> [\*] Ralink MTD support
B:Device Driver -->
[\*] Network device support
---> [\*] Wireless LAN
---><\*> Ralink RT2860 802.11n AP support
[\*] LED Support
[ ] WSC (WiFi Simple Config)
[\*] LLTD (Link Layer Topology Discovery Protocol)
[\*] WDS
[\*] MBSSID
[\*] New MBSSID MODE
[\*] AP-CLient Support
[\*] MAC Repeater Support
[ ] IGMP snooping
[ ] NETIF Block
[ ] DFS
[\*] Carrier Detect
[ ] DLS ((Direct-Link Setup) Support
[ ] IDS (Intrusion Detection System) Support
[\*] CoC Support
[ ] Memory Optimization
[ ] Video Turbine support
[ ] 802.11n Draft3
[ ] Adjust Power Consumption Support
[ ] Single SKU
Choose Power Design (Internal PA and Internal LNA) --->
[ ] TSSI Compensation
[ ] Temperature Compensation
退出保存后 直接执行 make V=99
第四步:将编译成功的固件刷到板子中后,ifconfig ra0 会显示出ra0的设备信息,表示我们的驱动已经成功,并且启动了但是还是没有wifi 根据参考1 其提供了一个rt2860v2.sh这个文件要放到板子的/lib/wifi下,启动的时候会自动加载wifi驱动并且启动wifi。
这个shell 我不清楚直接拷贝到/lib/wifi 下是否可用,暂时没有验证。
我的做法是建立一个package的包,在编译的时候将这shell拷贝到/lib/wifi下。
建立package 的方法参考:
http://wenku.baidu.com/link?url=sj-XAHOHWcPaEvD7wIom4V9nYpURztSso9LxP1HXEPgvhSan7mf7_IbTPPxeAvVQ0xIdJj3ghuP5kOxDWQhXRmVOU0z0WuRZMJzL6KY1PDG
具体方法
先进到trunk/package下,
mkdir MyRT2860
cd MyRT2860
将rt2860v2.sh拷贝到当前目录
mkdir src
具体的结构如下
然后就是建立两个Makefile 在MyRT2860 下的Makefile 如下
include $(TOPDIR)/rules.mk
PKG_NAME:=MyRT2860
PKG_VERSION:=2015-1-3
PKG_RELEASE:=1
PKG_BUILD_DIR:= $(BUILD_DIR)/$(PKG_NAME)
include $(INCLUDE_DIR)/package.mk
define Package/$(PKG_NAME)
SECTION:=utils
CATEGORY:=Utilities
TITLE:=MyRT2860 -- wifi general program
MAINTAINER:=handawei
endef
define Package/$(PKG_NAME)/description
wifi general program
endef
define Build/Prepare
mkdir -p $(PKG_BUILD_DIR)
$(CP) ./src/* $(PKG_BUILD_DIR)/
endef
define Package/MyRT2860/install
$(INSTALL_DIR) $(1)/lib/wifi $(1)/bin
$(INSTALL_DATA) ./rt2860v2.sh $(1)/lib/wifi
$(INSTALL_BIN) $(PKG_BUILD_DIR)/MyRT2860 $(1)/bin
endef
$(eval $(call BuildPackage,MyRT2860))
进入src文件夹
cd src
建立一个Makefile如下
OBJECTS = MyRT2860
all : $(OBJECTS)
PKG_NAME=docs
MyRT2860: main.o
$(CC) $(LDFLAGS) $^ -o $@
main.o:main.c
$(CC) $(CFLAGS) -c $<
.PHONY:clean
clean:
@-rm *.o MyRT2860
完成保存。为了配合这个Makefile 建立一个main.c 这文件中是一个空函数
void main()
{
}
不然编译的时候会报错。
完成以上内容 回到trunk 目录下 make menuconfig
Utilities-------->
<*>MyRT2860.................................................RT2860--wifi general program
退出保存 编译之后就能够正常启动了
========================
相关文件打包下载,AP & SoC wireless driver update to 2.7.2.0.zip
|