Hybrid Cable modem ISPs

If you think you have the card recognized you have to now look at the entry for your ISP. I have sorted the information according to a provider because setups are mostly ISP specific.

This section is for people who are using so-called "hybrid" cable modems. Hybrid modems are modems that need two hookups (connections), one to the (TV) cable and one to the phone line. TV cable is used for downloading while phone line is used for uploading.

Adelphia Powerlink, USA

Instructions on how to get your Adelphia Powerlink hybrid modem running under Linux can be found at http://linuxpower.cx/~cable/

LinkExpress, Brasil

This information is provided by Rodrigo Severo :

First of all, let me tell you that here we have the MMD Cable Modem from General Instrument. We use SurfBoard 1000 ISA board for download and a regular telephone modem for upload. I would prefer to use an external board like the SurfBoard 1200 which is available only to corporate users, i.e., willing to pay US$ 200,00 instead of the regular US$ 30,00 so I found out this driver for the internal ISA board. For home users, Linkexpress (my ISP) just installs and supports the internal ISA board - Surfboard 1000. If you want to use it, you have to install Windows 95/98 on your computer and let the guy from Linkexpress install the equipment. After that, make your Linux installation as you like.

I started from the files I downloaded from http://linuxpower.cx/~cable/.

Here is the relevant data:

During a download from a local tucows mirror I got 70KB~300KB per second. From distant sites I managed to get 30KB/s a few times.

More information about LinkExpress can be found at http://www.linkexpress.com.br/.

ExpressNet, Maryland

I recently accuired an expressnet cable modem for the maryland area. it is a com21 one way modem and I had a hell a time making it work so id like to share my knowledge in your faq maybe? well heres what I learned inorder for the PPP connection to authenticate the user must be running PAP which consists of editing the /etc/ppp/pap-secrets file accordingly:

#/etc/ppp/pap-secrets
#this is the PAP secrets file for PPP
#the quotes are required on both
"username"      *       "password"

after that they must create a PPP-on script what ever name it must execute this command:

exec /usr/sbin/pppd debug persist /dev/ttyS1 38400 0.0.0.0:0.0.0.0 connect "chat -v TIMEOUT 3 ABORT 'BUSY' ABORT 'NOANSWER' '' ATH TIMEOUT 30 'OK' ATDTTELEPHONE CONNECT ''"

this must be done with no carrage returns either

next step is to modify the /etc/ppp/ip-up.local file if it does not exist it should be created it should read the following:

#!/bin/bash
#/etc/ppp/ip-up.local
#this will set up the route to the ppp device as default everytime the modem
#authenticates dont include it if you do not want this option
route add default ppp0

then the user must configure their ethernet card on box I have a 3c905.

I configured it the following way:

ifconfig eth0 up
ifconfig eth0 10.0.0.1 broadcast 10.0.0.15 netmask 255.255.255.240

then I added some more routes to the kernel routing table as follows:

route add -host 10.0.0.1 eth0
route add -net 10.0.0.0 eth0

all of these commands can be added into a script file as follows

#!/bin/bash    
#This is a script file for establishing the cable modem IF device properties as
#well as the route properties
ifconfig eth0 up
ifconfig eth0 10.0.0.1 broadcast 10.0.0.15 netmask 255.255.255.240
route add -host 10.0.0.1 eth0
route add -net 10.0.0.0 eth0

thats all and the cable modem connection is setup fast as hell I might add.

Contributors: Chris and Mike Milbert .

Charter Pipeline, Riverside, CA

This information is provided by Gabriel Peters :

(I have Charter Pipeline, Powered by Earthlink, Riverside, CA) The modem is a Com21 ComPORT 2000.. connected to the computer via 10 BaseT ethernet cable to a Linksys 10/100 ethernet card (Cable modem, ethernet cabling, and ethernet card supplied) The ethernet card driver that I had to compile into the kernel was for the DEC Tulip. auto-detected the card and set it up nicely.

This is the information I needed:

eth0 IP address - 10.0.0.1
DNS Servers - 207.217.126.81, 207.217.120.83
Subnet Mask - 255.255.255.240
Gateway: None
Your hostname should be CBL-(your username).hs.earthlink.net

Then you need to configure PPP to dial up your access number as normal.. What I had to do to get it to work was this: I typed ifconfig eth0 down to shutdown the ethernet, ppp-go to dial in, once it reported my IP addresses, i typed ifconfig eth0 up and voila, it worked perfectly.

Editor's comment:

Each time PPP link is brought up or down pppd executes scripts /etc/ppp/ip-up (link up) and /etc/ppp/ip-down (link down) so in order to have Ethernet network go up and down with PPP link simply add:

ifconfig eth0 up

before exit 0 statement in /etc/ppp/ip-up and ifconfig eth0 down in ip-down.

Chambers Cable, Chico, CA / Fundy Cable, New Brunswick

This information is provided by Brian Moore :

For those using Chambers Cable in Chico, CA, the product is the Scientific Atlanta data Xcellerator(tm) modem. Mike Cumings of Cal State University wrote a nifty driver for it, available at http://www.ecst.csuchico.edu/~mcumings/cablemodem/. This should also work for others using the same modem, such as Fundy Cable of New Brunswick.

