找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 5577|回复: 2

qsdk ipq4018 上面使用802.11r wifi 漫游功能

[复制链接]
发表于 2018-9-7 18:17 | 显示全部楼层 |阅读模式
openwrt版本 Chaos Calmer ,无线驱动是qsdk的驱动,CPU是IPQ4018.

参考帖子:
https://www.chiphell.com/thread-1727517-1-1.html

https://www.reddit.com/r/openwrt/comments/515oea/finally_got_80211r_roaming_working/

http://www.hivmr.com/db/fz7amfsa8a1733x7j17k7c9jdj3119ps

一、添加package
默认的hostapd包
  1. hostapd-2016-10-02.tar.bz2
复制代码
在.config里面选了wpad以后,编译失败。

所以我升级hostapd到
  1. hostapd-2016-12-19-ad02e79d.tar.xz
复制代码
ps:中间遇到编译失败,我将src目录下的ap目录和utils目录直接放到hostapd-2016-12-19-ad02e79d.tar.xz中,再编译就没有出错。



添加 wpad-full版本
  1. CONFIG_PACKAGE_wpad=y
复制代码

如果原来有wpad-mini,需要先删除
  1. opkg update
  2. opkg remove wpad-mini
  3. opkg install wpad
复制代码



二、修改wireless配置文件

  1. config wifi-device 'wifi0'
  2.         option type 'qcawifi'
  3.         option channel 'auto'
  4.         option country 'CN'
  5.         option hwmode '11g'
  6.         option htmode 'HT20'

  7. config wifi-iface
  8.         option device 'wifi0'
  9.         option network 'lan'
  10.         option mode 'ap'
  11.         option ssid 'openwrt_2g_admin'
  12.         option encryption 'psk2'
  13.         option key 'openwrt123456'

  14. config wifi-device 'wifi1'
  15.         option type 'qcawifi'
  16.         option channel '157'
  17.         option hwmode '11ac'
  18.         option country 'CN'
  19.         option txpower '10'
  20.         option htmode 'HT40'

  21. config wifi-iface
  22.         option device 'wifi1'
  23.         option network 'lan'
  24.         option mode 'ap'
  25.         option ssid 'openwrt_5g_admin'
  26.         option encryption 'psk2'
  27.         option key 'openwrt123456'
  28.         option rsn_preauth '1'
  29.         option ieee80211r '1'
  30.         option mobility_domain 'e612'
  31.         option pmk_r1_push '1'
  32.         option nasid 'kuaiyue'
  33.         option r1_key_holder 'C0F036BBCCE0'
  34.         list r0kh '00:11:22:BB:CC:E0,kuaiyue,8a7fcc966ed0691ff2809e1f38c16996'
  35.         list r0kh '00:11:22:AA:BB:CF,kuaiyue,8a7fcc966ed0691ff2809e1f38c16996'
  36.         list r1kh '00:11:22:BB:CC:E0,00:11:22:BB:CC:E0,8a7fcc966ed0691ff2809e1f38c16996'
  37.         list r1kh '00:11:22:AA:BB:CF,00:11:22:AA:BB:CF,8a7fcc966ed0691ff2809e1f38c16996'
复制代码

list r0kh 第一个ap的ath1的mac地址,nasid,128位密钥
list r0kh 第二个ap的ath1的mac地址,nasid,128位密钥
list r1kh 第一个ap的ath1的mac地址,第二个ap的ath1的mac地址,128位密钥

三、修改hostapd.sh文件
hostapd.sh这个脚本在openwrt系统下的路劲
  1. /lib/wifi/hostapd.sh
复制代码


在源码里面的路劲
  1. qsdk/qca/feeds/qca/net/qca-hostap/files
复制代码

无线启动的时候,通过hostapd.sh脚本,提取wireless配置文件中的option生成hostapd需要的配置文件
/var/run/hostapd-ath0.conf
/var/run/hostapd-ath1.conf

默认通过hostapd.sh生成的hostapd-ath0.conf配置里面的r0kh,r1kh都不对,所以需要修改hostapd.sh里面生成r0kh,r1kh的地方
  1. Index: files/hostapd.sh
  2. ===================================================================
  3. --- files/hostapd.sh
  4. +++ files/hostapd.sh
  5. @@ -681,14 +681,28 @@
  6.                 config_get ft_over_ds "$vif" ft_over_ds
  7.                 [ -n "$ft_over_ds" ] && append "$var" "ft_over_ds=$ft_over_ds" "$N"

  8. -               config_get nasid2 "$vif" nasid2
  9. -               config_get ap_macaddr "$vif" ap_macaddr
  10. -               config_get ap2_macaddr "$vif" ap2_macaddr
  11. -               config_get ap2_r1_key_holder "$vif" ap2_r1_key_holder
  12. -
  13. -               append "$var" "r0kh=$ap_macaddr $nasid $kh_key_hex" "$N"
  14. -               append "$var" "r0kh=$ap2_macaddr $nasid2 $kh_key_hex" "$N"
  15. -               append "$var" "r1kh=$ap2_macaddr $ap2_r1_key_holder $kh_key_hex" "$N"
  16. +               #config_get nasid2 "$vif" nasid2
  17. +               #config_get ap_macaddr "$vif" ap_macaddr
  18. +               #config_get ap2_macaddr "$vif" ap2_macaddr
  19. +               #config_get ap2_r1_key_holder "$vif" ap2_r1_key_holder
  20. +               config_get r0kh_list "$vif" r0kh
  21. +               config_get r1kh_list "$vif" r1kh
  22. +
  23. +               for i in $(seq 1 10);do
  24. +                       r0_list=`echo $r0kh_list | cut -d ' ' -f $i`
  25. +                       r0_list_tmp=${r0_list//,/" "}
  26. +
  27. +                       [ -n "$r0_list_tmp" ] && append "$var" "r0kh=$r0_list_tmp" "$N"
  28. +
  29. +                       r1_list=`echo $r1kh_list | cut -d ' ' -f $i`
  30. +                       r1_list_tmp=${r1_list//,/" "}
  31. +
  32. +                       [ -n "$r1_list_tmp" ] && append "$var" "r1kh=$r1_list_tmp" "$N"
  33. +
  34. +                       #append "$var" "r0kh=$ap_macaddr $nasid $kh_key_hex" "$N"
  35. +                       #append "$var" "r0kh=$ap2_macaddr $nasid2 $kh_key_hex" "$N"
  36. +                       #append "$var" "r1kh=$ap2_macaddr $ap2_r1_key_holder $kh_key_hex" "$N"
  37. +               done
  38.         fi

  39.         config_get_bool wnm_sleep_mode "$vif" wnm_sleep_mode
复制代码


最后两个ap的无线名称和密码要一直就可以实现漫游了。
我的恩山、我的无线 The best wifi forum is right here.
发表于 2018-9-7 18:58 来自手机 | 显示全部楼层
技术性格帖子,学习,谢谢
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2018-9-7 19:06 | 显示全部楼层
感谢楼主分享。...
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-4-20 01:55

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com 举报电话:0519-86695797

快速回复 返回顶部 返回列表