Win10论坛

Win10正式版系统下载主题平板

重定义Modern UI,打造完美Windows全新体验

Windows10下载|安装|新手宝典|必备软件

搜索
查看: 4214|回复: 47

[求助] AR9285 改id后无法驱动,求linux下的idchanger工具  关闭 [复制链接]

Rank: 9

UID
2262203
帖子
720
PB币
331
贡献
0
技术
3
活跃
458

7周年庆典勋章

发表于 2014-8-14 16:10:06 |显示全部楼层
无线网卡为ar5b93,用ate id(atheros eeprom tool)修改后win下及mac下均不能正确驱动,改inf后依旧不可用,但linux中可识别虽然还不能联网。参考一篇很久前的文章发现有刷活的可能,但其中的idchanger工具链接已经无效,已经pm博主,但暂无回复,因此请求之前有接触过的童鞋帮忙搜索外网,谢谢。


修改Atheros芯片的无线网卡为任意品牌网卡
将Atheros 5004以下的无线网卡随意变成cisco的、IBM的、HP的、富士通的、D-link的……避免Thinkpad的上1802、01C9错误,及HP上的104错误等麻烦。
其实就是修改无线网卡的硬件ID。下面以将一张CISCO的B/G卡修改为HP W400为例子。
准备:
  • 找一台不挑卡的电脑,比如带miniPCI转接卡的台式机;
  • linux系统,基本上是什么版本都行,dos下启动的也可以,我习惯用KNOPPIX的LIVE CD来干活;
  • 下载这个工具:
    source:http://www.dagarlas.org/stuff/computing/0001/idchanger.c
    binary:http://www.dagarlas.org/stuff/computing/0001/idchanger
    我是将idchanger下载到U盘中,然后在KNOPPIX里使用;
  • 由HP的驱动程序inf文件中,取得VENDOR/DEVICE ID和SUBSYS ID:

net5211.inf
HP Integrated Wireless LAN
> Hewlett-Packard WLAN W400/W500

%Vendor.DeviceDesc.MB22% = MB22_01, PCI\VEN_168C&DEV_0012&SUBSYS_00E50E11
%Vendor.DeviceDesc.MB22% = MB22_02, PCI\VEN_168C&DEV_0012&SUBSYS_2022168C
%Vendor.DeviceDesc.MB22ag% = MB22ag_01, PCI\VEN_168C&DEV_0013&SUBSYS_00E50E11
%Vendor.DeviceDesc.MB22g% = MB22g_01, PCI\VEN_168C&DEV_0013&SUBSYS_00E60E11

Vendor.DeviceDesc.MB22g = "HP WLAN 802.11b/g W400"
Vendor.DeviceDesc.MB22ag = "HP WLAN 802.11a/b/g W500"
Vendor.DeviceDesc.MB22 = "HP WLAN 802.11a/b W500"
Service.DispName = "HP WLAN W400/W500 Wireless Network Adapter Service"

从这个inf里头,可以看到W400这张网卡对应的VENDOR/DEVICE_ID是168C 0013,SUBSYS_ID是00E6 0E11,mark低先;

过程:
用KNOPPIX LIVE CD BOOT机,开个terminal 窗口,用root用户操作:

1、先睇下网卡係唔係认出来先:

