The Motorola Surfboard 4100 and 4200 Cable Modem series are common devices provided by cable Internet services. They are easily configurable for use under Linux. For more information about the device not related to Linux configuration, please see the manufacturer's website here.
There are two requirements for using a Motorola Surfboard 4100 and 4200 series USB cable modem (hereafter referred to as a 'Surfboard'). The first is the appropriate networking support for the device in your kernel; note that most base installs of Linux distributions come TCP/IP and ethernet enabled 'out of the box,' so there is probably very little most readers will need to do other than be sure their ethernet card is working. If you know that your ethernet card is supported and working you can move on to Section 2.2. For those who like to compile their own kernels (see the Kernel HOWTO for more information), the following options are required to get the cable modem to work:
Under 'Networking options':
along with ONE of the following:
Network Device Support: Ethernet (10 or 100Mbit) Support and your ethernet card driver
USB Support + USB CDCEther driver support
PPP support is not required per se, as the modem is itself a PPP link.
Note that there are two possible interfaces on the modem to connect your computer. One is through ethernet and is probably the default a cable provider will attempt to use when setting up the Surfboard. The other is to use the USB interface. The former of these is arguably easiest; the only requirements other than the above is that you have an ethernet card installed which is open, i.e. that you can connect to the modem ethernet jack using ordinary 10BaseT/100BaseT ethernet cable. If you are uncertain about anything in the last sentence I recommend you read the Ethernet HOWTO for proper configuration of your ethernet card.
I have used my own 4100 model with each interface, and at least on my system there seems to be little difference in performance using an ethernet card or the USB port. The drawback of the ethernet method is that your network card will be tied up.
First, plug in and turn on the Surfboard. Connect your ethernet card to the Surfboard with 10BaseT/100BaseT cable into the non-USB interface, if this was not already done for you. Be sure the modem isn't on standby mode by checking the LEDs; you should see some dancing green lights to confirm this. The standby button is on the top of the device on most models. Your cable internet provider should be able to tell remotely whether your modem is connected and functioning properly, which is helpful for differentiating between hardware and configuration problems on your end. They will also need the MAC (Media Access Control) hardware address of your modem to allow the device access to their network. If at any time you substitute one modem for another you will need to inform them so the MAC address can be updated and your access to the cable network restored.
Once you connect for the first time, your modem will be assigned an IP address, which may remain the same or change periodically depending on the IP address turnover of your ISP's DHCP server, and how long you remain offline if you disconnect. Should the IP address provided to the modem by your ISP ever have to be released, for whatever reason, you can do this by resetting the device. This involves inserting the tip of a sharp pencil or a pin into the small orifice on the input face. The only time this may be necessary is if you are having trouble with your connection and you are instructed to try this maneuver by your ISP's technical support staff. Only do this if you know what you're doing or are directed to do so by your ISP, as it's generally not a good idea to go around sticking metal objects into the various openings of electrical devices.
The Surfboard works fine out of the box under Debian once you have installed and started the DHCP client package. As of this writing there are two user-space programs for this. In Woody (stable), there is the dhcp-client package, automatically installed as a part of the base packages as /sbin/dhclient. For Sarge (testing) and up, this has been replaced by the dhcpcd package. The latter has its configuration files under /etc/dhcpc, but nothing really needs to be modified if you are setting up only one ethernet card for the cable internet service. The dhcpcd daemon is easily installed for those using testing branch as root, with apt-get install dhcpcd .
For .rpm- or .tgz-based distributions, I offer the following link that walks you through the setup of a DHCP client, in the DHCP mini-HOWTO.
Just run /sbin/dhclient or whichever client you use to get a dynamic IP address.
Once you are plugged into the system you are provided your own IP address, which doesn't change unless you drop the lease (i.e. go offline) for a while. To confirm that the DHCP client is working and you have a new IP address, execute (as root) ifconfig without any other arguments, and you should see the following:
eth0 Link encap:Ethernet HWaddr 00:D0:09:DE:D4:6F inet addr:66.190.XXX.XXX Bcast:255.255.255.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:2591777 errors:0 dropped:0 overruns:0 frame:0 TX packets:5589 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:168673636 (160.8 MiB) TX bytes:1752872 (1.6 MiB) Interrupt:12 Base address:0xc400
lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:5168 errors:0 dropped:0 overruns:0 frame:0 TX packets:5168 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:1695104 (1.6 MiB) TX bytes:1695104 (1.6 MiB)
...which shows the system loopback device, /dev/lo, and also /dev/eth0, your ethernet card and the Surfboard, having successfully acquired an IP address (or 'inet addr') provided by the cable internet service provider.