While the whole country was relaxing, celebrating the “Day of National Unity”, skillful hands and living brains of individual citizens gave us joy and fun. Particularly lucky were the owners of officially imported laptops on the Intel Centrino 2 platform with an integrated WiMax / WiFi adapter Intel 5150AGX (nee 5150ANX), which was brutally castrated by the manufacturer at the level of EEPROM. As a result, the victim has forgotten how to sing beautifully in all of her 300Mbps and only unconsciously lowered the note G (54Mbps). As an impatient reader can guess, the crazy hands mentioned above and lively brains have successfully coped with this slight misunderstanding, having returned to the hypothetical eunuch his lost dignity.
So, you have a laptop in the 5150AGX card together with an irrepressible thirst for risk, and we have instructions:
Remember, all below mentioned is done by you at your own peril and risk. Even if you are extremely attentive and careful. The result can be not only a card operating on 11n, but also its hardly resurgent corpse.Windows
')
1. Download
RW Everything , unpack, install.
2. If you need a backup copy of your EEPROM, download
DumpIWL also . If not, read from point (3). If yes: unpack the entire contents of the archive into the folder, run (under x64 may not work, details in the forum, link at the very end). Click on "Read EEPROM", close, zanychit file.
3. Open the device manager, find your map there, open “Properties”

4. Go to the “Resources” tab. Record 8 digits marked in the screenshot. This is an
offset , it is useful.

5. Run RW Everything, in the window that opens, in the drop-down list, find the Intel Network Controller and select it.

We look carefully at the
Subsytem ID in the lower right part of the window. They can be of the following form:
1201 - Full, 11n enabled, OEM
1206 - Full, 11n disabled, OEM
1301 - Half, 11n enabled, OEM
1306 - Half, 11n disabled, OEM
1211 - Full, 11n enabled, HP / Lenovo / IBM
1216 - Full, 11n disabled, HP / Lenovo / IBM
1311 - Half, 11n enabled, HP / Lenovo / IBM
1316 - Half, 11n disabled, HP / Lenovo / IBM
After completing the next steps, the ID will change from view XXX6 to XXX1, with XXX remaining unchanged. If you have one at the end, there is no further reading.
If your number is in the first half of the list, you can breathe a little looser. If in the second - your risks have increased. Some manufacturers' laptops contain whitelist valid devices, changing the ID (or other parameters) can lead to trouble.
6. In the RW Everything menu, select Access-> Command (or click the corresponding button on the toolbar). In the window that appears, there will be one input field, you need to copy the following text into it (in one line):
local0=0x********;local0=add(local0, 0x2c);local1=0xCC;local2=div(local1,2);local2=shl(local2, 2);w32 local0 local2;delay 10;local3=(r32 local0);local3=shr(local3, 15);local1=add(local3, 0x08);LOOP{14,local2=div(local1, 2);local2=shl(local2, 2);local2=or(local2, 0x0F6F0002);w32 local0 local2;delay 50;local1=add(local1, 2)};local1=add(local3, 0x42);LOOP{12,local2=div(local1, 2);local2=shl(local2, 2);local2=or(local2, 0x0FE10002);w32 local0 local2;delay 50;local1=add(local1, 2)};local1=add(local3, 0x5c);LOOP{11,local2=div(local1, 2);local2=shl(local2, 2);local2=or(local2, 0x0F310002);w32 local0 local2;delay 50;local1=add(local1, 2)};local1=add(local3, 0x74);LOOP{6,local2=div(local1, 2);local2=shl(local2, 2);local2=or(local2, 0x0FA10002);w32 local0 local2;delay 50;local1=add(local1, 2)};local1=add(local3, 0x82);LOOP{7,local2=div(local1, 2);local2=shl(local2, 2);local2=or(local2, 0x0F6F0002);w32 local0 local2;delay 50;local1=add(local1, 2)};local1=add(local3, 0x92);LOOP{11,local2=div(local1, 2);local2=shl(local2, 2);local2=or(local2, 0x0FE10002);w32 local0 local2;delay 50;local1=add(local1, 2)};local1=add(local3, 0x02);local2=div(local1, 2);local2=shl(local2, 2);local2=or(local2, 0x6F4D0002);w32 local0 local2;delay 50;local1=add(local3, 0x04);local2=div(local1, 2);local2=shl(local2, 2);local2=or(local2, 0x00570002);w32 local0 local2;delay 50;local1=0x8A;local2=div(local1,2);local2=shl(local2, 2);local2=or(local2, 0x00f00002);w32 local0 local2;delay 50;local1=0x8C;local2=div(local1,2);local2=shl(local2, 2);w32 local0 local2;delay 10;local3=(r32 local0);local3=shr(local3,16);local3=and(local3, 0xFE9F);local3=or(local3, 0x0010);local3=shl(local3,16);local2=or(local3,local2);local2=or(local2,0x02);w32 local0 local2;delay 50;local1=0x14;local2=div(local1,2);local2=shl(local2, 2);w32 local0 local2;delay 10;local3=(r32 local0);local3=shr(local3,16);local3=and(local3, 0xFFFF0);local3=or(local3, 0x0001);local3=shl(local3,16);local2=or(local3,local2);local2=or(local2,0x02);w32 local0 local2;delay 50;
Eight stars (********) need to be replaced by the
offset previously
recorded (in my case, in the screenshots, this is E3500000).
We get something like:

