5. Compiling and installing the drivers

The first requisite for installation is that you have a kernel source in /usr/src/linux/ (see section 7.6) and it must be configured, that is, you should have done a bash$ make configure and bash$ make dep on it.

While doing these make sure that you have the source for your running kernel...for example, if you are running kernel 2.4.8 and if you have the source for kernel 2.4.9 in /usr/src/linux/, then the drivers would not work.

Moreover, you must configure the kernel with isapnp and pnp support and see to the fact that you don't have a smp/uniprocessor mismatch ( that is, running uniprocessor kernel but having a kernel source with smp support in /usr/src/linux). Also, you will need a kernel which supports loadable modules.

And of course, you need to have gcc installed, check it by issuing the command bash$ gcc -v . If you do not get any errors, the everything is all right

5.1. Installing the 2.2x drivers.

Login as root.

Make sure that you have a 2.2.x kernel with the command bash$ uname -r

Check whether the downloaded files are in your current directory with the

bash$ ls

command. Then unpack the downloaded files with the command

bash$ tar -xzvf pctel-2.2.tar.gz

Once you have unpacked, you will be left with a ~/pctel directory.

Move into that directory with the command

bash$ cd pctel/

There is an (install.sh) installation script that makes the job easier from now on.

Make this script executable with the command

bash$ chmod +x install.sh

Then, just run the script

bash$ ./install.sh

You will see a number of messages fly by as the appropriate device files/nodes are made in the /dev/ directory, the driver files are unpacked and then compiled and loaded into the memory.

Once the process is complete without any error messages (if you get any errors, proceed to the Troubleshooting section), you will find that a new directory called lib/ has been created under directory ~/pctel/. This ~/pctel/lib/ directory contains the drivers/modules that can be loaded into the kernel.

If you move into the ~/pctel/lib/ directory with

bash$ cd ~/pctel/lib/

and do a bash$ ls, you will find two files there, one called pctel.o and the other ptserial.o

These are the two modules that are to be loaded to make the modem work.

To load the modules, you will have to issue the commands

bash$ insmod pctel.o

bash$ insmod ptserial.o

from the ~/pctel/lib/ directory.

(The install.sh script automatically does this, so you don't need to do the insmod part after running the script, but once you reboot, you will have to load the modules by

bash$ cd `your pctel directory`/lib/

bash$ insmod pctel.o

bash$ insmod ptserial.o )

5.2. Installing the pctel-2.4 and the pctel-2.4.7 drivers

The 2.4 driver works for kernel 2.4.0 to kernel 2.4.6 and the 2.4.7 driver works for kernel 2.4.7 upwards. But the methods of installation for both are the same, and so I put the instructions under one section. Make sure that you have the appropriate kernel with the command bash$ uname -r

.

Unpack the downloaded files with the commands

bash$ tar -xzvf `the filename`.tar.gz

You will be now left with a pctel-2.4 or a pctel-2.4.7 directory..move into that with the command

bash$ cd pctel-2.4/(pctel-2.4.7/ if needed);

Compile the drivers with the command

bash$ make

The next steps require you to be logged in as root.To do so use the command

bash$ su

If you do not get any error messages from the bash$ make, then install the drivers by the command

bash$ make install

Now you just have to load the drivers (which are in /lib/modules/`your kernel version`/misc/) with the commands

bash$ insmod pctel

bash$ insmod ptserial

(these can be issued from any directory as the insmod program will automatically find the drivers pctel.o and ptserial.o in /lib/modules/`your kernel version`/misc/ )

5.3. Installing the pctel-0.8.6 driver

Make sure that you have kernel 2.4.0 or greater by the command

bash$ uname -r

Unpack the downloaded files with the commands

bash$ tar -xzvf 0.8.6.tar

Now you will have a pctel-0.8.6 directory

cd into that with the command

bash$ cd pctel-0.8.6/

Now comes the complicated part.

To proceed further you will have to know what chip set your modem has.See section 9.4 for more information on this.

Once you have got the name of the chip set, just type one of the following commands (depending on the chip set)

If you have a PCT 789 chip set,

bash$ ./configure --with-hal=pct789

If you have a CM8738 chip set,

bash$ ./configure -with-hal=cm8738

If you have a chip set integrated with an Intel 810 chip set based motherboard from Intel,

bash$ ./configure --with-hal=i810intel

If you have a chip set integrated with an Intel 810 chip set based motherboard from SIS,

bash$ ./configure --with-hal=i810sis

If you have a chip set integrated with an VIA 686a chip set based motherboard ,

bash$ ./configure --with-hal=via686a

The configure script will run and a number of messages will fly past. Check for any error messages that may fly past. When you have the prompt again, (and if you have not got any errors), compile the drivers with the command

bash$ make

Then if you do not get any error messages, install the drivers with the command

bash$ make install

(You will have to be logged in as root for performing the last step)

Then just load the drivers with the commands

bash$ insmod pctel

bash$ insmod ptserial

(these too, like in the case of the pctel-2.4x drivers, can be issued from any directory as the insmod program will automatically find the drivers pctel.o and ptserial.o in /lib/modules/`your kernel version`/misc/ )