Thinkpad X61s и альтернативные Mini PCI Express-адаптеры
Опубликовано 23.12.2008
Клиенты прислали свой ноутбук Lenovo Thinkpad X61s для специфической настройки. Перед отправкой они воткнули туда свежеприобретённый Mini PCIe-адаптер Intel PRO Wireless 3945ABG, но проверить его толком не успели за недостатком времени. Когда я включил этот ноутбук, он вообще отказался загружаться с хамской формулировкой:
1802: Unauthorized network card is plugged in - Power off and remove the miniPCI network card.
Расследование этого факта привело на страницу Problem with unauthorized MiniPCI network card, откуда я узнал, что в биосе ноутбуков Thinkpad «зашит» белый список PCI-ID’ов Mini PCIe-устройств, явно разрешённых к использованию, все остальные устройства запрещены. Все разрешённые устройства выпущены под маркой Lenovo и стоят в полтора-два раза дороже, чем их немаркированные аналоги. Как разъясняет справочный центр Lenovo, это вызвано тем, что во избежание порчи эфира сочетание карты и антенны должно быть сертифицировано FCC (североамериканская федеральная комиссия по связи) или аналогичной организацией в других странах, и Lenovo не может гарантировать, что какой попало адаптер будет соответствовать этим требованиям. Поэтому официальный совет по избавлению от этой ошибки: выкиньте свой адаптер и купите правильный втридорога.
Неофициальные способы обойти хитрых IBM-овцев перечислены на вышеупомянутой странице. Вариантов несколько: добавить PCI ID устройства в bios, модифицировать PCI ID на самом устройстве (речь идёт о subvendor id), использовать несколько вариантов программ для изменения пары байтов в биосе, отключающих проверку по белому списку… В итоге сработало простое перетыкание адптера в соседний слот: видимо, проверка PCI ID работает только для одного слота.
После перетыкания ноутбук включился, но на этом приключения не кончились :) Выяснилось, что при любом состоянии переключателя wifi в логи выводится сообщение, подобное следующему:
Dec 20 20:20:56 hostname kernel: ipw3945: Radio Frequency Kill Switch is On: Dec 20 20:20:56 hostname kernel: Kill switch must be turned off for wireless networking to work.
При этом в файле /sys/devices/pci0000:00/0000:00:1c.0/0000:02:00.0/rf_kill
содержится число 2, что означает «залочено железом». Т.е. карточка считает, что wifi выключен и отказывается работать, и никакие хоткеи, включающие wifi, тут не помогут.
Решение в виде грязного хака нашлось на той же странице: необходимо чем-нибудь заклеить 20 контакт карточки бумажкой, чтобы она не получала сигналов о состоянии переключателя wifi, которые, видимо, не доставляются во второй слот. Действительно, судя по распиновке Mini PCI express, 20 пин зарезервирован и вполне может использоваться для сигнализации о включении/выключении функциональности wifi.
Мы заклеили этот 20 контакт кусочком первой попавшейся липкой бумажки, и всё прекрасно работает. Надолго ли?..
Upd. Пока писал, забыл, чего сказать-то хотел :) Мораль сей басни такова: подумайте дважды, прежде чем Thinkpad брать — готовы ли вы модные рюшечки поменять на понятные, но нервирующие заносы производителя и потенциально обрести проблемы на пустом месте?
вероятно вся эта лабуда началась после того, как IBMовцы продали отдел ноутбуков китайцам.
Ibm всегда славились своим белым списком :)
привода, модули вай-фай…
А сработает ли метод на HP?
И кстати, заклеив 20-й пин, не потеряется ли возможность включать/выключать вайфай кнопкой на ноутбуке?
(Я уже устал от этого поганого broadcom, торчащего в моем нетбуке)
давно это было, но вроде побочных эффектов не было :) в любом случае надо либо самому пробовать, либо зарываться в спеки и доки