7. We
check ourselves again, it is very important not to make mistakes at this stage . Checked out? Press Enter, wait for 10-30 seconds (the text of the executed command will appear), then another minute just in case, close the RW Everything and carefully shut down the system (
DO NOT: turn on WiFI by turning off the hardware switch, cut down the computer by holding the power button, etc. all these are additional risk factors ).
8. After rebooting and logging in, Windows will find a new device (ID changed) and will install drivers on it. Most likely this process will end in failure (which is normal). Everything, you can connect to the access point and enjoy life. In order to be completely happy, you can increase the channel width from 20 to 40Mhz (device manager, adapter, “extra” tab).

9. Point for those who do not like the new device name with # 2 at the end, i.e. aesthetes like me. The plan is (briefly, as a homework):
9.1 Add the devmgr_show_nonpresent_devices system variable with a value of 1
9.2 Go to the device manager, select “View> Show hidden devices” in the menu and remove both adapters (old translucent and new with # 2 at the end).
9.3 After the reboot, the device will be found, the drivers are installed, # 2 will not be on the end
Linux
1. Rejoice. Everything is simpler and more elegant here, as always (it is understood that there is already svn, and there is more to collect than)
2. Go to
/usr/local/src
(or where you used to build there), create the “iwleeprom” directory
3. Run "
svn checkout iwleeprom.googlecode.com/svn/trunk iwleeprom
svn checkout iwleeprom.googlecode.com/svn/trunk iwleeprom
", as a result we will see:
A iwleeprom/iwleeprom.c
A iwleeprom/iwleeprom.8
A iwleeprom/Makefile
Checked out revision 11.
4. Enter the created directory, and execute "
make
", we will see:
gcc -Wall -o iwleeprom iwleeprom.c
gzip -c iwleeprom.8 > iwleeprom.8.gz
5. To become a superuser (“su” or “sudo -i” to choose from) and run "
./iwleeprom --help
", you should get:
EEPROM reader/writer for intel wifi cards
Usage: ./iwleeprom [-d device] [-r filename] [-w filename] [-p]
-d device device in format 0000:00:00.0 (domain:bus:dev.func)
-r filename dump eeprom to binary file
-w filename write eeprom from binary file
-b save dump in big-endian byteorder (default: little-endian)
-p patch device eeprom to enable 802.11n
6. Execute "
./iwleeprom -r eeprom.bak
", we will receive a dump of EEPROM (backup copy just in case).
7.
Consider, are you willing to take the risk? Run "
./iwleeprom -p
", the tool will do everything itself
8. Beat (if there is) the file "
/etc/modprobe.d/intel-5300-iwlagn-disable11n.conf
", which does not allow 11n to work on Intel adapters in the latest versions of the kernel (something the developers broke off and disconnected N from away, in practice everything works, but temporary brakes are possible)
9. Rebut and check
Based on the discussion on iXBT (
Intel 5150 AGX - is 802.11n possible ).
Many thanks to
ittrium ,
advan ,
thinkfar ,
ShultZ , thanks to which our little local happiness became possible.