热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

LinuxUbuntu下Atheros无线网卡5GHz工作频段破解

不同的国家和地区有不同的无线电管理规定(RegulatoryDomain),对于ISM5GHz频段的划分也有不同的准则。RegulatoryDomian有3大族,以美国为代表的FCC,以欧盟为代表的ETSI,以及日本再一次特立独行的TELEC(无论在蜂窝网还是WLAN,日本一直都是个怪异的存在)。中国采用ETSI规定,具体频段管理与欧盟有所不同。无线网卡驱动根据IS

不同的国家和地区有不同的无线电管理规定(Regulatory Domain),对于ISM 5GHz频段的划分也有不同的准则。
 
Regulatory Domian有3大族,以美国为代表的FCC,以欧盟为代表的ETSI,以及日本再一次特立独行的TELEC(无论在蜂窝网还是WLAN,日本一直都是个怪异的存在)。中国采用ETSI规定,具体频段管理与欧盟有所不同。
 
无线网卡驱动根据ISO-3166 alpha2规定的国家代码(如美国US,中国CN,德国DE,韩国KR,日本JP),对网卡的工作频率进行管理。
 
高通Atheros在网卡驱动的公共部分加入了Regulatory Doamin管理的功能。针对销往不同国家的网卡产品,通过直接在网卡芯片的可擦写存储器(EEPROM)中写入相应的国家代码,驱动工作时读取该代码并开启相应的工作频段。

由于项目的需求,我们买了几张Atheros 93xx系列的无线网卡,支持2.4/5GHz双频段,但是很遗憾的是这批网卡是销往澳大利亚的,5GHz的中间一段不被支持。国家代码可以通过下列命令察看。
 
#dmesg | grep ath
 
#iwlist chan

尽管使用了iw工具来修改linux系统的Regulatory Domain管理部分的国家代码:
 
#iw reg set US
 
#iw reg get
 
#iwlist chan
 
但是由于EEPROM的限制,被屏蔽的频段总是无法开启。

为了开启尽可能多的5GHz频段,在没有直接修改EEPROM的方法的情况下,我只能修改破解驱动中关于频段管理的部分。Google 到reghack及其源代码<百度网盘>,但是作者所编译的程序是在采用MIPS或PowerPC架构的路由器上用的,在PC机上需要重新编译。

###网上Google到的reghack是针对路由器的,路由器的芯片通常是MIPS和PowerPC架构。
 ###而PC机是x86架构,所以下载的reghack.mips.elf程序不能在PC机上运行。
 ###我们需要根据reghack源代码在PC机上重新编译适用于x86架构的reghack破解程序。
 ###命令如下(-o参数制定编译输出的程序文件名称,可以随便自定义):
 root@linux: gcc reghack.c -o reghack
 
###gcc是linux自带的C语言编译器,g++则可以用来编译C++源程序。
 ###如果系统提示你这些命令不可用,请安装如下软件包
 sudo apt-get install build-essential
 
###安装的Ubuntu 12.04.4系统是linux 3.11内核,linux 3.7 内核开始加入了模块签名及验证机制。
 ###下面的破解过程虽然顺利进行,但重启之后破解的无线模块cfg80211.ko和ath.ko无法加载,网卡不能驱动。
 root@linux:/home/user# ./reghack /lib/modules/3.11.0-15-generic/kernel/net/wireless/cfg80211.ko
 Patching @ 0x0004cf30: core world6 regdomain in cfg80211/reg.o
 root@linux:/home/user# ./reghack /lib/modules/3.11.0-15-generic/kernel/drivers/net/wireless/ath/ath.ko
 Patching @ 0x00002110: ath world regdomain with 5 rules in ath/regd.o
 Patching @ 0x000021a0: ath world regdomain with 4 rules in ath/regd.o
 Patching @ 0x00002220: ath world regdomain with 3 rules in ath/regd.o
 Patching @ 0x00002280: ath world regdomain with 3 rules in ath/regd.o
 Patching @ 0x000022e0: ath world regdomain with 4 rules in ath/regd.o
 
