Некоторое время назад мной был приобретен ноутбук IBM Thinkpad R50e в дешевой конфигурации 1834-S3G — никаких Wi-Fi, Bluetooth и т.п. Позже захотелось добавить в ноутбук Wi-Fi — для чего была куплена беспроводная сетевая карта Intel Wireless 2200BG MoW. Разобрав R50e, я с удивлением обнаружил отсутствие Mini-PCI разъема на материнской плате и сетевая карта была отложена в ящик ждать своего часа.
Прошел год…
В одной фирме, которая продает бывшие в употреблении ноутбуки, я приобрел IBM Thinkpad X40 2371-6UA — маленький и легкий ноутбук для разъездов. Гораздо легче R50 и имевшегося у меня к этому времени A31p, тоже купленным Б/У. В X40 была установлена беспроводная карта Intel Wireless 2100B, которая неработает в Wi-Fi сетях типа G, что меня не устраивало.
Быстро была найдена, купленная ранее, сетевая плата Intel Wireless 2200BG. Открутил 3 винта внизу X40 и поменял 2100B на 2200BG. Включаю, и вижу про что читал ранее в конференциях
1802: Unauthorized network card is plugged in — Power off and remove the miniPCI network card.
Стал изучать вопрос. Прочитал что пишут про ошибку 1802 на ThinkWiki. Предлагается либо изменять BIOS компьютера, либо менять Subsystem ID в EEPROM сетевой платы. Второй способ мне понравился больше чем первый, потому как есть маленькая вероятность что Lenovo, купившая подразделение персональных компьютеров и ноутбуков у IBM, возьмет да и выпустит новую версию BIOS, которую потом опять придется изменять. Про обновление же firmware от Intel я не слышал.
Итак, сетевая плата установлена в A31p, никаких ошибок при загрузке не выдается. Еще бы — когда появился A31p и когда Intel Wireless. На A31p у меня была установлена openSUSE — как знал что именно она и понадобится. Установил пакет ipw-firmware — сетевая плата заработала.
Теперь надо поменять Subsystem ID. По ссылке с ThinkWiki прочитал, что нужна другая версия ethtool и еще надо изменить код драйвера, чтобы можно было записывать в EEPROM. Скачал исходники ethtool, ipw2200, ieee80211, ipw2200-fw и kernel sources. Исправил как написано, скомпилировал.
*В моей следующей записи описан более простой способ.
Выполняю
~/ethtool-6/ethtool -e eth2 > 2200bg_eeprom
Смотрю файл — Subsystem ID сейчас 2701. Список поддерживаемых ноутбуком сетевых адаптеров нашел здесь. Наиболее подходящим показался 2712. Выполняю
~/ethtool-6/ethtool -E eth2 magic 0x2200 offset 0x8 value 0x12
Проверяю
~/ethtool-6/ethtool -e eth2
Subsystem ID стал 2712.
Всё. Теперь можно переставить сетевую плату в X40 и не подключать к нему провод от роутера.
драйвера 2200bg не патчатся, пишет отвергнутый патч