主题 : phy0 -> rt2500usb_init_eeprom: Error - Invalid RT chipset detected. 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 8404
精华: 0
发帖: 9
金钱: 50 两
威望: 13 点
综合积分: 18 分
注册时间: 2009-08-22
最后登录: 2010-05-25
楼主  发表于: 2010-02-22 01:17

 phy0 -> rt2500usb_init_eeprom: Error - Invalid RT chipset detected.

我是用友善官方最新的内核image(2.6.32.2),  插上TL-WN321G+到mini2440不能成功侦测, 但插上Windows XP是能正常使用, 所以确定不是硬件问题.

看到报错"phy0 -> rt2500usb_init_eeprom: Error - Invalid RT chipset detected."  大家知否是Linux内核问题吗?

[root@FriendlyARM /etc]# uname -a
Linux FriendlyARM 2.6.32.2-FriendlyARM #1 Fri Jan 8 12:53:23 CST 2010 armv4tl unknown

[root@FriendlyARM /etc]# usb 1-1: new full speed USB device using s3c2410-ohci and address 2
usb 1-1: New USB device found, idVendor=148f, idProduct=2573
usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
usb 1-1: Product: 54M.USB.......
usb 1-1: Manufacturer: Ralink
usb 1-1: configuration #1 chosen from 1 choice
phy0 -> rt2500usb_init_eeprom: Error - Invalid RT chipset detected.
phy0 -> rt2x00lib_probe_dev: Error - Failed to allocate device.
:
[ 此帖被kasim在2010-02-24 10:00重新编辑 ]
*無鈳取玳
级别: 论坛版主
UID: 27
精华: 12
发帖: 5398
金钱: 40120 两
威望: 17929 点
综合积分: 11036 分
注册时间: 2008-01-16
最后登录: 2014-11-22
1楼  发表于: 2010-02-22 13:11
这是内核中驱动(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, &reg);
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}
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."
级别: 新手上路
UID: 8404
精华: 0
发帖: 9
金钱: 50 两
威望: 13 点
综合积分: 18 分
注册时间: 2009-08-22
最后登录: 2010-05-25
2楼  发表于: 2010-02-24 01:54
放弃使用TL-WN321G, 转用了TL-WN322G.

咨询过rt73 driver (rt2x00)的开发团体, Ralink在rt73及rt2500有部分数组相同, 刚巧我的TL-WN321G就是用 USB_DEVICE(0x148f, 0x2573), 所以被错唔认为rt2500, 所以导致驱动安装失败. 可惜的说那个patch被reject了, 开发团体建议我自行修改. 我打算索性直接用universal programmer硬改无线网卡上的EEPROM的 USB Device ID.

http://patchwork.kernel.org/patch/45342/

rt2500usb.c
 /* Ralink */
 { USB_DEVICE(0x148f, 0x1706), USB_DEVICE_DATA(&rt2500usb_ops) },
 { USB_DEVICE(0x148f, 0x2570), USB_DEVICE_DATA(&rt2500usb_ops) },
 { USB_DEVICE(0x148f, 0x2573), USB_DEVICE_DATA(&rt2500usb_ops) }, //要删除
 { USB_DEVICE(0x148f, 0x9020), USB_DEVICE_DATA(&rt2500usb_ops) },

rt73usb.c
 /* Ralink */
 { USB_DEVICE(0x04bb, 0x093d), USB_DEVICE_DATA(&rt73usb_ops) },
 { USB_DEVICE(0x148f, 0x2573), USB_DEVICE_DATA(&rt73usb_ops) },
 { USB_DEVICE(0x148f, 0x2671), USB_DEVICE_DATA(&rt73usb_ops) },
*無鈳取玳
级别: 论坛版主
UID: 27
精华: 12
发帖: 5398
金钱: 40120 两
威望: 17929 点
综合积分: 11036 分
注册时间: 2008-01-16
最后登录: 2014-11-22
3楼  发表于: 2010-02-24 09:55
咨询过rt73 driver (rt2x00)的开发团体,

好,这是解决问题的正确方法
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."
级别: 新手上路
UID: 16263
精华: 0
发帖: 9
金钱: 45 两
威望: 9 点
综合积分: 18 分
注册时间: 2010-03-16
最后登录: 2011-02-20
4楼  发表于: 2010-03-16 21:31
我也是一样的问题中……