###为了解决这个问题,我们要降回到linux 3.2内核
 ###如果你的内核版本默认就是低于3.7内核,就无需进行此操作。
 ###内核版本察看命令 uname -a
 ###使用如下命令 sudo apt-get install linux-image 将linux 3.2内核及源码等自动下载安装。
 ###重启选择Prevous Linux Versions进入,然后选择启用3.2内核。
 ###为了安全起见,先进行备份处理。
 user@linux:~$ gcc reghack.c -o reghack
 user@linux:~$ sudo cp /lib/modules/3.2.0-60-generic/kernel/net/wireless/cfg80211.ko /lib/modules/3.2.0-60-generic/kernel/net/wireless/cfg80211.ko.backup
 user@linux:~$ sudo cp /lib/modules/3.2.0-60-generic/kernel/drivers/net/wireless/ath/ath.ko /lib/modules/3.2.0-60-generic/kernel/drivers/net/wireless/ath/ath.ko.backup
 user@linux:~$ sudo ./reghack /lib/modules/3.2.0-60-generic/kernel/drivers/net/wireless/ath/ath.ko
 Patching @ 0x00001e10: ath world regdomain with 5 rules in ath/regd.o
 Patching @ 0x00001e90: ath world regdomain with 4 rules in ath/regd.o
 Patching @ 0x00001ef8: ath world regdomain with 3 rules in ath/regd.o
 Patching @ 0x00001f48: ath world regdomain with 3 rules in ath/regd.o
 Patching @ 0x00001f98: ath world regdomain with 4 rules in ath/regd.o
 user@linux:~$ sudo ./reghack /lib/modules/3.2.0-60-generic/kernel/net/wireless/cfg80211.ko
 Patching @ 0x00022c60: core world5 regdomain in cfg80211/reg.o
 
破解后的频段见如下:

wlan0    32 channels in total; available frequencies :
          Channel 01 : 2.412 GHz
          Channel 02 : 2.417 GHz
          Channel 03 : 2.422 GHz
          Channel 04 : 2.427 GHz
          Channel 05 : 2.432 GHz
          Channel 06 : 2.437 GHz
          Channel 07 : 2.442 GHz
          Channel 08 : 2.447 GHz
          Channel 09 : 2.452 GHz
          Channel 10 : 2.457 GHz
          Channel 11 : 2.462 GHz
          Channel 36 : 5.18 GHz
          Channel 40 : 5.2 GHz
          Channel 44 : 5.22 GHz
          Channel 48 : 5.24 GHz
          Channel 52 : 5.26 GHz
          Channel 56 : 5.28 GHz
          Channel 60 : 5.3 GHz
          Channel 64 : 5.32 GHz
          Channel 100 : 5.5 GHz
          Channel 104 : 5.52 GHz
          Channel 108 : 5.54 GHz
          Channel 112 : 5.56 GHz
          Channel 116 : 5.58 GHz
          Channel 132 : 5.66 GHz
          Channel 136 : 5.68 GHz
          Channel 140 : 5.7 GHz
          Channel 149 : 5.745 GHz
          Channel 153 : 5.765 GHz
          Channel 157 : 5.785 GHz
          Channel 161 : 5.805 GHz
          Channel 165 : 5.825 GHz
          Current Frequency:2.437 GHz (Channel 6)

更多Ubuntu相关信息见Ubuntu 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=2


