Sitecom USB net adapter in Suse 11

Pagina: 1
Acties:

  • linuxrob
  • Registratie: Januari 2007
  • Laatst online: 24-05-2025
Ik krijg een sitecom usb netwerkadapter (LS030) niet aan de gang. Chip (mcs7830) heeft inmiddels wel een linux kernel driver, die in unstable debian en opensuse 11 (waar ik nu ff naar kijk) standaardaard aanwezig is. Als ik hem aansluit zie ik in /var/log/messages:

Jul 27 00:53:07 linux-r6gx kernel: usb 5-8: new high speed USB deviceusing ehci_hcd and address 8
Jul 27 00:53:07 linux-r6gx kernel: usb 5-8: configuration #1 chosen from 1 choice
Jul 27 00:53:07 linux-r6gx kernel: usb 5-8: New USB device found, idVendor=0df6, idProduct=0021
Jul 27 00:53:07 linux-r6gx kernel: usb 5-8: New USB device strings: Mfr=1, Product=2, SerialNumber=3
Jul 27 00:53:07 linux-r6gx kernel: usb 5-8: Product: USB-MAC Controller
Jul 27 00:53:07 linux-r6gx kernel: usb 5-8: Manufacturer: Moschip Semiconductor
Jul 27 00:53:07 linux-r6gx kernel: usb 5-8: SerialNumber: f64124f2

dat ziet er veelbelovend uit, maar er wordt geen usb0 netwerkdevice aangemaakt, zoals ik overal in usbnet howto's lees... iemand enig idee waarom niet? mcs7830 en usbnet worden overigens niet vanzelf geladen, maar als ik die wel laadt gebeurt er verder ook weinig...

hetzelfde effect zag ik in unstable debian (standaard ethc heeft de driver niet)

tips zijn welkom!

  • deadinspace
  • Registratie: Juni 2001
  • Laatst online: 28-01 16:23

deadinspace

The what goes where now?

En als je die drivers geladen hebt, wat is dan de output van
ifconfig -a
?

  • linuxrob
  • Registratie: Januari 2007
  • Laatst online: 24-05-2025
dan staat de usb0 er niet bij, wel de ingebouwde wlan interface.

linux-r6gx:/etc # lsmod | grep 'mcs'
mcs7830 26240 0
usbnet 38920 1 mcs7830
mii 23168 2 mcs7830,usbnet
usbcore 188248 9 mcs7830,usbnet,cxacru,usbatm,usbhid,usb_storage,ehci_hcd,uhci_hcd
linux-r6gx:/etc # ifconfig -a
eth0 Link encap:Ethernet HWaddr 00:1C:25:85:05:12
inet addr:192.168.3.111 Bcast:192.168.3.255 Mask:255.255.255.0
inet6 addr: fe80::21c:25ff:fe85:512/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:7532 errors:0 dropped:0 overruns:0 frame:0
TX packets:7999 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:5707023 (5.4 Mb) TX bytes:1200573 (1.1 Mb)
Memory:feae0000-feb00000

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:534 errors:0 dropped:0 overruns:0 frame:0
TX packets:534 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:35012 (34.1 Kb) TX bytes:35012 (34.1 Kb)

wlan0 Link encap:Ethernet HWaddr 00:1F:3A:5A:36:EC
BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)

wmaster0 Link encap:UNSPEC HWaddr 00-1F-3A-5A-36-EC-00-00-00-00-00-00-00-00-00-00
BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)

  • linuxrob
  • Registratie: Januari 2007
  • Laatst online: 24-05-2025
Met een truuk heb ik het werkend gekregen:

- kernel sources opgehaald (linux-2.6.25.11-0.1, niet de 2.6.25.5-1.1-default die ik draai maar goed)
- in source van drivers/net/usb/mcs7830.c eea geedit
- make modules
- de mcs7830.ko gekopieerd naar /lib/modules/2.6.25.5-1.1-default/kernel/drivers/net/usb
- en voila: eth1 wordt aangemaakt en is bruikbaar!
als check de source van mcs7830.c teruggebracht naar orgineel, opnieuw gecompileerd en kopieerd, en toen werke het idd niet meer.