Smyrna Cable, Atlanta, GA

This information is provided by Blake Sorensen :

I have Smyrna Connect, supported by Smyrna Cable in Atlanta, GA. They are currently (June, 1999) using half-duplex but are scheduled to have full-duplex within six months. The Cable Modem is a ComPort Com21. Here is the configuration stuff I needed to get my linux box running as my dialup.

My eth0 device is a 3com ISA card set to IP 10.0.0.1, Bcast 10.0.0.255, Mask 255.255.255.0.

The machine is set to the hostname Smyrna418.smyrnacable.net where Smyrna418 is my username. I don't think this is that important, but I haven't fiddled with it to see if it will still work once I change the hostname.

My modem is an external 56K X2 US Robotics on /dev/ttyS0.

I also have eth1 (a DEC tulip based pci card) set up as 192.168.0.1 as the gateway for the rest of my network to masquerade behind.

Smyrna Connect does not give you DNS info for the cablemodem since you are supposed to use the Windows PPP feature of using the default DNS for the server you dial in to. However, they do have one that works at 209.116.152.252.

I use a ppp connection script to dial in, but the guts of it is this:

/usr/sbin/pppd modem /dev/ttyS0 persist mru 1000 asyncmap 0 \
-detach crtscts user Smyrna??? defaultroute connect '/usr/sbin/chat \
ABORT BUSY ABORT ERROR "" ATZ OK ATDT7704365664 CONNECT' \
57600 0.0.0.0:0.0.0.0 &

I keep the persist in there since Smyrna Connect has a habit of dropping the connection every once in awhile, and this way it automatically dials back in. You will need to replace the Smyrna??? in the above command with your own username and put the line:

Smyrna???       Smyrna???       password

in the file /etc/ppp/pap-secrets.

Amnet de Costa Rica, Costa Rica

This information is provided by Roberto Salvatierra :

Ok to set up a Hybrid cable modem conection using Costa Rica's Amnet Provider is not all that hard ( once you get the hang of it ) is like the other providers that use com21 modems, but with some minor diferences.

My Hardware is:

CableModem: Com21 ComPort 1000
Modem     : Rockwell 56k
Ethernet  : Ne2k PCI clone
Machine   : i386
Os        : Debian 2.1
Kernel    : either a 2.2.x or a 2.3.x*

