ECR6600U USB转wifi交叉编译

一:下载源码

        ecr6600uusb转wifi源码(在内核版本5.10上已验证)资源-CSDN文库

二:适配平台

        如果下载的是官方源码,需要适配自己的平台,下面以瑞芯微芯片rv1103为例

        1:解压源码,修改Makefile 增加工具链及内核路径如下

###################### Platform Related #######################
CONFIG_PLATFORM_RTK_RTD2851D = n
CONFIG_PLATFORM_MTK_MT9255 = n
CONFIG_PLATFORM_RASPBERRY = n
CONFIG_PLATFORM_X86 = n
CONFIG_PLATFORM_AML_T963 = n
CONFIG_PLATFORM_INGENIC = n
CONFIG_PLATFORM_CVITEK_CV1821 = n
CONFIG_PLATFORM_RV1103 = y
###############################################################
ifeq ($(CONFIG_PLATFORM_RV1103), y)
export KERNELDIR=/home/hfzuo/rock/luckfox-pico/sysdrv/source/kernel
export KBUILDDIR=/home/hfzuo/rock/luckfox-pico/sysdrv/source/kernel
CROSS_COMPILE = /home/hfzuo/rock/luckfox-pico/tools/linux/toolchain/arm-rockchip830-linux-uclibcgnueabihf/bin/arm-rockchip830-linux-uclibcgnueabihf-
ARCH = arm
# EXTRA_CFLAGS += -Wno-missing-braces
endif

        2:make product=6600u  编码源码

三:解决编译报错问题

        错误1:fatal error: asm/types.h: No such file or directory

        解决办法:进入到内核目录,在makefile 里直接定义CROSS_COMPILE 和 ARCH ,问题产生原因是由于ecr6600u的makefile里的CROSS_COMPILE和ARCH变量没有传递给内核makefile

        错误2:error: missing braces around initializer [-Werror=missing-braces]

                     error: unrecognized command line option "-Wno-misleading-indentation" [-Werror]

        解决办法:Makefile 里对应增加  EXTRA_CFLAGS += -Wno-missing-braces

        错误3:error:uses symbol kernel_write from namespace VFS_internal_I_am_really_a_filesystem_and_am_NOT_a_driver, but does not import it.

        解决办法:在ecr6600u 驱动里搜索使用了kernel_write的文件 ,在文件中添加 MODULE_IMPORT_NS(VFS_internal_I_am_really_a_filesystem_and_am_NOT_a_driver);

        

        以上错误和工具链及内核版本相关,并不一定都有这些问题

四:内核配置cfg80211 

        

五:交叉编译wpa_supplicant 和hostapd 

        参考博客:mt7663 usb转wifi交叉编译_mt7663s芯片-CSDN博客

        需要注意的是验证通过的wpa_supplicant和 hostapd的版本是2.6 ,其他版本并不能保证能配网成功

六:加载驱动

        1:将编译生成的cfg80211.ko ,wlan_ecr6600u_usb.ko 及wpa_supplicant,hostapd 拷贝到开发板

        2:在ecr6600u源码里将升级固件firmware/ECR6600U_transport.bin 和配置文件 wifi_ecr6600u.cfg拷贝到开发板/lib/firmware/ 文件夹下(没有这个文件夹则新建)

        3:在开发板上加载驱动 insmod cfg80211.ko   insmod wlan_ecr6600u_usb.ko 

七:配置AP模式

        1:在开发板上新建ecr_hostapd_2G.conf 内容如下:

interface=wlan0
ctrl_interface=/var/run/hostapd
ssid=mt_wifi
channel=6
wpa=2
wpa_passphrase=12345678
#bridge=br0
driver=nl80211
beacon_int=100
hw_mode=g
ieee80211n=1
wme_enabled=1
ht_capab=[SHORT-GI-20][SHORT-GI-40][HT40+]
wpa_key_mgmt=WPA-PSK
wpa_pairwise=CCMP
max_num_sta=8
wpa_group_rekey=86400

        2:在开发板上新建/var/run/hostapd 文件夹  mkdir    /var/run/hostapd   

        3:  ifconfig wlan0 192.168.1.100 up

        4:udhcpd wlan0 (分配IP)没有udhcpd则需要自己交叉编译,用来自动分配IP,如果不需要自动分配IP服务,则此步骤可省略

        5:hostapd ecr_hostapd_2G.conf -B  即可生成名字为mt_wifi,密码为 12345678的热点,可用手机或PC连接测试

八:配置sta模式

        1:新建wpa_supplicant.conf 如下

ctrl_interface=/var/run/wpa_supplicants
network={
ssid="hfzuo"
psk="88888888"
proto=WPA2
key_mgmt=WPA-PSK
pairwise=CCMP
group=CCMP
}

        2:mkdir /var/run/wpa_supplicants

        wpa_supplicant  -i wlan0 -c wpa_supplicant.conf  -B

        3:udhcpc -i wlan0 &  请求路由器分配IP,即可连上名字为hfzuo 密码为88888888的wifi热点了,没有udhcpc需要自己交叉编译,此步骤不可省略

  • 15
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值