这是内核中驱动(drivers/net/wireless/rt2x00/rt2500usb.c)的部分源代码。红色部分就是你遇到的错误。看起来和芯片的硬件版本有关:
1528static int rt2500usb_init_eeprom(struct rt2x00_dev *rt2x00dev)
1529{
1530 u16 reg;
1531 u16 value;
1532 u16 eeprom;
1533
1534 /*
1535 * Read EEPROM word for configuration.
1536 */
1537 rt2x00_eeprom_read(rt2x00dev, EEPROM_ANTENNA, &eeprom);
1538
1539 /*
1540 * Identify RF chipset.
1541 */
1542 value = rt2x00_get_field16(eeprom, EEPROM_ANTENNA_RF_TYPE);
1543 rt2500usb_register_read(rt2x00dev, MAC_CSR0, ®);
1544 rt2x00_set_chip(rt2x00dev, RT2570, value, reg);
1545
1546 if (!rt2x00_check_rev(&rt2x00dev->chip, 0x000ffff0, 0) ||
1547 rt2x00_check_rev(&rt2x00dev->chip, 0x0000000f, 0)) {
1548
1549 ERROR(rt2x00dev, "Invalid RT chipset detected.\n");
1550 return -ENODEV;
1551 }
1553 if (!rt2x00_rf(&rt2x00dev->chip, RF2522) &&
1554 !rt2x00_rf(&rt2x00dev->chip, RF2523) &&
1555 !rt2x00_rf(&rt2x00dev->chip, RF2524) &&
1556 !rt2x00_rf(&rt2x00dev->chip, RF2525) &&
1557 !rt2x00_rf(&rt2x00dev->chip, RF2525E) &&
1558 !rt2x00_rf(&rt2x00dev->chip, RF5222)) {
1559 ERROR(rt2x00dev, "Invalid RF chipset detected.\n");
1560 return -ENODEV;
1561 }
1562
1563 /*
1564 * Identify default antenna configuration.
1565 */
1566 rt2x00dev->default_ant.tx =
1567 rt2x00_get_field16(eeprom, EEPROM_ANTENNA_TX_DEFAULT);
1568 rt2x00dev->default_ant.rx =
1569 rt2x00_get_field16(eeprom, EEPROM_ANTENNA_RX_DEFAULT);
1570
1571 /*
1572 * When the eeprom indicates SW_DIVERSITY use HW_DIVERSITY instead.
1573 * I am not 100% sure about this, but the legacy drivers do not
1574 * indicate antenna swapping in software is required when
1575 * diversity is enabled.
1576 */
1577 if (rt2x00dev->default_ant.tx == ANTENNA_SW_DIVERSITY)
1578 rt2x00dev->default_ant.tx = ANTENNA_HW_DIVERSITY;
1579 if (rt2x00dev->default_ant.rx == ANTENNA_SW_DIVERSITY)
1580 rt2x00dev->default_ant.rx = ANTENNA_HW_DIVERSITY;
1581
1582 /*
1583 * Store led mode, for correct led behaviour.
1584 */
1585#ifdef CONFIG_RT2X00_LIB_LEDS
1586 value = rt2x00_get_field16(eeprom, EEPROM_ANTENNA_LED_MODE);
1587
1588 rt2500usb_init_led(rt2x00dev, &rt2x00dev->led_radio, LED_TYPE_RADIO);
1589 if (value == LED_MODE_TXRX_ACTIVITY ||
1590 value == LED_MODE_DEFAULT ||
1591 value == LED_MODE_ASUS)
1592 rt2500usb_init_led(rt2x00dev, &rt2x00dev->led_qual,
1593 LED_TYPE_ACTIVITY);
1594#endif /* CONFIG_RT2X00_LIB_LEDS */
1595
1596 /*
1597 * Detect if this device has an hardware controlled radio.
1598 */
1599 if (rt2x00_get_field16(eeprom, EEPROM_ANTENNA_HARDWARE_RADIO))
1600 __set_bit(CONFIG_SUPPORT_HW_BUTTON, &rt2x00dev->flags);
1601
1602 /*
1603 * Check if the BBP tuning should be disabled.
1604 */
1605 rt2x00_eeprom_read(rt2x00dev, EEPROM_NIC, &eeprom);
1606 if (rt2x00_get_field16(eeprom, EEPROM_NIC_DYN_BBP_TUNE))
1607 __set_bit(CONFIG_DISABLE_LINK_TUNING, &rt2x00dev->flags);
1608
1609 /*
1610 * Read the RSSI <-> dBm offset information.
1611 */
1612 rt2x00_eeprom_read(rt2x00dev, EEPROM_CALIBRATE_OFFSET, &eeprom);
1613 rt2x00dev->rssi_offset =
1614 rt2x00_get_field16(eeprom, EEPROM_CALIBRATE_OFFSET_RSSI);
1615
1616 return 0;
1617}