7. A few other points that must be noted.

Here are a few more points you might find to be of interest/useful.

7.1. The unofficial PCTel winmodem-Linux compatibility database.

There has been a lot of confusion over the --with-hal option which has to be used with the configure script, and for that, I coded a MySQL-PHP driven database that takes in information from the modem owners, so that newbies can browse and search the database, and find their modems' chipsets. If you have a PCTel modem, then please do submit your modem information at http://pctelcompdb.sourceforge.net.

7.2. Loading the modules at automatically

Well, if you have the pctel.o and ptserial.o files in /lib/modules/`your kernel version`/misc/ , you can just add these lines to your /etc/modules.conf file

# for pctel modem

alias char-major-62 ptserial

below ptserial pctel

# country code for pctel modem

options ptserial country_code=1


bash$ depmod -a

after modifying your /etc/modules.conf .

In this case, running ppp would automatically load these modules. You can also write up some shell-script and put them in your /usr/bin/ directory (I have a sample of such a script in the appendix section)

7.3. Country codes

The ptserial.o driver also lets you specify the country code, though for most situations, the default of USA is all right. If you still want to specify the country code, load the ptserial.o module with the command

bash$ insmod ptserial country_code=x

(where x is the country code you want) The list of country codes with the corresponding country names is listed below.

Table 1. Country Codes

Country Name country_code
Japan 7
Denmark 23
South Africa25
CTR21 Countries26
New Zealand32

7.4. Other options while loading the modules.

The other options that you may want to use while loading ptserial.o are:

For all HALs :

- irq: Force to using irq #.

- iobase: Force to use iobase for modem detection.

Only for I810/VAI686A HALs:

- iobase1: Force the iobase 1


NOTE: if you want to set iobase or iobase1, you should use irq/iobase/iobase1 at same time.

Only for CM8738/PCT789 HALs:

- vendor_id: vendor ID of the modem

- device_id: device ID of the modem.


NOTE: vendor_id and device_id should be used at the same time, but you cannot combinate this two options with iobase, iobase prevail to (vendor/device)_id detection.

7.5. The sequence of loading/unloading the modules.

When you load the modules, you must load the pctel.o module at first

bash$ insmod pctel

and then the ptserial.o

bash$ insmod ptserial

While unloading, the sequence is reversed,

bash$ rmmod ptserial

bash$ rmmod pctel

7.6. Bugs in the pctel-0.9.6 and the 0.8.6 versions.

There is a serious bug in the drivers for the kernel 2.4x The modem often seems to stop working/hang while dialing out, and you get nothing but a beeeeeeeeee... sound from the modem speaker and later, the dialer gives a message No Carrier and disconnects.

This problem has no real workaround , but sometimes unloading and reloading of the modules work. For that the commands will be (assuming that you have the modules in /lib/modules/'your kernel version`/misc/ )

bash$ rmmod ptserial

bash$ rmmod pctel

bash$ insmod pctel

bash$ insmod ptserial


You must exit from your dialer before trying to unload the drivers, otherwise you will get a device or resource busy error.

When the problems become too acute, the only solution seems to be rebooting.

It has been also noticed that sometimes, this problem is ISP dependent, with the problem surfacing when using a particular ISP.

7.7. Directory of the kernel source files

If you get an error saying /usr/src/linux/include/linux/modversions.h : no such file or directory, look in your /usr/src directory for the kernel source. The default location is /usr/src/linux/ but some distributions may install the files somewhere else.

If you find that the files are somewhere else, say in the directory, /usr/src/myspecialsource/ , do not try to move the files, just create a symbolic link with the command

bash$ ln -s /usr/src/myspecialdirectory/ /usr/src/linux/


In case of the PCTel-0.8.6 or newer drivers you can also specify the location of your kernel source by using the option

bash$ --with-kernel-includes=your kernel source directory

during running the configure script.

7.8. PnP BIOS issues

As most computers are designed for M$-Windows operating systems, the BIOS of the computer assumes that you have a what it calls a "PnP OS installed". This may cause trouble with these types of modems in GNU/Linux (specially if you have resource conflicts) and so the best bet is to change the option "PnP OS installed" to "No". To do these, you have to perform the following steps:

During startup, when you see "Memory Test" messages, CPU information, BIOS information, just press the DEL key (if that does not work, usually one of the Function (Fx) keys work..check your manual).

You will be presented with the BIOS configuration menu. Enter the "PNP/PCI Configuration" section and set the option for "PNP OS Installed" to "NO". Save the changes you have made, and then reboot.


This is not applicable to all BIOSs, and you are advised to consult your PC documentation if you have a different kind of BIOS configuration menu.

7.9. AMR modems

There are certain PCTel chip set based internal modems that go into AMR slots instead of the normal PCI slots. They are usually identified as HSP MR by the bash$ lspci command. These modems are supported by the pctel-0.9.6 drivers only.

7.10. Possible conflict with sound modules

Recently, there were some posts in the discuss@linmodems.org list that the PCTel modules worked only after the sound modules were unloaded with the bash$ rmmod command. If you do not get a response from your modem even after the pctel.o and ptserial.o modules have been loaded, then you can try unloading the sound modules, and then reloading the PCTel modules. However, this problem does not occur if you are using the commercial ($$$) drivers from www.opensound.com .