The first thing I did was disable my whole networking system, mainly because i had a real mess on my routing tables, hosts, and resolv.conf files ( I was using several ISP's and an intranet ) so I opted for this but that was just me, I even stopped lo so I started with a clean config.

okey first of all if you have a dual system ( win/linux ) make sure the system is working under windows, that way we can make sure everything is up and running, after that, reboot to linux**.

If you don't have a dual system I found something interesting that MIGHT help you state if the cablemodem and the eth card are functional, first, type this on your system:

ifconfig eth0 up
ifconfig eth0 10.0.0.1 netmask 255.255.255.240
route add -host 10.0.0.1 eth0

after that look in your system log files for pings from 10.0.0.4 ( I have no idea why but this machine keeps "pinging" my box ,I asked amnet's help desk what was this all about, and they didn't give me an answer I guess they do It to check the network integrity) well anyhow, if you get this pings means that amnet connection is working okey.

well after we have stated that the cable modem is up and running the rest is quite easy.

if you did the above step now lets bring eth0 down ( ifconfig eth0 down )

first lets place amnet's DNS where it sould be in /etc/resolv.conf so we need to add this:

search amnet.co.cr
nameserver 196.40.3.10

okey now we need a ppp script for the modem

this one works: ( we all use the same username "amnet" and password "conexion" so for this to work just cut and paste)

exec /usr/sbin/pppd /dev/ttyS1 57600 0.0.0.0:0.0.0.0 debug user amnet
defaultroute connect "chat -v TIMEOUT 60 ABORT 'BUSY' ABORT 'NOANSWER' ''
ATH TIMEOUT 60 'OK' ATDT2969130 CONNECT ''"

amnet uses PAP (password authentication protocol) to authenticate users so we need to add a line to /etc/ppp/pap-secrets:

"amnet" * "conexion"

okey now you need to bring ppp up so just run that script to check that it works type: ifconfig, now you should have something like this:

ppp0      Link encap:Point-to-Point Protocol
          inet addr:196.40.3.177  P-t-P:196.40.30.114  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:7 errors:1 dropped:0 overruns:0 frame:1
          TX packets:9 errors:0 dropped:0 overruns:0 carrier:0
          Collisions:0

Important: make sure at this point that you do not have eth0 up or it WILL NOT WORK

okey after you have this working type this:

ifconfig eth0 up
ifconfig eth0 10.0.0.1 netmask 255.255.255.240
route add -host 10.0.0.1 eth0

now type ifconfig you should have something like this:

eth0      Link encap:Ethernet  HWaddr 00:00:21:61:7C:F0
          inet addr:10.0.0.1  Bcast:10.255.255.255  Mask:255.255.255.240
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:5594 errors:0 dropped:0 overruns:0 frame:0
          TX packets:241 errors:0 dropped:0 overruns:0 carrier:0
          Collisions:0
          Interrupt:11 Base address:0xde00

ppp0      Link encap:Point-to-Point Protocol
          inet addr:196.40.3.142  P-t-P:196.40.30.114  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:7 errors:2 dropped:0 overruns:0 frame:0
          TX packets:65 errors:0 dropped:0 overruns:0 carrier:0
          Collisions:0

and voila , your conection is up and running !!

some tips:

when you are not connected your eth should be DOWN activate eth only AFTER ppp is running OR IT WILL NOT WORK.

To make this you can add the eth up and down scripts to /etc/ppp/ip-up and /etc/ppp/ip-down scripts ( on debian just place them on /etc/ppp/ip-up.d and /etc/ppp/ip-down.d )

ip-up should contain this:

ifconfig eth0 up
ifconfig eth0 10.0.0.1 netmask 255.255.255.240
route add -host 10.0.0.1 eth0

and ip-down this:

ifconfig eth0 down

now here is a WORKING route table that might help you troubleshooting the system: ( my HOSTN = hostname )

Destination     Gateway         Genmask         Flags Metric Ref    Use
Iface
HOSTN.amnet.co. *               255.255.255.255 UH    0      0        0 eth0
196.40.30.114   *               255.255.255.255 UH    0      0        0 ppp0
HOSTN.amnet.co. *               255.255.255.240 U     0      0        0 eth0
default         196.40.30.114   0.0.0.0         UG    0      0        0 ppp0

Relevant Information:

DNS      : 196.40.3.10
----- eth0 -----
IP       : 10.0.0.1 
NetMask  : 255.255.255.240
Bcast    : 10.255.255.255
Gateway  : NONE
----- ppp ------
IP       : 196.40.X.X (Dhcp Pool)
NetMask  : 255.255.255.255
Bcast    : Unknown
Gateway  : Self Default

that's all folks !!

if you need this in spanish look for it in: http://www.internetTICO.com/cablemodem.html

Questions/comments: . Please use the subject CABLEMODEM or I will not answer.

Biography: Linux Cable Modem mini-how-to Chapter: Hybrid cable modems sections, 4.2 and 4.4

* about using 2.3.x kernels, this are unstable as anyone knows but I found that the performace with this kernel and amnet is LOUSY ( like a 14K modem ) I DO NOT RECOMEND USING IT, but anyhow if you do use it and you get that your machine does not have ppp do not panic just upgrade your pppd program, 2.3.x kernels use a split async sync interface so pppd < 2.3.10 will NOT work.

** sometimes when I'm using the cable modem on windows and I reboot to linux the modem gets "stupid" so I need to turn off the modem, the machine, then turn on the modem and restart the machine after that it always work. I have no Idea why this happens but I'm guessing that the ethernet card has a different hardware address on windows and linux (wierd) and that the modem keeps this config on an memory, and that it needs to be cleand up for it to work, so if it was working on windows and you are not getting even a ping on linux try this.

More info about Amnet can be obtained at http://www.amnet.co.cr/.

Prime Cable, Chicago, IL

This information is provided by Eric Agnew :

I just got a hybrid com21 setup w/ Prime Cable in Chicago, and I have a very important addition that will save other users (particularly debian users w/ newer kernels) a LOT of grief:

When I initially set everything up, I was able to establish the ppp connection just fine, but the only things coming back over eth1 were broadcast packets from an internal (10.0.0.x) network. After 3 weeks of extreme frustration, I finally found the solution in the kernel docs under Documentation/networking/README.sb1000:

Solution -- As root type:

echo 0 > /proc/sys/net/ipv4/conf/cm0/rp_filter'

so it can share the same IP address as the ppp0 interface.

The boot-time script that sets this normally on debian systems is in /etc/init.d/networking, in the 'spoofprotect_rp_filter' function. I simply added 'echo 0 > /proc/sys/net/ipv4/conf/eth1/rp_filter' after it had done everything else. To be sure, I also added it to a script I added to /etc/ppp/ip-up.d that brought eth1 up if I was using the cable connection (as opposed to my other straight-ppp connection).

Millennium Digital Media, Maryland

This information is provided by Mike Miller :

I live in Maryland (Anne Arundel County) where my cable company is Millennium Digital Media ( http://millenniumdigitalmd.com/ ), which offers Cable Modem service from Cablespeed ( http://cablespeed.com/ ). Since most areas aren't currently upgraded to 2-way digital service, for now they're giving us a General Instruments SURFboard SB2100D external (hybrid) cable modem (which includes a 33.6 modem), so you plug the cable and phone line right into the cable modem -- no need to use your own modem or set up ppp or anything. The modem uses DHCP to determine all the settings and connect to the network, so all I have to do it switch on the modem and it automatically dials up and connects to the network. To get Linux working, all I had to do was load and configure dhcpd (or dhcp-client). Since I'm using Debian, all I ran was:

   apt-get install dhcp-client

and voila! I was on the net.

If you're running something other than Debian, please read DHCP mini-HOWTO at http://www.oswg.org/oswg-nightly/DHCP.html.