wat ik gewijzigd heb in mcs7830.c zijn de regels:
#define MCS7830_VENDOR_ID 0x9710
#define MCS7830_PRODUCT_ID 0x7830

daar heb ik het vendor en product id van de sitecom interface van gemaakt: 0df6 en 0021...

iets zegt me dat hier ook een nettere manier voor moet zijn, maar he, ik edit het wel ff, zal me even verdiepen in het echt kernel compileren en een nete complete maken ipv alleen een module en dan werkt het wel.
maar als iemand kan vertellen wat de nette aanpak is, hoor ik het graag.

  • deadinspace
  • Registratie: Juni 2001
  • Laatst online: 28-01 16:23

deadinspace

The what goes where now?

Hmm, ik weet niet of het mogelijk is dit te overriden zonder de source te bewerken. Sommige drivers hebben hier expliciete parameters voor, maar de msc7830 driver heeft dat niet.

Wat in ieder geval een goed idee is, is zorgen dat jouw PCI ids ook opgenomen worden in die driver, zodat het straks out of the box gaat werken. Misschien kun je daarvoor het beste een van de mensen die bovenaan die file als copyright-holder staan benaderen.

  • linuxrob
  • Registratie: Januari 2007
  • Laatst online: 24-05-2025
> Wat in ieder geval een goed idee is, is zorgen dat jouw PCI ids ook opgenomen worden in die driver,

yep, ik had maandag de ingeving de programmeur van de driver eens te mailen. Zes uur later had ik een goede patch (die mijn id's en nog een andere toevoegd ipv de bestaande vervangt) en nog een half uur later was die patch acked... ze zijn onderweg naar out of de box werken ;-)

voor de volledigheid echte patch: (zelf nog niet getest, maar ziet er goed uit)

--- a/drivers/net/usb/mcs7830.c
+++ b/drivers/net/usb/mcs7830.c
@@ -46,6 +46,10 @@

#define MCS7830_VENDOR_ID 0x9710
#define MCS7830_PRODUCT_ID 0x7830
+#define MCS7730_PRODUCT_ID 0x7730
+
+#define SITECOM_VENDOR_ID 0x0DF6
+#define LN_030_PRODUCT_ID 0x0021

#define MCS7830_MII_ADVERTISE (ADVERTISE_PAUSE_CAP | ADVERTISE_100FULL | \
ADVERTISE_100HALF | ADVERTISE_10FULL | \
@@ -491,7 +495,16 @@ static int mcs7830_rx_fixup(struct usbnet *dev, struct sk_buff *skb)
}

static const struct driver_info moschip_info = {
- .description = "MOSCHIP 7830 usb-NET adapter",
+ .description = "MOSCHIP 7830/7730 usb-NET adapter",
+ .bind = mcs7830_bind,
+ .rx_fixup = mcs7830_rx_fixup,
+ .flags = FLAG_ETHER,
+ .in = 1,
+ .out = 2,
+};
+
+static const struct driver_info sitecom_info = {
+ .description = "Sitecom LN-30 usb-NET adapter",
.bind = mcs7830_bind,
.rx_fixup = mcs7830_rx_fixup,
.flags = FLAG_ETHER,
@@ -504,6 +517,14 @@ static const struct usb_device_id products[] = {
USB_DEVICE(MCS7830_VENDOR_ID, MCS7830_PRODUCT_ID),
.driver_info = (unsigned long) &moschip_info,
},
+ {
+ USB_DEVICE(MCS7830_VENDOR_ID, MCS7730_PRODUCT_ID),
+ .driver_info = (unsigned long) &moschip_info,
+ },
+ {
+ USB_DEVICE(SITECOM_VENDOR_ID, LN_030_PRODUCT_ID),
+ .driver_info = (unsigned long) &sitecom_info,
+ },
{},
};
MODULE_DEVICE_TABLE(usb, products);

  • deadinspace
  • Registratie: Juni 2001
  • Laatst online: 28-01 16:23

deadinspace

The what goes where now?

Ah, gaaf :)

We hebben hier trouwens [quote][/quote], [cmd][/cmd] en [code][/code] tags om te helpen je post wat beter te formatten ;)
Pagina: 1