推荐阅读
  • 学习SLAM的女生,很酷
    本文介绍了学习SLAM的女生的故事,她们选择SLAM作为研究方向,面临各种学习挑战,但坚持不懈,最终获得成功。文章鼓励未来想走科研道路的女生勇敢追求自己的梦想,同时提到了一位正在英国攻读硕士学位的女生与SLAM结缘的经历。 ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • 本文介绍了Linux系统中正则表达式的基础知识,包括正则表达式的简介、字符分类、普通字符和元字符的区别,以及在学习过程中需要注意的事项。同时提醒读者要注意正则表达式与通配符的区别,并给出了使用正则表达式时的一些建议。本文适合初学者了解Linux系统中的正则表达式,并提供了学习的参考资料。 ... [详细]
  • Ubuntu 9.04中安装谷歌Chromium浏览器及使用体验[图文]
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • Ubuntu安装常用软件详细步骤
    目录1.GoogleChrome浏览器2.搜狗拼音输入法3.Pycharm4.Clion5.其他软件1.GoogleChrome浏览器通过直接下载安装GoogleChro ... [详细]
  • 众筹商城与传统商城的区别及php众筹网站的程序源码
    本文介绍了众筹商城与传统商城的区别,包括所售产品和玩法不同以及运营方式不同。同时还提到了php众筹网站的程序源码和方维众筹的安装和环境问题。 ... [详细]
  • 树莓派语音控制的配置方法和步骤
    本文介绍了在树莓派上实现语音控制的配置方法和步骤。首先感谢博主Eoman的帮助,文章参考了他的内容。树莓派的配置需要通过sudo raspi-config进行,然后使用Eoman的控制方法,即安装wiringPi库并编写控制引脚的脚本。具体的安装步骤和脚本编写方法在文章中详细介绍。 ... [详细]
  • 2016 linux发行版排行_灵越7590 安装 linux (manjarognome)
    RT之前做了一次灵越7590黑苹果炒作业的文章,希望能够分享给更多不想折腾的人。kawauso:教你如何给灵越7590黑苹果抄作业​zhuanlan.z ... [详细]
  • 恶意软件分析的最佳编程语言及其应用
    本文介绍了学习恶意软件分析和逆向工程领域时最适合的编程语言,并重点讨论了Python的优点。Python是一种解释型、多用途的语言,具有可读性高、可快速开发、易于学习的特点。作者分享了在本地恶意软件分析中使用Python的经验,包括快速复制恶意软件组件以更好地理解其工作。此外,作者还提到了Python的跨平台优势,使得在不同操作系统上运行代码变得更加方便。 ... [详细]
  • 全面介绍Windows内存管理机制及C++内存分配实例(四):内存映射文件
    本文旨在全面介绍Windows内存管理机制及C++内存分配实例中的内存映射文件。通过对内存映射文件的使用场合和与虚拟内存的区别进行解析,帮助读者更好地理解操作系统的内存管理机制。同时,本文还提供了相关章节的链接,方便读者深入学习Windows内存管理及C++内存分配实例的其他内容。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • 如何提高PHP编程技能及推荐高级教程
    本文介绍了如何提高PHP编程技能的方法,推荐了一些高级教程。学习任何一种编程语言都需要长期的坚持和不懈的努力,本文提醒读者要有足够的耐心和时间投入。通过实践操作学习,可以更好地理解和掌握PHP语言的特异性,特别是单引号和双引号的用法。同时,本文也指出了只走马观花看整体而不深入学习的学习方式无法真正掌握这门语言,建议读者要从整体来考虑局部,培养大局观。最后,本文提醒读者完成一个像模像样的网站需要付出更多的努力和实践。 ... [详细]
  • STM32与FPGA的对比及学习建议
    本文对比了野火STM32F103指南针板和Xilinx的PYNQ-Z2板(ZYNQ-7020),介绍了野火STM32F103指南针板的学习资料和讲解视频的详细程度,建议初学者学习野火的资料。同时,介绍了STM32开发所用的Keil程序和C指针的重要性。对于ZYNQ-7020的开发,提到了其自带的Linux、Ubuntu18.4系统以及使用SD卡烧入镜像的方法。 ... [详细]
  • 本文介绍了如何在使用emacs时去掉ubuntu的alt键默认功能,并提供了相应的操作步骤和注意事项。 ... [详细]
  • C语言常量与变量的深入理解及其影响
    本文深入讲解了C语言中常量与变量的概念及其深入实质,强调了对常量和变量的理解对于学习指针等后续内容的重要性。详细介绍了常量的分类和特点,以及变量的定义和分类。同时指出了常量和变量在程序中的作用及其对内存空间的影响,类似于const关键字的只读属性。此外,还提及了常量和变量在实际应用中可能出现的问题,如段错误和野指针。 ... [详细]
author-avatar
sdfsfsd
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有