13-ый канал на Intel Wireless 2200BG MoW

Как оказалось, описанных ранее действий, не хватило, чтобы забыть про сетевой провод. Беспроводная сеть у меня работает на 13-м канале и плата ее не находила. Опишу теперь процесс переделки платы беспроводной сети из версии MoW в RoW.

После поисков в интернете, я выяснил что количество доступных каналов определяется в EEPROM сетевой платы. 14-ти каналам соответствует значение ZZR в поле Country Code
http://forums.anandtech.com/textthread.aspx?catid=30&threadid=1310709&arctab=y&filtmsgid=18871227

                                         Supported channels
Code   Geography                       802.11bg        802.11a

---    Restricted                      11               0
ZZF    Custom US/Canada                11               8
ZZD    Rest of World                   13               0
ZZA    Custom USA & Europe & High      11              13
ZZB    Custom NA & Europe              11              13
ZZC    Custom Japan                    11               4
ZZM    Custom                          11               0
ZZE    Europe                          13              19
ZZJ    Custom Japan                    14               4
ZZR    Rest of World                   14               0
ZZH    High Band                       13               4
ZZG    Custom Europe                   13               4
ZZK    Europe                          13              24
ZZL    Europe                          11              13

Прописываю R в EEPROM по смещению 0x4E

~/ethtool-6/ethtool -E eth2 magic 0×2200 offset 0×4e value 0×52

И после перезагрузки получаю следующие строки в dmesg:

ipw2200: Detected Intel PRO/Wireless 2200BG Network Connection
ipw2200: device failed to start within 500ms
ipw2200: Unable to load firmware: -62
ipw2200: failed to register network device
ACPI: PCI interrupt for device 0000:02:02.0 disabled
ipw2200: probe of 0000:02:02.0 failed with error -5

Вот, о чем писали на ThinkWiki.org http://www.thinkwiki.org/wiki/Ipw2200
ATTENTION! If this procedure goes wrong, you may ruin your wireless card.

при этом ethtool плату уже не видит, и восстановить старые значения уже не получится…

После некоторых раздумий решено было изменять сам драйвер ipw2200. В тексте нашел строку, которая выводила последнюю ошибку Unable to load firmware и перед ней написал вызов eeprom_write_u16(priv, 0x27, 0x4D); который восстановил прежнее значение Country code. После перезагрузки плата заработала. В итоге оказалось, что патч драйвера ipw2200, который был применен для смены Subsystem ID не подходит для изменения полей, которые защищены контрольной суммой, так как при их изменении расчета контрольной суммы не происходит.

Поиск в интернете дал другой патч, который не только делает расчет контрольной суммы, но и может исправлять ее если она не верна.
ipw2200-1.1.3-eeprom.diff

После записи R по смещению 0x4e плата стала обнаруживать мою сеть и теперь сетевой провод точно откладывается в ящик.

Здесь можно скачать драйвер, который может изменять значения в сетевой плате http://fx.cz/sklad/intel/, а здесь образ Knoppix http://www.kernel.org/pub/dist/knoppix/KNOPPIX_V4.0.2CD-2005-09-23-EN.iso

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *