Citation :
FAQ - Frequently Asked Questions
--------------------------------
(w) 2001-05-02 J.Stifter, j.stifter@medres.ch
Table of Contents:
------------------
1. Will my modem XXX work with this driver?
2. How do I install the driver?
3. Do you work for PCTEL?
4. Country Code selection
5. Compile error: no modversions.h
6. Unresolved Symbols
1. Will my modem XXX work with your driver?
-------------------------------------------
Go to "Linux/Modem Compatibility Knowledge Base" at
http://www.idir.net/~gromitkc/winmodem.html
and follow the instructions to find your modem.
2. How do I install the driver?
-------------------------------
If you have sucessfully done "make install", the driver is located in /lib/modules/"your-kernel-number"/misc/
The driver consists of two parts:
pctel.o
ptserial.o
You insert these drivers with the command
insmod pctel
insmod ptserial
If this doesn't work, you can do
insmod /lib/modules/"your-kernel-number"/misc/pctel.o
insmod /lib/modules/"your-kernel-number"/misc/ptserial.o
You have to make sure, that these two commands are run every time you
reboot your machine, by adding these two commands to an init script,
according to your distribution.
If you want to enable autoloading of the modules,
the following lines in /etc/modules.conf would suffice:
# for pctel modem
alias char-major-62 ptserial
below ptserial pctel
# country code for pctel modem
options ptserial country_code=13
Make sure, you run "depmod -a" after you changed your /etc/modules.conf.
Then starting ppp would autoload the modules,
or "modprobe ptserial" will insert them.
3. Do you work for PCTEL?
-------------------------
I don't work for PCTEL, i am maintainig this driver in my free time.
4. Country Code selection
-------------------------
The PCTEL modem has the possibility to select a country code.
If the country code is not selected, the default country code,
which is USA, will be used and it should work for most countries.
However, there is a way that you can select the country code for
better performance.
To select the country code, instead of "insmod ptserial.o" do:
insmod ptserial.o country_code=X Table of country codes:
country_code country_name
1 USA
2 FRANCE
3 GERMANY
4 ITALY
5 SWEDEN
6 UK
7 JAPAN
8 AUSTRALIA
9 SPAIN
10 TAIWAN
11 SINGAPORE
12 KOREA
13 SWITZERLAND
14 NORWAY
15 NETHERLANDS
16 BELGIUM
17 CANADA
18 IRELAND
19 PORTUGAL
20 POLAND
21 HUNGARY
22 FINLAND
23 DENMARK
24 AUSTRIA
25 S.AFRICA
26 CTR21 COUNTRIES
27 CHINA
28 MALAYSIA
29 LUXUMBURG
30 GREECE
31 ICELAND
32 NEW ZEALAND
33 BRAZIL
5. Compile error: no modversions.h
----------------------------------
If you see something like:
gcc [....] /usr/src/linux/include/linux/modversions.h: No such file or directory
after typing "make", you have no modversions.h or you have it at the
wrong place.
First, make sure, your kernel source tree starts at /usr/src/linux. If
not, make a link from your kernel source to /usr/src/linux:
$ ln -s /path/to/your/kernel /usr/src/linux
Now, create the modversions.h by running
$ cd /usr/src/linux
$ make dep
this should make you a modversions.h in /usr/src/linux/include/
If this did not work, an ugly hack is to create an empty file there:
$ mkdir -p /usr/src/linux/include/linux
$ touch /usr/src/linux/include/linux/modversions.h
6. Unresolved Symbols
---------------------
The unresolved symbols arise when there is a mismatch between the
versions of the running kernel & the kernel-headers used to compile the
driver. These symbol differences can often be masked across flavor differences
and even some larger differences through use of Mark Speith's fixscript,
available at: www.medres.ch/~jstifter/linux/pctel.html (links section). Of course, the robust cure is too use the same kernel-headers as were used
in the compile of the running kernel. Unfortunately the kernel-header
packages provided by some Linux distros are not exactly version matched
with the stock kernels. If you do a
depmod -e pctel.o
or
depmod -e ptserial.o
you can generate an "unresolved symbols" report. If you have unresolved symbols: 1) download fixscript.gz
2) unpack it with "gzip -d fixscript.gz"
3) make it executable with "chmod +x fixscript"
4) run fixscript with ./fixscript old_module new_module.o this will create you the new module, which you can try to insert
with "insmod new_module.o"
If fixscript reports an error like
objcopy: --redefine-sym: Symbol "" is target of more than one redefinition
then, fixscript can not help you.
In this case, you have to compile yourself a kernel. Ask the linmodems
mailing list if you have problems - it is not that hard!
---
Jan Stifter, 2001-07-06
j.stifter@medres.ch
http://www.medres.ch/~jstifter/linux/pctel.html
|