HOWTO: Dial-up Internet access

I access the Internet by conventional modem dialup to an ISP (Internet Service Provider), so that is how I originally designed Puppy. There are some notes further down this page for broadband/ADSL access.

Analog modem setup

Configuring Puppy for Internet access using modem dialup should be extremely simple. If you have a external serial modem (which is strongly recommended for Linux) then it will have been autodetected by Puppy -- as long as it is turned on when Puppy starts up. Then, all you have to do is click on the 'connect' icon that you will see bottom-left of the screen and choose to launch the dialer program GKdial.

If your modem was not autodetected, but you do have what is known as a 'hardware modem', you will need to run the Modem Wizard:
Just like Windows 9x, 2000 and XP, Puppy has a "Start" button -- click on this and up will pop a menu. Select this from the menu:
Setup --> Modem Wizard

The Modem Wizard locates your modem. If you already know that your modem is /dev/ttyS0 for example (same as COM1 in the DOS/Windows world), fine, but do run the Wizard. The Wizard causes /dev/modem to be linked to the actual modem, and the dialer program GKdial is configured to use /dev/modem. Also, the Wizard causes setserial to execute at bootup (which is supposed to initialise your modem properly). You only need to run the Wizard once, and settings are remembered.

NOTE: Puppy currently supports two types of "software" modem, the Lucent Linmodem, and the Smart-Link range of soft-modems. See notes below.

GKdial, the dialer program

Click the 'connect' icon on the desktop and choose to launch GKdial. Note, this icon by default launches the Internet Connection Wizard, but you can easily change the icon to immediately launch GKdial.

GKdial enables you to create multiple accounts, that is, to dialup as many different ISPs (Internet Service providers) as you wish.
When you first start Gkdial, create an account by clicking the "Add" button. There are some simple questions to answer, such as your username, password,  and ISP telephone number.