[url=mailto:root@1[knoppix]root@1[knoppix[/url]]# iwconfig
lo        no wireless extensions.

eth0      no wireless extensions.
ath0      IEEE 802.11  ESSID:""
          Mode:Managed  Frequency:2.412 GHz  Access Point: 00:00:00:00:00:00
          Bit Rate:0 kb/s   Tx-Power:50 dBm   Sensitivity=0/3
          Retry:off   RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:off
          Link Quality=0/94  Signal level=-95 dBm  Noise level=-95 dBm
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0


2、再睇网卡嘅信息:
先用lispci -v,对应设备信息,记下网卡的PCI序号0000:02:04.0
[url=mailto:root@1[knoppix]root@1[knoppix[/url]]# lspci -v   
0000:02:04.0 Ethernet controller: Atheros Communications, Inc. AR5212 802.11abg NIC (rev 01)

然后用lispci -nv查看对应这个PCI序号的硬件ID等信息,可以看到VENDOR_ID是168c 0013,SUBSYS_ID是CC21 14B9,这里还要记下MEM_ADDR:60000000,下一步要用到这个MEM_ADDR:
[url=mailto:root@1[knoppix]root@1[knoppix[/url]]# lspci -nv
0000:02:04.0 0200: 168c:0013 (rev 01)
        Subsystem: CC21:14B9
        Flags: bus master, medium devsel, latency 168, IRQ 11
        Memory at 60000000 (32-bit, non-prefetchable) [size=64K]
        Capabilities: [44] Power Management version 2


3、用U盘上的idchanger查看eeprom上的信息,要用到上边的MEM_ADDR了。
[url=mailto:root@2[uba1]root@2[uba1[/url]]# ./idchanger -r 0xc6000000
Reading 0 current value 0x0013
Reading 1 current value 0x168C
Reading 2 current value 0x0200
Reading 3 current value 0x0001
Reading 4 current value 0x0000
Reading 5 current value 0x5001
Reading 6 current value 0x0000
Reading 7 current value 0x14B9
Reading 8 current value 0xCC21

……

4、idchanger这个工具的用语係:
idchanger -w BASE_ADDR 0x00_value 0x01_value 0x07_value 0x08_value
对照W400的VENDOR_ID及SUBSYS_ID,只需要SUBSYS_ID即可,所以呢度要保持0x00_value 及0x01_value不变。
[url=mailto:root@2[uba1]root@2[uba1[/url]]# ./idchanger -w 0xc6000000 0x0013 0x168c 0x00e6 0x0e11
Accessing adapter at 0xc6000000
Current value 0x0013 will change to 0x0013
Current value 0x168C will change to 0x168C
Current value 0x14B9 will change to 0x00E6
Current value 0xCC21 will change to 0x0E11
[url=mailto:root@2[uba1]root@2[uba1[/url]]#

5、检查成果。
[url=mailto:root@2[uba1]root@2[uba1[/url]]# ./idchanger -r 0xc6000000
Reading 0 current value 0x0013
Reading 1 current value 0x168C

Reading 2 current value 0x0200
Reading 3 current value 0x0001
Reading 4 current value 0x0000
Reading 5 current value 0x5001
Reading 6 current value 0x0000
Reading 7 current value 0x00E6
Reading 8 current value 0x0E11

……
关机,取下



求71狐狸尾巴当抱枕......外出南极洲旅游至今未归

UID
2881599
帖子
18654
PB币
94486
贡献
1
技术
23536
活跃
2823

热心会员 8周年庆典勋章

发表于 2014-8-14 16:22:00 |显示全部楼层
为什么要冒着风险修改硬件id呢?
直接使用DSDT或者Clover 的 patch功能 岂不是更好 更容易 更0风险?

Rank: 9

UID
2262203
帖子
720
PB币
331
贡献
0
技术
3
活跃
458

7周年庆典勋章

发表于 2014-8-14 16:33:54 |显示全部楼层
neycwby09 发表于 2014-8-14 16:22
为什么要冒着风险修改硬件id呢?
直接使用DSDT或者Clover 的 patch功能 岂不是更好 更容易 更0风险?

一时手贱的下场,不过既然有刷机之后大都会有救砖,求救砖。

外出月球旅游至今未归,在蟾宫?

Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17

UID
720918
帖子
15850
PB币
7813
贡献
0
技术
115
活跃
2265

7周年庆典勋章 热心会员 8周年庆典勋章

发表于 2014-8-14 16:42:57 |显示全部楼层
cbctech 发表于 2014-8-14 16:33
一时手贱的下场,不过既然有刷机之后大都会有救砖,求救砖。

我的改了,windows下可以驱动,MAC OS X下直接免驱的啊??

Rank: 9

UID
2262203
帖子
720
PB币
331
贡献
0
技术
3
活跃
458

7周年庆典勋章

发表于 2014-8-14 16:49:22 |显示全部楼层
sharks 发表于 2014-8-14 16:42
我的改了,windows下可以驱动,MAC OS X下直接免驱的啊??

变成了PCI\VEN_168C&DEV_FF1C 无法修改inf识别

外出月球旅游至今未归,在蟾宫?

Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17

UID
720918
帖子
15850
PB币
7813
贡献
0
技术
115
活跃
2265

7周年庆典勋章 热心会员 8周年庆典勋章

发表于 2014-8-14 16:52:45 |显示全部楼层
cbctech 发表于 2014-8-14 16:49
变成了PCI\VEN_168C&DEV_FF1C 无法修改inf识别

这样就麻烦了!!这个必须一起修改的!!不能只改一个或者两个!!你后面没有修改啊!!我改的这个:168C,002A,008F106B这个!!直接免驱

求71狐狸尾巴当抱枕......外出南极洲旅游至今未归

UID
2881599
帖子
18654
PB币
94486
贡献
1
技术
23536
活跃
2823

热心会员 8周年庆典勋章

发表于 2014-8-14 16:54:36 |显示全部楼层
翻箱倒柜找到了

idchanger.c 是源码 idchanger是编译后的可执行文件

你在linux下用 gcc 编译下就可以得到 idchanger 了

源码在此: idchanger.c.zip (3.07 KB, 下载次数: 41)

编译的话在 终端 中键入如下命令:
  1. gcc -o idchanger idchanger.c
复制代码
Snip20140814_3.png


这是我在 OS X 下编译好的,你最好在 Linux 下 用gcc自己编译下。
idchanger.zip (2.99 KB, 下载次数: 21)



Rank: 9

UID
2262203
帖子
720
PB币
331
贡献
0
技术
3
活跃
458

7周年庆典勋章

发表于 2014-8-14 17:28:45 |显示全部楼层
sharks 发表于 2014-8-14 16:52
这样就麻烦了!!这个必须一起修改的!!不能只改一个或者两个!!你后面没有修改啊!!我改的这个:168C ...

我也改的是这个啊,两个也都一起改了,谁知还是出错了。

Rank: 9

UID
2262203
帖子
720
PB币
331
贡献
0
技术
3
活跃
458

7周年庆典勋章

发表于 2014-8-14 17:29:40 |显示全部楼层
neycwby09 发表于 2014-8-14 16:54
翻箱倒柜找到了

idchanger.c 是源码 idchanger是编译后的可执行文件

感激不尽,试试再说

外出月球旅游至今未归,在蟾宫?

Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17

UID
720918
帖子
15850
PB币
7813
贡献
0
技术
115
活跃
2265

7周年庆典勋章 热心会员 8周年庆典勋章

发表于 2014-8-14 18:18:07 |显示全部楼层
cbctech 发表于 2014-8-14 17:29
感激不尽,试试再说

祝你好运!!希望看到你成功的消息!!请及时反馈!!

Rank: 9

UID
2262203
帖子
720
PB币
331
贡献
0
技术
3
活跃
458

7周年庆典勋章

发表于 2014-8-14 19:10:25 |显示全部楼层
本帖最后由 cbctech 于 2014-8-14 19:37 编辑
sharks 发表于 2014-8-14 18:18
祝你好运!!希望看到你成功的消息!!请及时反馈!!


方才重新编译一次试了下出现以下问题:
查了下代码 idchanger工具 中出现这一段
  1. static void
  2. Usage(){
  3.         (void) fprintf( stderr, "Usage: idchanger {-r|-w} physical_address_base [new_VendorID new_DevID new_Subs1 new_Subs2]\nphysical_address_base is a 32 bit hex value: 0xXXXXXXXX\nids are 16 bit hex values: 0xXXXX\n") ;
  4.         return ;
  5. }
复制代码
貌似仅支持32bit地址,但读出的网卡地址为64bit,通过尝试直接用64bit的地址-r 出现内存读取错误,转为64bit后(不清楚是否转换得当)依旧不行。
使用lspci -nv读取出的数据简略为Memory at f0300000 (64-bit, non-prefetchable) [size=64K]
跟教程中的Memory at 60000000 (32-bit, non-prefetchable) [size=64K]
不一致,运行./idchanger -r 0xf0300000后显示内存读取失败,请指点下这个内存地址该如何修正。

外出月球旅游至今未归,在蟾宫?

Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17

UID
720918
帖子
15850
PB币
7813
贡献
0
技术
115
活跃
2265

7周年庆典勋章 热心会员 8周年庆典勋章

发表于 2014-8-14 19:23:37 |显示全部楼层
cbctech 发表于 2014-8-14 19:10
方才重新编译一次试了下出现以下问题:
该idchanger工具仅支持32bit地址,但读出的网卡地址为64bit,通 ...

具体我也不会!!我只是依葫芦画瓢而已!!关键是你的网卡信息读出来没有??

Rank: 9

UID
2262203
帖子
720
PB币
331
贡献
0
技术
3
活跃
458

7周年庆典勋章

发表于 2014-8-14 19:32:44 |显示全部楼层
sharks 发表于 2014-8-14 19:23
具体我也不会!!我只是依葫芦画瓢而已!!关键是你的网卡信息读出来没有??

具体出现的问题:
05:00.0 0280: 168c:ff1c (rev 01)
        Subsystem: 105b:e01f
        Flags: bus master, fast devsel, latency 0, IRQ 10
        Memory at f0300000 (64-bit, non-prefetchable) [size=64K]
        Capabilities: [40] Power Management version 2
        Capabilities: [50] MSI: Enable- Count=1/1 Maskable- 64bit-
        Capabilities: [60] Express Legacy Endpoint, MSI 00
        Capabilities: [90] MSI-X: Enable- Count=1 Masked-
        Capabilities: [100] Advanced Error Reporting
        Capabilities: [140] Virtual Channel
        Capabilities: [160] Device Serial Number 00-00-00-00-00-00-00-00


root@partedmagic:~# ./idchanger -r 0xf0300000
Accessing adapter at 0xF0300000
eeprom read access failed!
EEPROM read failed
Reading 0 current value 0xBFC2
eeprom read access failed!
EEPROM read failed
Reading 1 current value 0xBFC2
eeprom read access failed!
EEPROM read failed
Reading 2 current value 0xBFC2
eeprom read access failed!
EEPROM read failed
Reading 3 current value 0xBFC2
eeprom read access failed!
EEPROM read failed
Reading 4 current value 0xBFC2
eeprom read access failed!
EEPROM read failed
Reading 5 current value 0xBFC2
eeprom read access failed!
EEPROM read failed
Reading 6 current value 0xBFC2
eeprom read access failed!
EEPROM read failed
Reading 7 current value 0xBFC2

root@partedmagic:~# ./idchanger -w 0xf0300000 0x002a 0x168c 0x008f 0x106b
Accessing adapter at 0xF0300000
eeprom read access failed!
EEPROM read failed
Current value 0xBFAC will change to 0x002A
eeprom write access failed!
EEPROM write failed
eeprom read access failed!
EEPROM read failed
Current value 0xBFAC will change to 0x168C
eeprom write access failed!
EEPROM write failed
eeprom read access failed!
EEPROM read failed
Current value 0xBFAC will change to 0x008F
eeprom write access failed!
EEPROM write failed
eeprom read access failed!
EEPROM read failed
Current value 0xBFAC will change to 0x106B
eeprom write access failed!
EEPROM write failed

外出月球旅游至今未归,在蟾宫?

Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17

UID
720918
帖子
15850
PB币
7813
贡献
0
技术
115
活跃
2265

7周年庆典勋章 热心会员 8周年庆典勋章

发表于 2014-8-14 19:45:13 |显示全部楼层
cbctech 发表于 2014-8-14 19:32
具体出现的问题:
05:00.0 0280: 168c:ff1c (rev 01)
        Subsystem: 105b:e01f

的确是读内存错误!!不会是工具编译错误吧??你再检查一下看看!!

Rank: 9

UID
2262203
帖子
720
PB币
331
贡献
0
技术
3
活跃
458

7周年庆典勋章

发表于 2014-8-14 19:48:15 |显示全部楼层
sharks 发表于 2014-8-14 19:45
的确是读内存错误!!不会是工具编译错误吧??你再检查一下看看!!

用督查编译的出问题,自己下了个完整的linux编译很顺利,没出错误,怀疑是工具年代跟不上,代码有问题(ps这个教程出现在06年)

外出月球旅游至今未归,在蟾宫?

Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17

UID
720918
帖子
15850
PB币
7813
贡献
0
技术
115
活跃
2265

7周年庆典勋章 热心会员 8周年庆典勋章

发表于 2014-8-14 19:53:58 |显示全部楼层
cbctech 发表于 2014-8-14 19:48
用督查编译的出问题,自己下了个完整的linux编译很顺利,没出错误,怀疑是工具年代跟不上,代码有问题(p ...

哦!8年啊??也是啊!!期望督察大人进来解释一下!!不会是内核升级的关系吧??

外出月球旅游至今未归,在蟾宫?

Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17

UID
720918
帖子
15850
PB币
7813
贡献
0
技术
115
活跃
2265

7周年庆典勋章 热心会员 8周年庆典勋章

发表于 2014-8-14 19:56:33 |显示全部楼层
本帖最后由 sharks 于 2014-8-14 20:05 编辑

@neycwby09   这位朋友啊!!快出来吧!!弄不了!!奇怪了??

Rank: 2Rank: 2

UID
1692895
帖子
152
PB币
206
贡献
0
技术
10
活跃
345
发表于 2014-8-14 20:14:10 来自手机 |显示全部楼层
本帖最后由 qq576983530 于 2014-8-14 20:15 编辑

我的网卡也是这种情况。。。能否把linux下编译好的idchanger发一份,编译器出了点小问题。。。

Rank: 9

UID
2262203
帖子
720
PB币
331
贡献
0
技术
3
活跃
458

7周年庆典勋章

发表于 2014-8-14 20:49:48 |显示全部楼层
qq576983530 发表于 2014-8-14 20:14
我的网卡也是这种情况。。。能否把linux下编译好的idchanger发一份,编译器出了点小问题。。。

idchanger.zip (4.43 KB, 下载次数: 28) 如果可以记得反馈下我先试试装个madwifi tools试试。

Rank: 2Rank: 2

UID
1692895
帖子
152
PB币
206
贡献
0
技术
10
活跃
345
发表于 2014-8-14 21:18:11 |显示全部楼层
cbctech 发表于 2014-8-14 20:49
如果可以记得反馈下我先试试装个madwifi tools试试。

好的我试试看
回顶部
Copyright (C) 2005-2020 pcbeta.com, All rights reserved
Powered by Discuz!  苏ICP备17027154号
请勿发布违反中华人民共和国法律法规的言论,会员观点不代表远景论坛官方立场。
远景在线 | 远景论坛 | 苹果论坛 | Win10论坛 | Win8论坛 | Win7论坛 | WP论坛 | Office论坛 | 电脑硬件 | 安卓软件