Безжични карти Intel WiFi Link 5100/5300 AGN под Linux

Intel Wi-Fi Link 5100 a/g/nТрябваше ми нова безжична карта за лаптопа, от онези малки сладки половинки, които ти се губят в дланта. Спрях се на Intel, които имат добра поддръжка в ядрото (iwlwifi), драйверите се разработват активно и работят out of the box. Закупих нова Intel WiFi Link 5100 agn (bulk) от български магазин и с огромен кеф я монтирах. Но, както се казваше в един филм, “Совите не са това, което са.” Картата не тръгна. След кратък поглед, се установи това:

---snip---
[ 1657.573503] iwlagn: Intel(R) Wireless WiFi Link AGN driver for Linux, in-tree:d
[ 1657.573507] iwlagn: Copyright(c) 2003-2010 Intel Corporation
[ 1657.573597] iwlagn 0000:04:00.0: PCI INT A -> GSI 17 (level, low) -> IRQ 17
[ 1657.573658] iwlagn 0000:04:00.0: setting latency timer to 64
[ 1657.573756] iwlagn 0000:04:00.0: Detected Intel(R) WiFi Link 5100 AGN, REV=0x50
[ 1657.601182] iwlagn 0000:04:00.0: Unsupported (too old) EEPROM VER=0x114 < 0x11a CALIB=0x1 < 0x4
[ 1657.601235] iwlagn 0000:04:00.0: PCI INT A disabled
[ 1657.601253] iwlagn: probe of 0000:04:00.0 failed with error -22
---snip---
04:00.0 Network controller: Intel Corporation WiFi Link 5100
Subsystem: Intel Corporation WiFi Link 5100 AGN
Flags: fast devsel, IRQ 17
Memory at f0200000 (64-bit, non-prefetchable) [size=8K]
Capabilities: <access denied>
---snip---

Минута по-късно разбрах, че леко съм се прецакал. Закупил съм инженерна мостра (engineering sample, ES). Официално подобни карти не би следвало да са на пазара, но са, и то в огромни количества. Линукс драйверът не върви с такива интелски карти, защото в изходния му код е заложена проверка на EEPROM-а:

123 int iwl_eeprom_check_version(struct iwl_priv *priv)
124 {
125         u16 eeprom_ver;
126         u16 calib_ver;
127
128         eeprom_ver = iwl_eeprom_query16(priv, EEPROM_VERSION);
129         calib_ver = priv->cfg->ops->lib->eeprom_ops.calib_version(priv);
130
131         if (eeprom_ver < priv->cfg->eeprom_ver ||
132             calib_ver < priv->cfg->eeprom_calib_ver)
133                 goto err;
134
135         IWL_INFO(priv, "device EEPROM VER=0x%x, CALIB=0x%x\n",
136                  eeprom_ver, calib_ver);
137
138         return 0;
139 err:
140         IWL_ERR(priv, "Unsupported (too old) EEPROM VER=0x%x < 0x%x "
141                   "CALIB=0x%x < 0x%x\n", 142                   eeprom_ver, priv->cfg->eeprom_ver,
143                   calib_ver,  priv->cfg->eeprom_calib_ver);
144         return -EINVAL;
145
146 }

Пачването на драйвера чрез коментиране на проверката е евтин гнусен хак, но в някои случаи помага. В останалите случаи няма да сработи и при зареждане на интелския фърмуеър, драйверът ще “изплюе” грешка. Последното важи най-вече за карти 5100/5300. Не съм пробвал с по-стар фърмуеър, може би ще бъде вариант. Във всеки случай няма как да се спасите от подобна ситуация, защото видимо инженерната мостра е неразличима от нормална карта, а такива са наводнили пазара. Всяка покупка на интелска bulk карта, карта втора употреба, карта от голям интернет магазин (като eBay), крие риск от среща с инженерна мостра.

4 thoughts on “Безжични карти Intel WiFi Link 5100/5300 AGN под Linux

  1. KrasimirNo Gravatar

    Само под Linux ли прави проблема или и под Windows е така

    Reply
  2. KrasimirNo Gravatar

    ДА попитам пак,дай си мнението за тази карта,добра ли е,че се замислям да си купя такава или ми предложи някоя по добра,благодаря предварително

    Reply
    1. ВиеркоNo Gravatar Post author

      Картата е перфектна, стига да не е инженерна мостра. Някоя Атерос също би свършила работа.

      Reply

Leave a Reply

Your email address will not be published. Required fields are marked *