rtl8723BS网卡linux,关于 RTL8723BS 与此同时开启 STA/AP 模式

关于 RTL8723BS 同时开启 STA/AP 模式

最近接到一个调试 wifi 驱动的任务,使用的是 rtl8723bs 芯片组。要求是让无线设备工作在 station 模式的时候同时开启一个 ap 热点。简单来讲就是连接其他 wifi 的同时发出一个 wifi 供其他设备使用。保证都能上网。

拿到这个项目,我首先就想到了 github 上的一个开源项目 create_ap 。这是一个1000多行的 bash 脚本。它能够在无线网卡支持的时候实现上述的要求。当时,我想能不能直接那 create_ap 过来使用,如果可以,那么就太方便了。

然而测试了一下,果然不行。。。

折腾了一段时间后找到了一条简单的出路。如下:

获取到一份完整的 RTL8723BS 驱动代码

阅读了官方文档( Quick_Start_Guide_for_SoftAP.pdf ) 才发现厂商已经编写了支持 sta/ap 模式的驱动代码,只是默认没有使用。按照文档说明,我已修改了代码。

编译驱动模块 ( 以 x86_64 为例 )

修改 Makefile 如下部分

ifeq ($(CONFIG_PLATFORM_ANDROID_X86), y)

EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN

SUBARCH := $(shell uname -m )

ARCH := $(SUBARCH)

CROSS_COMPILE := /bin/gnu-unknow-

KSRC := /lib/modules/4.1.8-yocto-standard/build/

MODULE_NAME :=wlan

找到这几行,相应修改 ARCH (平台架构) , CROSS_COMPILE (编译器位置) , KSRC (内核模块位置) 。

然后直接

$ make

编译将得到 wlan.ko

加载驱动模块

如果已经加载了 RTL8723BS 的驱动模块,请先 # rmmod rtl8723bs

# insmod wlan.ko

成功加载模块后,执行 $ ip link

即可看到两个网口: wlan0 , wlan1

其中任意一个网口都可以做 station 模式,或 ap 模式

使用 wpa_supplicant + hostapd 测试模块是否工作正常

开启 STATION 模式 ( wlan0 )

# ip link set wlan0 up // 启用网口

# wpa_passphrase ssid_name wifi_passwd > wifi.conf // 生成 wpa_supplicant 配置文件

# wpa_supplicant -D wext -i wlan0 -c wifi.conf -B // 连接设定的 wifi 并运行在后台

# dhclient wlan0 // 获取ip (will take a while)

# ip addr // wlan0 已经获取到 ip

同时开启 AP 模式 ( wlan1 )

# ip link set wlan1 up

# ip a add 10.0.0.1/24 dev wlan1 //配置 wlan1 的ip

# killall dnsmasq && cp egg_wifi/dnsmasq.conf /etc && dnsmasq //使用 dnsmasq 服务

# ./hostapd egg_wifi/hostapd.conf & //使用源码中的 hostapd (需要自行编译) 开启一个热点

需要使用给出的 hostapd ,配置文件可自行修改

不出意外将会放出 SSID 为 mark 的 wifi 热点,如果连接该热点无法获取 ip ,可能是 dnsmasq 的问题,可尝试使用 dhcpd 。

两个配置文件

dnsmasq.conf

interface=wlan1

dhcp-range=wlan1,10.0.0.2,10.0.0.9,255.255.255.240,12h

dhcp-authoritative

address=/#/10.0.0.1

server=/google/8.8.8.8

hostapd.conf

interface=wlan1

ieee80211n=1

ssid=mark // wifi 热点名称

hw_mode=g

channel=7

macaddr_acl=0

auth_algs=1

ignore_broadcast_ssid=0

wpa=2

wpa_passphrase=12345678 // wifi 密码

wpa_key_mgmt=WPA-PSK

wpa_pairwise=TKIP

rsn_pairwise=CCMP

ctrl_interface=/var/run/hostapd

申明:原创文章,转载请注明出处。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值