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

不同的国家和地区有不同的无线电管理规定(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.oroot@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.oPatching @ 0x000021a0: ath world regdomain with 4 rules in ath/regd.oPatching @ 0x00002220: ath world regdomain with 3 rules in ath/regd.oPatching @ 0x00002280: ath world regdomain with 3 rules in ath/regd.oPatching @ 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 reghackuser@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.backupuser@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.backupuser@linux:~$ sudo ./reghack /lib/modules/3.2.0-60-generic/kernel/drivers/net/wireless/ath/ath.koPatching @ 0x00001e10: ath world regdomain with 5 rules in ath/regd.oPatching @ 0x00001e90: ath world regdomain with 4 rules in ath/regd.oPatching @ 0x00001ef8: ath world regdomain with 3 rules in ath/regd.oPatching @ 0x00001f48: ath world regdomain with 3 rules in ath/regd.oPatching @ 0x00001f98: ath world regdomain with 4 rules in ath/regd.ouser@linux:~$ sudo ./reghack /lib/modules/3.2.0-60-generic/kernel/net/wireless/cfg80211.koPatching @ 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)

可是却依旧为对方擦去嘴角的油渍。

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

相关文章:

你感兴趣的文章:

标签云: