jp629 / iwleeprom

Automatically exported from code.google.com/p/iwleeprom
0 stars 0 forks source link

622ANHMW read ok pathing ok after power off heed to patch again #18

Open GoogleCodeExporter opened 8 years ago

GoogleCodeExporter commented 8 years ago
I'm get 622ANHMW (Intel® Centrino® Advanced-N 6200) wifi card for branded 
notebook (i'm think it's Lenovo) and put it in Acer 3830TG.
KALI Linux and Ubuntu working fine. Windows 7 x64 gets "Device could not start 
(code10)" error. Found https://communities.intel.com/thread/14740 solution, all 
working now fine, but!
After i power off and power on the notebook, old eeprom restored, and i need to 
boot Linux and flash modified eeprom again to start wifi card in windows.

What version of the product are you using? On what operating system?
Used latest release from SVN, kompiled under KALI linux 1.0.9 x64

Solution from Intel:
The card worked fine under linux but failed to initialize in Windows (7), no 
matter which Intel driver version I tried.
Under Win7 Device Manager it reported as PCI\VEN_8086&DEV_4239&SUBSYS_13118086 
which apparently is Lenovo branded card and will not work with Windows on my 
laptop (ASUS). I browsed windows .inf file and found generic (unbranded) 
counterpart that should identify as PCI\VEN_8086&DEV_422C&SUBSYS_13018086, then 
booted linux with intention to edit card EEPROM (no warranty - no worries).

Then under linux I:
1) downloaded iwleeprom tool
$ svn checkout http://iwleeprom.googlecode.com/svn/trunk/ iwleeprom-read-only

2) edited iwleeprom.c to enable RW capability for writing 6200 EEPROM
$ vi iwleeprom-read-only/iwleeprom.c
modified line:
{ 0x8086, 0x4239, 0, EEPROM_SIZE_5K,   "Centrino Advanced-N 6200"},
to read:
{ 0x8086, 0x4239, 1, EEPROM_SIZE_5K,   "Centrino Advanced-N 6200"},

3) compiled iwleeprom binary
$ cd iwleeprom-read-only && make

4) noted down PCI bus on which WIFI card was on
$ lspci -nv
03:00.0 0280: 8086:422c (rev 35)
        Subsystem: 8086:1301

5) dumped card's EEPROM to a file
$ ./iwleeprom -d 0000:03:00.0 -o eeprom.bak
$ cp eeprom.bak eeprom.mod

6) used hex editor to modify device identification from branded to generic (as 
per identification on top), minding this is little endian
$ hexer eeprom.mod
FROM:
00000000:  40 5a 50 00 00 60 00 00  01 00 35 00 80 02 86 80  @ZP..`....5.....
00000010:  39 42 86 80 11 13 01 0d  8b 03 00 05 f0 00 40 00  ,B............@.
(...)
TO:
00000000:  40 5a 50 00 00 60 00 00  01 00 35 00 80 02 86 80  @ZP..`....5.....
00000010:  2c 42 86 80 01 13 01 0d  8b 03 00 05 f0 00 40 00  ,B............@.
(...)

7) saved and written the modified file into card's eeprom (root/sudo)
(Note that following step can break your hardware. Use at your own risk)
# ./iwleeprom -d 0000:03:00.0 -m -c -i eeprom.mod

8) rebooted to windows

Then I installed latest drivers that identified this card as generic Intel 6200 
AGN.
Issue has been solved - card now works both under linux and under windows.

Original issue reported on code.google.com by novsinclair on 7 Nov 2014 at 2:32

GoogleCodeExporter commented 8 years ago
same problem with me

Original comment by dunhil2...@gmail.com on 27 Jan 2015 at 2:03