The only "difficult" part of setting up an account with Gkdial is that it asks for "Server Name" and to choose CHAT, PAP or CHAP connection protocol. In the case of Server Name, just choose any meaningful name to describe the account (it probably doesn't matter, but just to be on the safe side, only enter a single word, no spaces). For the connection protocol, PAP works for me, so give that a go. Your second choice would be CHAP.

Gkdial keeps the configuration files for each account in /etc/ppp/peers and /etc/ppp/chatscripts folders, so if you ever really need to get into fiddling with them, you know where they are!

After creating an account in Gkdial, you simply click the "Connect" button ...and cross your fingers!

Note that the default "modem initialization string" used by Gkdial does not work for all modems. Symptoms could be that although the modem is recognised it won't dial-out, or won't connect. In that case you have to edit the modem configuration file created by Gkdial in /etc/ppp/chatscripts/. Documentation on initialization strings is below.

NOTE: There is a second analog modem dialup program, called Xeznet, which is a GUI frontend to eznet. Try this if GKdial doesn't work. Note that when adding an account, the "tty" field and the "speed" field do not need to have anything entered into them as they default to /dev/modem and 115200bps.

ADSL/Broadband

My own experience with using Puppy to connect to ADSL was very simple and pleasant.

A friend of mine has ADSL with westnet.com.au (in Australia). Her computer runs Windows 98, and she ran the Easy-Config program supplied on the CD. She purchased a Netcomm NB1300 Plus 4, which is an ADSL router modem with one usb and four ethernet ports. On my recommendation, she did not use the usb port. She connected the first ethernet port to her PC, inserted the CD and did some simple hardware configuration as explained in docs on the CD (basically, choose "Never dial a connection" in the Internet configuration, and run "winipcfg" and choose the ethernet card not the dialup modem and press "Renew" button). Then she ran Easy-Config and just entered three parameters: she had to choose a "ISP-profile" and she left it at the first one, which was "ISP-profile-001". The other two parameters were username in format of "username@westnet.com.au" and her password.

Hey presto, she was up and running.

I plugged my PC into the second ethernet port, ran the Puppy Ethernet/network Wizard and chose DHCP, and immediately I was off and running also!

My experience highlights the advantage of using a better quality modem. If you are thinking of upgrading from dial-up to ADSL, look very carefully at the modems offered by the ISPs. The Netcomm NB1300 Plus 4 has a router built-in, so supports 4 PCs simultaneously connected to the internet (5 PCs if the usb port is also used). After running Easy-Config, the username and password are stored inside the modem itself. This modem has built-in DHCP server and firewall capability. In fact, this kind type of intelligent modem may be running Linux internally -- I don't know if this particular model does though.

Avoid a usb-only modem. Cheap and troublesome. For Windows, they require a special driver to be installed, whereas an ethernet modem needs no special driver. For Linux, ethernet modems are supported, but usb modems may not have a driver. Puppy has very little support for usb modems.

An update to the above is that I recently setup another ADSL router modem for somebody, and this one has a web browser interface -- meaning that no Windows-specific software is required to get it setup -- the way to go!

Troubleshooting

Modem strings

It is on my to-do list to provide a list of modem strings for you to choose from. If you find that your modem will not dial out properly, in the case of GKdial look in /etc/ppp/chatscripts/ folder, and you can edit the file therein. Here are some URLs with lists of modem strings for particular modems:

www.56k.com/inits

www.west.net/~jay/modem

Here is a typical modem string:

ATZL1M1&FW2

ATZ sets modem to defaults, L1 turns on the speaker, M1 set the speaker volume, &FW2 sends dialer info from the modem.

Note also that some modems need to have a "country code" programmed into them, which is done by a Hayes command (that is, put it into the modem string). This is something that I need to document. Currently, country-setting is only provided in the Puppy Modem Wizard for the Smart-Link range of soft-modems (winmodems).

Puppy 1.0.3+ has the WvDial package, which includes the wvdialconf program. Open an rxvt window and execute this:
# wvdialconf /etc/wvdial.conf

The most interesting thing about wvdialconf is that it finds your modem then probes it and determines a suitable initialisation string. You could try this string with Gkdial. Note that the file /etc/wvdial.conf created by wvdialconf is intended to be used by the WvDial dialup program wvdial, executed like this:

# wvdial

...however, be sure to first edit /etc/wvdial.conf and enter username and password.

So, wvdial is another way to dialup  an ISP, in addition to Gkdial and Xeznet/eznet.

If you would like to experiment with sending Hayes commands to your modem, Puppy has a neat little commandline program called modem-stats. Open a terminal window and run it like this:

# modem-stats -c "AT" /dev/ttyS0

There is another application, called Cutecom, a serial port terminal program, that you will find in the Utilities menu (note, recent releases of Puppy do not have this program builtin -- it is a PupGet package: see the menu Setup --> Puppy Package Manager.). It's very easy to use: for my modem I had to tick the "Handshake: software" checkbox and selected "CR,LF line end" from the listbox near bottom of the window. After opening the serial port for any Hayes commands that you type in "Input:" box, the response from the modem will appear in the top text box. For example, you type "AT" followed by the ENTER key, and the modem should respond with "OK".

Winmodems

If your modem is not autodetected and the Modem Wizard doesn't work, it probably means you have a "winmodem". These are cheap modems sold with most PCs these days and either need a driver for Linux or won't work at all.
External modems are usually okay, as they are true "hardware" modems. I recommend a true hardware modem as it gives faster data transfer rate (in my experience). Older internal ISA-bus modems are usually hardware modems. An older internal PCI-bus modem may be a hardware modem (but probably isn't).

If you don't want to be bothered with the hassle of trying to get a driver for your winmodem, I recommend the investment of purchasing an external serial modem, but not a USB modem. Unfortunately some manufacturers are apparently cutting costs with external USB modems and it may not be a true hardware modem.
With a true hardware modem, Puppy will autodetect it at bootup and all you have to do is click the 'connect' icon on the desktop to launch GKdial.

However, Puppy does support two types of software modem:

The Lucent DSP Linmodem. The term "Linmodem" refers to a software modem that has a driver for Linux. Basically, the range supported is the Lucent (Agere Systems) Apollo and Mars chipsets, specifically the chips DSP1642-CC, DSP1641-CC, DSP1643-CH, DSP1644-CH, DSP1641B-CH, DSP1645, DSP1646, DSP1648, DSP1648B, and APL43. Lucent Venus chipset modems and soft AMR modems are not supported (actually, I have an internal PCI modem that identifies itself as having the Venus chipset, but it is a true hardware modem, so maybe all Venus chipsets are?).

The Smart-Link range of soft-modems. The modems supported are:

HAMR5600 based AMR/CNR/MDC/ACR modem cards on the following Southbridge chips:
Intel ICH0,ICH2, ICH3, ICH4, Via 686A, 686B, 8231, 8233, SiS 630, ALI 1535.

SmartPCI56/561/562/563 based PCI modem cards.

SmartUSB56 based USB modem.

Note that some other brands of modem use the same chipset as one of the above, so may work. I think that the latest version of the SmartLink driver is deliberately restricted to working with SmartLink modems only, but I haven't verified that.

Here are places to look for help:

You'll need Internet access to get at the following:

For more information about the Lucent Linmodem: www.sfu.ca/~cth/ltmodem

This website has a utility for scanning your modem and identifying it: linmodems.technion.ac.il

This site has more info and drivers for winmodems: linmodems.technion.ac.il/resources.html

However, if you don't have a Lucent Linmodem or one of the Smart-Link modems, I recommend don't bother. The winmodem driver will mostly likely have to be compiled for the specific version of Linux kernel used in Puppy, which is going to be a real hassle when Puppy is upgraded.
My own experiments on Windows show significant speed advantages with using a true hardware modem, so I strongly recommend that one be purchased even if you only use Windows.
The bottom-line is that currently Puppy can only be used for dial-up surfing the Internet if you have a true hardware modem, or the Lucent DSP Linmodem or Smart-Link modem.

Update: There is a HSF/HCF modem driver for Puppy. See the Puppy Forum.

(c) copyright 2004,2005,2006 Barry Kauler