Удар в бубен:
---
src/linux-2.6.17/drivers/usb/net/asix.c | 5 +++++
1 files changed, 5 insertions(+), 0 deletions(-)
diff --git a/src/linux-2.6.17/drivers/usb/net/asix.c b/src/linux-2.6.17/drivers/usb/net/asix.c
index 12b599a..5d5f5d4 100644
--- a/src/linux-2.6.17/drivers/usb/net/asix.c
+++ b/src/linux-2.6.17/drivers/usb/net/asix.c
@@ -872,6 +872,11 @@ static const struct usb_device_id products [] = {
USB_DEVICE (0x2001, 0x1a00),
.driver_info = (unsigned long) &dlink_dub_e100_info,
}, {
+ // DLink DUB-E100
+ USB_DEVICE (0x2001, 0x3c05),
+ .driver_info = (unsigned long) &ax88772_info,
+}, {
+
// Intellinet, ST Lab USB Ethernet
USB_DEVICE (0x0b95, 0x1720),
.driver_info = (unsigned long) &ax8817x_info,
--
Это для того, чтобы устройство вообще определилось в системе.Хаки:
---
src/linux-2.6.17/drivers/usb/net/asix.c | 6 +++---
1 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/linux-2.6.17/drivers/usb/net/asix.c b/src/linux-2.6.17/drivers/usb/net/asix.c
index 5d5f5d4..829c2ef 100644
--- a/src/linux-2.6.17/drivers/usb/net/asix.c
+++ b/src/linux-2.6.17/drivers/usb/net/asix.c
@@ -589,7 +589,7 @@ static int ax88772_bind(struct usbnet *dev, struct usb_interface *intf)
msleep(5);
if ((ret = asix_write_cmd(dev, AX_CMD_SW_PHY_SELECT,
- 0x0001, 0, 0, buf)) < 0) {
+ 0x0000, 0, 0, buf)) < 0) {
dbg("Select PHY #1 failed: %d", ret);
goto out2;
}
@@ -614,7 +614,7 @@ static int ax88772_bind(struct usbnet *dev, struct usb_interface *intf)
if ((ret = asix_read_cmd(dev, AX88772_CMD_READ_NODE_ID,
0, 0, ETH_ALEN, buf)) < 0) {
dbg("Failed to read MAC address: %d", ret);
- goto out2;
+ //goto out2;
}
memcpy(dev->net->dev_addr, buf, ETH_ALEN);
@@ -625,7 +625,7 @@ static int ax88772_bind(struct usbnet *dev, struct usb_interface *intf)
0x0010, 2, 2, buf)) < 0)
|| (*((u16 *)buf) != 0x003b)) {
dbg("Read PHY register 2 must be 0x3b00: %d", ret);
- goto out2;
+ //goto out2;
}
/* Initialize MII structure */
--
Тут выкидывается проверка на PHY ID, поскольку ethernet физика стоит на разных ревизиях разная. Плюс меняется что-то для выбора физики. Без этих хаков MAC-уровень заводится нормально, ip присваивается, мак определяется, но физически данные никуда не уходят.
Спасибо LKML и людям пишущим в него, за инфу.
http://lkml.org/lkml/2006/7/6/132
http://lkml.org/lkml/2007/1/15/156
