Speedtouch was selling in the past a USB adapter for Ethernet: The Speedtouch 100 USB Fast Ethernet Adapter. Proudly they pronounce on their website that the stick is supported under Linux - in one of their support documents they even tell the exact kernels which are supporting the adapter (2.2 and 2.4). Speedtouch doesn't offer a driver though, so why this is their story is not clear to me.
I put the USB adapter in my computer which is running Linux kernel 2.4.x, and found out pretty quickly that the hotplug scripts of my Linux system did not detect the adapter. So far for the Plug-And-Play support from Speedtouch.
Bus 001 Device 004: ID 07b8:401a D-Link, Inc. cannot get string descriptor 1, error = Connection timed out(110) cannot get string descriptor 2, error = Connection timed out(110) cannot get string descriptor 3, error = Connection timed out(110) Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 1.10 bDeviceClass 0 Interface ... ...The time-outs scared me a little bit, but at least it showed me a USB Vendor-ID (0x07b8) and a USB Product-ID (0x401a). When I typed in these IDs at Google ("0x07b8 0x401a"), I immediately hit the jackpot: Somebody submitted a patch for the rtl8150 driver in the Linux 2.6.5 kernel which included support for these IDs.
Unfortunatly I'm not running a 2.6.5 kernel but a 2.4.x kernel. But I knew now that I probably had to hack in the rtl8150 driver source code to get what I wanted.
#define VENDOR_ID_THOMPSON 0x07b8
...
#define PRODUCT_ID_SPEEDTOUCH 0x401a
...
/* table of devices that work with this driver */
static struct usb_device_id rtl8150_table[] = {
{USB_DEVICE(VENDOR_ID_REALTEK, PRODUCT_ID_RTL8150)},
...
{USB_DEVICE(VENDOR_ID_THOMPSON , PRODUCT_ID_SPEEDTOUCH)},
{}
};
I rebuilt the modules ("make modules") and installed them ("make
modules_install").Next I did:
# modprobe usb-ohci # modprobe usbcore # modprobe rtl8150I reinserted the USB adapter and watched /var/log/messages:
kernel: Manufacturer: USBs kernel: Product: 10/100 Fast Ethernet kernel: SerialNumber: 9439 kernel: rtl8150.c: eth1: rtl8150 is detected /etc/hotplug/net.agent: invoke ifup eth1The rtl8150 driver did indeed support my Speedtouch 100 and I went on configuring things to get the new network interface (eth1) up and running.
Just to show why Open Source software works... :)