# Conexant/Rockwell modem HOWTO

Imran
Ghory

    ImranG@btinternet.com

This document can be freely distributed. It's released under the GNU FDL License.

Conexant
SoftK56
Rockwell
Modem
HSF
HCF
Riptide
winmodem
softmodem
2001-08-01
1.3
2002-03-12
ig

Updated to deal with new HCF driver.

1.2
2002-02-21
ig

Updated to deal with new HSF driver and release date for HCF driver.

1.0
2001-09-09
ig

Added entries to the FAQ, corrected grammatical errors, and update a URL.

0.9
2001-08-01
ig

Initial release.

A guide to using Conexant and Rockwell chipset based Software modems under Linux.

## Introduction

### Purpose of the howto

If you've got a Rockwell or Conexant chipset based modem and you can't seem to get the modem to work with Linux, then you've come to the right place. Chances are that you've got a Software modem (also known as a "winmodem") and you'll need a driver to get the modem working under Linux.

If you've got a Software modem whose chipset is not made by Conexant or Rockwell then you should see the linmodem howto.

Note that this guide has no information about using Conexant/Rockwell modems for operating systems other then Linux except for the following: There are no known drivers for FreeBSD or BeOS, Windows drivers can be obtained from Conexant.

### About the howto

This HOWTO originally started out as a website about installing Conexant HSF modems under linux, but after several months of being online the number of hits on the website was rapidly growing (100 hits/day at time of writing this HOWTO) and so were the number of requests for information about Rockwell/Conexant modems that were being posted to the linmodem mailing list, usenet and various web based forums. This lead me to decide that the information needed another distribution medium which would be more accessible to users. The result of this was this HOWTO which has expanded to include a far larger range of information then the original website had, in order to cover all the questions being asked on the internet.

At the same time as the increase in demand for information about Rockwell/Conexant modems under linux a number of non-english webpages appeared explaining how to setup the drivers in languages as diverse as Portuguese and Japanese, these webpages often lacked all the current information which was available making it harder for users to get their modems to work. I decided to release this HOWTO under the GNU Free Documentation License, so that native speakers of other language can translate this document into their own language and redistribute it freely, thus ensuring that all users get all the information regardless of what language they speak. If you're interested in making a translation of this HOWTO please contact me.

The HOWTO assumes a basic knowledge of Linux, you should be familiar with the basics of how to use a console/terminal, how to use common commands like less and be familiar with a text editor.When the howto needs you to type something in at the console, the console prompt will look like this: '&pt;'

Some parts of the howto rely upon a greater knowledge of Linux, but those section will mainly apply if you have a non-standard Linux distribution.

### Feedback

If you have any feedback on how I can improve this HOWTO or are interested in translating this HOWTO into another language please contact me via email at ImranG@btinternet.com(if you don't get a reply within a week resend the message to imran@bits.bris.ac.uk).

If you need some help in getting your modem to work, rather then contacting me for help directly see the Getting Help section as you are more likely to be able to get a faster answer from the places indicated then if you email me direct.

### License

Copyright (c) 2001,2002 Imran Ghory

Permission is granted to copy, distribute and/or modify this document

under the terms of the GNU Free Documentation License, Version 1.1

or any later version published by the Free Software Foundation;

with the Invariant Sections being the Introduction chapter, with no Front-Cover Texts, and with no Back-Cover Texts.

A copy of the license is included in the section entitled "GNU

Free Documentation License".

### Acknowledgments

Thanks to:

- Olitec for distributing and Conexant for producing the original HSF driver

- Marc Boucher for writing a wrapper for 2.4.* kernels

- Denis Havlik for bringing the Olitec driver to the attention of the rest of the Linmodem community

- Thomas Iversen for mirroring the drivers

### Getting Help

If after following this HOWTO you still can't get your modem to work and you haven't already done so, check the troubleshooting section at the end of this HOWTO as it covers the most common problems. If you are still stuck then there are three main places where you can get help,

Linmodem mailing list

  The Linmodem mailing list is the main place on the internet for discussion of the use of Software modems under Linux. If someone else has had the same problem as you chances are that someone on the Linmodem mailing list knows about it. To join the mailing list send a blank email to discuss-subscribe@linmodems.org, the mailing lists homepage is at www.linmodems.org.

SoftModems IRC channel

  If you want to talk to someone real time your best bet is the #SoftModems channel on the OpenProject's IRC network. See www.openprojects.org for details or connect to eu.opirc.nu on port 6667.

Newsgroups

  The newsgroups comp.os.linux.hardware and comp.os.linux.setup often have people familiar with software modems. If you speak Italian the newsgroup it.comp.os.linux.iniziare has people familiar with Conexant/Rockwell neewsgroups.

Remember when asking for help to include your modems Device ID, Vendor ID and any error message you got.

## Quick Start guide

This section tries to get you up and running as soon as possible, if you can follow the steps given in this section and they work for you, you can ignore the rest of this howto. This section is updated more often then the rest of the HOWTO so will contain the most up to date information.

First you need to find out if your modem is an HSF or HCF modem. You can find out from your modem by looking at it's Windows drivers or looking at the label on it's chipset, or alternatively you can download the ListModem utility and run it to get the information.

Drivers are available for both types, but the HSF driver is further into development then the HCF driver so is likely to be more advanced for now. Expect the HCF driver to come out of beta sometime mid-year(2002).

See the following appropriate sections for quick starting with HSF and HCF modems.

### Quick Starting with an HSF modem

1. Download the driver from http://www.mbsi.ca/hsflinux/, the following instruction are for the Binary RPM version which I recommend you use.

2. Load up a terminal (or go to a console), change to the root user and enter the directory you downloaded the driver to and use the command "rpm -i" followed by the name of the driver. For instance if it is called

   `hsflinmodem-4.06.06.02mbsibeta02012000-1.i586.rpm` you would enter,

   &pt;`rpm -i hsflinmodem-4.06.06.02mbsibeta02012000-1.i586.rpm`

3. Run the program `hsfconfig` and just follow the on-screen instructions and it should automatically detect your modem and install the driver. If you have any problems consult the documentation that comes with the driver.

You will now be able to setup your internet connection software, you may need to tell it that your modem can be found at `/dev/modem`. If your internet connection software can't access it you may need to change the permissions on it.

[Technical note: If you have a modem with device ID 2005, then you will need to choose the option to manually configure it before it will work]

If the above steps don't work for you or the above mentioned driver doesn't work with your system (for instance if you have an SMP machine) then read the rest of the howto which explains how to use the older driver in greater detail.

### Quick Starting with an HCF modem

1. Download the driver from http://www.mbsi.ca/hcflinux/, the following instruction are for the Binary RPM driver which is the easiest to install, if you want to install it using another method consult the README file.

2. Load up a terminal (or go to a console), change to the root user and enter the directory you downloaded the driver to and use the command "rpm -i" followed by the name of the driver. For instance if it is called

   `hcflinmodem-0.9mbsibeta02030801-1.i586.rpm` you would enter,

   &pt;`rpm -i hcflinmodem-0.9mbsibeta02030801-1.i586.rpm`

3. Run the program `hcfconfig` and just follow the on-screen instructions and it should automatically detect your modem and install the driver. If you have any problems consult the documentation that comes with the driver.

You will now be able to setup your internet connection software, you may need to tell it that your modem can be found at `/dev/modem`. If your internet connection software can't access it you may need to change the permissions on it.

[Technical note: If you have an older modem, i.e one with the Rockwell brand name rather then Conexant then you will not be able to use this driver at present. You will also not be able to use modems which use SmartDAA. See http://www.mbsi.ca/hcflinux/latest/BUGS.txt for updates.]

## Identifying your modem type

The first task you will need to do is to identify whether your modem's chipset is HCF or HSF. Unfortunately the traditional way of doing this (by using /proc/pci, lspci or KDE's control center) won't work for us here due to errors in the pci.ids file which can cause a misidentification of the modem. There are three main ways which you can use to identify your modem's chipset:

1. If you've got your modem working under Windows then you can identify your chipset by downloading and running Conexant's ListModem Application. When you run it, the program will give the information we want under "MODEM TYPE".

2. If you've opened your computer up chances are that the modem's chipset will have either the letters "HSF" or "HCF" printed on it.

3. You can identify your type of modem from it's device ID and vendor ID, the easiest way get this information is from the command `lspci -n` (or `less /proc/pci` on older Linux distributions) this command tells you all of the Vendor IDs and Devices IDs for all of the PCI cards in your machine. You will be able to identify your modems' IDs as it will have a vendor ID of either 14F1 (Conexant) or 127A (Rockwell). Ignore any information that the lspci command tells you about your modem being a HSF or HCF as it could be wrong.

   The information is often presented in the form VVVV:DDDD where VVVV is the vendor ID and DDDD is the device ID, for instance if it listed 127a:2005 it would mean the that the Vendor ID is 127a and device ID is 2005.

   If your modem is a HCF modem it will have one of the following Device IDs:

   1033 / 1034 / 1035 / 1036 / 10b3 / 10b4 / 10b5 / 10b6 / 1003 / 1004 / 1005 / 1023 / 1024 / 1025 / 1f10 / 1f11 / 1f14 / 1f15

   If your modem is a SmartHCF modem it will have one of the following Device IDs:

   1052 / 1053 / 1054 / 1055 / 1056 / 1057 / 1058 / 1059 / 1063 / 1064 / 1065 / 1066

   If your modem is a HSF modem it will have one of the following Device IDs:

   2013 / 2014 / 2015 / 2016 / 2003 / 2004 / 2005 / 2006 / 2f10 / 2f12 / 2f00

   If your modem is a SmartHSF modem it will have one of the following Device IDs:

   2043 / 2044 / 2045 / 2046 / 2053 / 2054 / 2055 / 2056

If you have a HCF or SmartHCF modem goto to the HCF section, if you have a HSF or SmartHSF modem go the to the HSF section.

## HCF chipset based modems

### History

Unfortunately at the present time there is no HCF modem driver for linux. Conexant have indicated in section 11 of their FAQ (http://www.conexant.com:80/cnxt/customer/md_faqs.htm) that they are currently developing one.

Several people have reported that they have got a HCF modem (in particular chipsets with the device ID of 1025) to work under Linux by using the HSF driver, however little firm information is known about this. If you successfully manage to use an HCF modem under linux please contact me to tell me about it.

One person has reported that if you get the "No Dialtone" error when trying to use a HSF driver with a HCF modem you can correct it by using the AT command "AT S7=45 S0=0 L1 V1 X4 &c1 E1 Q0".

### Miscellaneous information

If you wish to embark on writing your own driver you might find the following files useful,

Information on how to edit the INF file

  http://users.freenet.am/~hcfconf/advdocs/country.zip

Modem command guide

  http://users.freenet.am/~hcfconf/advdocs/100498C.zip

Designers notes and specifications

  http://www.unitronic.de/Hersteller/conexant/Modem.htm

## HSF

### History

A HSF driver first appeared out of the blue in mid-2000 when Olitec released unto the world a binary only driver for their Olitec PCI modem for 2.2.14 kernel, it wasn't long before someone realized that the Olitec modem was based on the Rockwell/Conexant HSF Chipset. Inquiries to Olitec revealed that the driver should work with any HSF chipset as there was nothing in the driver that was specific to the Olitec modems. Many people tried to get the driver to work with non-Olitec modem unfortunately without success, however a few months later and after many hours of work by many people trying a variety of tricks to get the driver to work, several people managed to stumble across the solution. It was a simple one line change to file which solved the problem and the world was left with a working HSF driver, at the time it only worked on 2.2.14 Kernels and Olitec had refused to release the source code to let others try to get it to work with other kernels.

A few months later Olitec released the driver for 2.2.16 and 2.2.17 kernels, this kept the HSF winmodem community satisfied until we came to the day when the 2.4 kernel was released. None of the previous drivers appeared to work with the 2.4 kernel and this caused problems for all those who wanted to upgrade and also for the large number of new users who were using 2.4.* kernel based distributions such as Mandrake 8 and RedHat 7.1. Not a word had been heard out of Olitec since the 2.4 kernel was released, but Conexant had announced that they intended to develop a Linux driver. After many months of waiting for a 2.4.* driver Marc Boucher decided to something about it and wrote a wrapper which allowed an old version of the driver to be used with 2.4.* kernels.

That's where we are now, Marc's wrapper is still in experimental development stage but it works and many people are using it to connect to the internet under Linux.

From the history you'll understand why the next section has to be split into two sections one for 2.2.14 - 2.2.18 kernels and one for 2.4.* kernels. If you don't know what kernel version you have you can find out by using the '`uname -r`' command at the console window before proceeding to the appropriate section of this HOWTO.

### Kernel 2.2.14 - 18

#### Requirements

Having either a 2.2.14, 2.2.16 or 2.2.17 kernel.

It has been reported that the driver for 2.2.17 kernels also works with 2.2.18 kernels.

#### Getting IDs

To get the modem to work you'll need to get the Vendor ID and Device ID. The easiest way to do this is to use the command "`less /proc/pci`" and scroll until you find the PCI card which has a vendor ID of either 14F1 (Conexant) or 127A (Rockwell) and note the Device ID.

You'll need to make an %HSFModem% line.

Copy down the following line somewhere,

%HSFModem% = ModemX, PCI\VEN_XXXX&DEV_YYYY&SUBSYS_YYYYXXXX

Replacing the XXXX's with your Vendor ID and the YYYY's with your Device ID, so if your Vendor ID is 127A and Device ID is 2015 your line would be,

%HSFModem% = ModemX, PCI\VEN_127A&DEV_2015&SUBSYS_2015127A

You'll need to use this line later on to allow the driver to detect your modem, the next steps you need to take vary slightly depending on what kernel you have so you'll need to refer to the appropriate section depending on whether your kernel version is 2.2.14, 2.2.16 or 2.2.17

#### If you have a 2.2.14 kernel

##### Installing a HSF driver on a 2.2.14 kernel

1. Download the file HSF_V1.01.02_K2.2.14-5.0.tar, it can be obtained from Olitec's site or the

   mirror.

2. Copy it to your home directory

3. In a console window change to your home directory

   &pt;`cd ~`

4. Decompress the file

   &pt;`tar xzvf HSF_V1.01.02_K2.2.14-5.0.tar`

5. Enter into the drivers directory

   &pt;`cd pci_56k_v2`

6. Load up the lin_hsf.inf file in your favorite text editor, under the section [generic] you'll see a few of lines like "%HSFModem% = ModemX, PCI\VEN_127A&DEV_1025&SUBSYS_1025127A" under theses lines add your own %HSFModem% line which you made earlier.

7. Switch to root

   &pt;`su`

8. Run the ins_all script to install the driver

   &pt;`./ins_all`

You will now be able to access the internet by telling your dial-up software that your modem is located at /dev/modem.

The ins_all will only temporarily load the modem driver and the modem driver will be removed when you reboot. So if you re

boot you will need to run the ./ins_all program to reload the driver, if you reboot on a regular basis you may want to set the .

/ins_all command to automatically run every time your computer loads up.

#### If you have a 2.2.16 kernel

##### Installing a HSF driver on a 2.2.16 kernel

1. Download the file PCI_56K_V2_K2.2.16.tar.gz, it can be obtained from Olitec's site or the

   Mirror.

2. Copy it to your home directory

3. In a console window change to your home directory

   &pt;`cd ~`

4. Decompress the file

   &pt;`tar xzvf PCI_56K_V2_K2.2.16.tar.gz`

5. Enter into the drivers directory

   &pt;`cd pci_56k_v2_k2.2.16`

6. Load up the lin_hsf.inf file in your favorite text editor, under the section [generic] you'll see a few of lines like "%HSFModem% = ModemX, PCI\VEN_127A&DEV_1025&SUBSYS_1025127A" under theses lines add your own %HSFModem% line which you made earlier.

7. Switch to root

   &pt;`su`

8. Run the ins_all script to install the driver

   &pt;`./ins_all`

You will now be able to access the internet by telling your dial-up software that your modem is located at /dev/modem.

The ins_all will only temporarily load the modem driver and the modem driver will be removed when you reboot. So if you reboot you will need to run the ./ins_all program to reload the driver, if you reboot on a regular basis you may want to set the ./ins_all command to automatically run every time your computer loads up.

#### If you have a 2.2.17 or 2.2.18 kernel

##### Installing a HSF driver on a 2.2.17 or 2.2.18 kernel

1. Download the file PCI_56K_V2_K2.2.17.tar.gz , it can be obtained from Olitec's site or the

   Mirror.

2. Copy it to your home directory

3. In a console window change to your home directory

   &pt;`cd ~`

4. Decompress the file

   &pt;`tar xzvf PCI_56K_V2_K2.2.17.tar.gz`

5. Enter into the drivers directory

   &pt;`cd pci_56k_v2_k2.2.17`

6. Load up the lin_hsf.inf file in your favorite text editor, under the section [generic] you'll see a few of lines like "%HSFModem% = ModemX, PCI\VEN_127A&DEV_1025&SUBSYS_1025127A" under theses lines add your own %HSFModem% line which you made earlier.

7. Switch to root

   &pt;`su`

8. Run the ins_all script to install the driver

   &pt;`./ins_all`

You will now be able to access the internet by telling your dial-up software that your modem is located at /dev/modem.

The ins_all will only temporarily load the modem driver and the modem driver will be removed when you reboot. So if you reboot you will need to run the ./ins_all program to reload the driver, if you reboot on a regular basis you may want to set the ./ins_all command to automatically run every time your computer loads up.

### Kernel 2.4.*

#### Requirements

- You need a 2.4.* kernel which does not have SMP support.

- You will also need to have your kernel source available, if you don't have them installed already you can probably find them on your distributions CD.

- At least version 2.4.0 of ppp (you can find what version of ppp you have installed by using the command `pppd --version`)

To get the modem working under a 2.4.* kernel you'll need to use the driver intended for 2.2.17 kernels alongside Marc Boucher's hsfcompat wrapper program which lets the driver work with 2.4.* kernels. At the time of writing the hsfcompat driver is on version 1.0d and is still experimental and may cause problem with your system. However I haven't seen anyone have any problem from using the wrapper. For the latest details see hsfcompat's homepage.

##### Files you'll need to download:

`hsfcompat_24-1.0d.tar.gz`

  Main download site:

  http://www.mbsi.ca/hsfcompat/hsfcompat_24-1.0d.tar.gz

`PCI_56K_V2_K2.2.17.tar.gz`

  Main download site:

  http://www.olitec.com/pub/PCI_56K_V2_K2.2.17.tar.gz

  Mirrored at:

  ftp://ftp.dina.kvl.dk/pub/Staff/Thomas.S.Iversen/linmodems_drivers/olitec/PCI_56K_V2_K2.2.17.tar.gz

#### Installing

1. Copy the `hsfcompat_24-1.0d.tar.gz` file to your home directory

2. In a console window change to your home directory

   &pt;`cd ~`

3. Extract the hcfcompat program by using:

   &pt;`tar xzvf `hsfcompat_24-1.0d.tar.gz``

4. Copy the `PCI_56K_V2_K2.2.17.tar.gz` file into the `hsfcompat_24-1.0d` directory.

5. Extract the driver by using:

   &pt;`tar xzvf `PCI_56K_V2_K2.2.17.tar.gz``

6. Load up the file `Makefile` (Found in the `hsfcompat_24-1.0d` directory) in a text editor and scroll down to the line which reads SBINDIR=/usr/sbin and replace `/usr/sbin` with the location of your system bin directory, then scroll down to the line which reads KERNELSRC=/usr/src/linux and replace `/usr/src/linux` with the location of your kernel source files.

7. Switch to superuser (root) by using:

   &pt;`su`

8. In the `hsfcompat_24-1.0d` directory compile hsfcompat by using:

   &pt;

   `make`

9. Install the driver by running:

   &pt;`make `install``

10. Follow the on-screen instruction which explain how to load the driver into memory and how to have this done automatically.

### Troubleshooting FAQ

When running ./ins_all I get a kernel mismatch error ?

This means that the driver thinks that you don't have the appropriate kernel version, if you have a variant of the kernel (such as the one that has non-standard name) then you can still get the driver to work by loading up the file `ins_all` in a text editor and replacing all of the '`insmod -m`' commands with '`insmod -f -m`'.

When I try to run ./ins_all I get the error "bash: ./ins_all No such file or directory."

This error tends to be caused by the script being unable to find C Shell at the location `/bin/csh`. If you have C Shell installed in a different location then you should create a symbolic link which points to the correct location. If you don't have you'll need to install it.

When installing the driver when it tries to load `myserial.o` I get a segmentation fault ?

This is caused by your computer trying to get Plug-and-Play to work with your modem. You can stop it doing this by going to your BIOS and setting an option which tells it not to do that. The settings name varies from BIOS to BIOS but is normally something like PnP OS.

When trying to dial my ISP I get "No Carrier" error ?

It has been reported that making the following changes to your configuration will work:

1. Replace the command ATZ with ATZX3

2. Replace the command ATDT with ATX3DT

When running ./ins_alI get the error "No matching INF file is found for SoftK56 PCI device" ?

This occurs when the driver can't find the correct %HSFModem% line in the lin_hsf.inf line, go back through the instructions and make sure that you didn't make a mistake when making or entering the %HSFModem% line.

On my Laptop the driver seemed to install fine but I can't access my modem on /dev/modem ?

This is often caused by the modem's device number clashing with that of PCMCIA, you can check if this is the case by entering the command,

&pt;`ls -l /dev/ | grep 254`

You'll see the hsf0 device listed with the major number of 254, if any other device also has the major number of 254 it means there is a clash. You can fix this problem by loading up the ins_all file and change the line which reads "mknod /dev/cnxt c 254 64" to "mknod /dev/cnxt c 253 64".

Version 1.1, March 2000

2000
Free Software Foundation, Inc.

    Free Software Foundation, Inc.

                 59 Temple Place, Suite 330,

                 Boston,

                 MA 02111-1307

    	    USA

. Everyone is permitted to

copy and distribute verbatim copies of this license

document, but changing it is not allowed.

## License

### GNU Free Documentation License

#### GNU Free Documentation License

Copyright 2000 Free Software Foundation, Inc.

    Free Software Foundation, Inc.

    59 Temple Place, Suite 330,

    Boston,

    MA 02111-1307

    USA

. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.

##### 0. PREAMBLE

The purpose of this License is to make a manual, textbook, or

other written document free in the sense of

freedom: to assure everyone the effective freedom to copy and

redistribute it, with or without modifying it, either

commercially or noncommercially. Secondarily, this License

preserves for the author and publisher a way to get credit for

their work, while not being considered responsible for

modifications made by others.

This License is a kind of copyleft, which means

that derivative works of the document must themselves be free in

the same sense. It complements the GNU General Public License,

which is a copyleft license designed for free software.

We have designed this License in order to use it for manuals for

free software, because free software needs free documentation: a

free program should come with manuals providing the same

freedoms that the software does. But this License is not limited

to software manuals; it can be used for any textual work,

regardless of subject matter or whether it is published as a

printed book. We recommend this License principally for works

whose purpose is instruction or reference.

##### 1. APPLICABILITY AND DEFINITIONS

This License applies to any manual or other work that contains a

notice placed by the copyright holder saying it can be

distributed under the terms of this License. The

Document, below, refers to any such manual or

work. Any member of the public is a licensee, and is addressed

as you.

A Modified Version of the Document means any work

containing the Document or a portion of it, either copied

verbatim, or with modifications and/or translated into another

language.

A Secondary Section is a named appendix or a

front-matter section of the Document that deals exclusively

with the relationship of the publishers or authors of the

Document to the Document's overall subject (or to related

matters) and contains nothing that could fall directly within

that overall subject. (For example, if the Document is in part a

textbook of mathematics, a Secondary Section may not explain any

mathematics.) The relationship could be a matter of historical

connection with the subject or with related matters, or of

legal, commercial, philosophical, ethical or political position

regarding them.

The Invariant Sections are certain Secondary Sections whose titles

are designated, as being those of Invariant Sections, in the

notice that says that the Document is released under this

License.

The Cover Texts are certain short passages of

text that are listed, as Front-Cover Texts or Back-Cover Texts,

in the notice that says that the Document is released under this

License.

A Transparent copy of the Document means a machine-readable

copy, represented in a format whose specification is available

to the general public, whose contents can be viewed and edited

directly and straightforwardly with generic text editors or (for

images composed of pixels) generic paint programs or (for

drawings) some widely available drawing editor, and that is

suitable for input to text formatters or for automatic

translation to a variety of formats suitable for input to text

formatters. A copy made in an otherwise Transparent file format

whose markup has been designed to thwart or discourage

subsequent modification by readers is not Transparent. A copy

that is not Transparent is called

Opaque.

Examples of suitable formats for Transparent copies include

plain ASCII without markup, Texinfo input format, LaTeX input

format, SGML or XML using a publicly available DTD, and

standard-conforming simple HTML designed for human

modification. Opaque formats include PostScript, PDF,

proprietary formats that can be read and edited only by

proprietary word processors, SGML or XML for which the DTD

and/or processing tools are not generally available, and the

machine-generated HTML produced by some word processors for

output purposes only.

The Title Page means, for a printed book, the

title page itself, plus such following pages as are needed to

hold, legibly, the material this License requires to appear in

the title page. For works in formats which do not have any title

page as such, Title Page means the text near the

most prominent appearance of the work's title, preceding the

beginning of the body of the text.

##### 2. VERBATIM COPYING

You may copy and distribute the Document in any medium, either

commercially or noncommercially, provided that this License, the

copyright notices, and the license notice saying this License

applies to the Document are reproduced in all copies, and that

you add no other conditions whatsoever to those of this

License. You may not use technical measures to obstruct or

control the reading or further copying of the copies you make or

distribute. However, you may accept compensation in exchange for

copies. If you distribute a large enough number of copies you

must also follow the conditions in section 3.

You may also lend copies, under the same conditions stated

above, and you may publicly display copies.

##### 3. COPYING IN QUANTITY

If you publish printed copies of the Document numbering more than 100,

and the Document's license notice requires Cover Texts, you must enclose

the copies in covers that carry, clearly and legibly, all these

Cover Texts: Front-Cover Texts on the front cover, and

Back-Cover Texts on the back cover. Both covers must also

clearly and legibly identify you as the publisher of these

copies. The front cover must present the full title with all

words of the title equally prominent and visible. You may add

other material on the covers in addition. Copying with changes

limited to the covers, as long as they preserve the title of the

Document and satisfy these

conditions, can be treated as verbatim copying in other

respects.

If the required texts for either cover are too voluminous to fit

legibly, you should put the first ones listed (as many as fit

reasonably) on the actual cover, and continue the rest onto

adjacent pages.

If you publish or distribute Opaque copies of the Document numbering more than 100,

you must either include a machine-readable Transparent copy along with

each Opaque copy, or state in or with each Opaque copy a

publicly-accessible computer-network location containing a

complete Transparent copy of the Document, free of added

material, which the general network-using public has access to

download anonymously at no charge using public-standard network

protocols. If you use the latter option, you must take

reasonably prudent steps, when you begin distribution of Opaque

copies in quantity, to ensure that this Transparent copy will

remain thus accessible at the stated location until at least one

year after the last time you distribute an Opaque copy (directly

or through your agents or retailers) of that edition to the

public.

It is requested, but not required, that you contact the authors

of the Document well before

redistributing any large number of copies, to give them a chance

to provide you with an updated version of the Document.

##### 4. MODIFICATIONS

You may copy and distribute a Modified Version of the Document under the conditions of

sections 2 and 3 above, provided that you release

the Modified Version under precisely this License, with the

Modified Version filling the role of the Document, thus

licensing distribution and modification of the Modified Version

to whoever possesses a copy of it. In addition, you must do

these things in the Modified Version:

- ###### A

  Use in the Title Page (and on the covers, if any) a title distinct

  from that of the Document, and from those of

  previous versions (which should, if there were any, be

  listed in the History section of the Document). You may

  use the same title as a previous version if the original

  publisher of that version gives permission.

- ###### B

  List on the Title Page, as authors, one or more persons or entities

  responsible for authorship of the modifications in the

  Modified Version,

  together with at least five of the principal authors of

  the Document (all of

  its principal authors, if it has less than five).

- ###### C

  State on the Title Page the name of the publisher of the Modified Version, as the

  publisher.

- ###### D

  Preserve all the copyright notices of the Document.

- ###### E

  Add an appropriate copyright notice for your modifications

  adjacent to the other copyright notices.

- ###### F

  Include, immediately after the copyright notices, a

  license notice giving the public permission to use the

  Modified Version under

  the terms of this License, in the form shown in the

  Addendum below.

- ###### G

  Preserve in that license notice the full lists of Invariant Sections and

  required Cover Texts given in the Document's license notice.

- ###### H

  Include an unaltered copy of this License.

- ###### I

  Preserve the section entitled History, and

  its title, and add to it an item stating at least the

  title, year, new authors, and publisher of the Modified Version as given on

  the Title Page. If

  there is no section entitled History in the

  Document, create one

  stating the title, year, authors, and publisher of the

  Document as given on its Title Page, then add an item

  describing the Modified Version as stated in the previous

  sentence.

- ###### J

  Preserve the network location, if any, given in the Document for public access

  to a Transparent

  copy of the Document, and likewise the network locations

  given in the Document for previous versions it was based

  on. These may be placed in the History

  section. You may omit a network location for a work that

  was published at least four years before the Document

  itself, or if the original publisher of the version it

  refers to gives permission.

- ###### K

  In any section entitled Acknowledgements or

  Dedications, preserve the section's title,

  and preserve in the section all the substance and tone of

  each of the contributor acknowledgements and/or

  dedications given therein.

- ###### L

  Preserve all the Invariant Sections of the Document, unaltered in their

  text and in their titles. Section numbers or the

  equivalent are not considered part of the section titles.

- ###### M

  Delete any section entitled

  Endorsements. Such a section may not be

  included in the Modified Version.

- ###### N

  Do not retitle any existing section as

  Endorsements or to conflict in title with

  any Invariant Section.

If the Modified Version

includes new front-matter sections or appendices that qualify as

Secondary Sections and

contain no material copied from the Document, you may at your

option designate some or all of these sections as invariant. To

do this, add their titles to the list of Invariant Sections in the

Modified Version's license notice. These titles must be

distinct from any other section titles.

You may add a section entitled Endorsements,

provided it contains nothing but endorsements of your Modified Version by various

parties--for example, statements of peer review or that the text

has been approved by an organization as the authoritative

definition of a standard.

You may add a passage of up to five words as a Front-Cover Text, and a passage

of up to 25 words as a Back-Cover Text, to the end of

the list of Cover Texts

in the Modified Version.

Only one passage of Front-Cover Text and one of Back-Cover Text

may be added by (or through arrangements made by) any one

entity. If the Document

already includes a cover text for the same cover, previously

added by you or by arrangement made by the same entity you are

acting on behalf of, you may not add another; but you may

replace the old one, on explicit permission from the previous

publisher that added the old one.

The author(s) and publisher(s) of the Document do not by this License

give permission to use their names for publicity for or to

assert or imply endorsement of any Modified Version .

##### 5. COMBINING DOCUMENTS

You may combine the Document

with other documents released under this License, under the

terms defined in section 4

above for modified versions, provided that you include in the

combination all of the Invariant Sections of all of the original documents, unmodified,

and list them all as Invariant Sections of your combined work in

its license notice.

The combined work need only contain one copy of this License,

and multiple identical Invariant Sections may be replaced with a single copy. If there are

multiple Invariant Sections with the same name but different

contents, make the title of each such section unique by adding

at the end of it, in parentheses, the name of the original

author or publisher of that section if known, or else a unique

number. Make the same adjustment to the section titles in the

list of Invariant Sections in the license notice of the combined

work.

In the combination, you must combine any sections entitled

History in the various original documents,

forming one section entitled History; likewise

combine any sections entitled Acknowledgements,

and any sections entitled Dedications. You must

delete all sections entitled Endorsements.

##### 6. COLLECTIONS OF DOCUMENTS

You may make a collection consisting of the Document and other documents

released under this License, and replace the individual copies

of this License in the various documents with a single copy that

is included in the collection, provided that you follow the

rules of this License for verbatim copying of each of the

documents in all other respects.

You may extract a single document from such a collection, and

distribute it individually under this License, provided you

insert a copy of this License into the extracted document, and

follow this License in all other respects regarding verbatim

copying of that document.

##### 7. AGGREGATION WITH INDEPENDENT WORKS

A compilation of the Document or its derivatives with

other separate and independent documents or works, in or on a

volume of a storage or distribution medium, does not as a whole

count as a Modified Version

of the Document, provided no compilation copyright is claimed

for the compilation. Such a compilation is called an

aggregate, and this License does not apply to the

other self-contained works thus compiled with the Document , on

account of their being thus compiled, if they are not themselves

derivative works of the Document. If the Cover Text requirement of section 3 is applicable to these

copies of the Document, then if the Document is less than one

quarter of the entire aggregate, the Document's Cover Texts may

be placed on covers that surround only the Document within the

aggregate. Otherwise they must appear on covers around the whole

aggregate.

##### 8. TRANSLATION

Translation is considered a kind of modification, so you may

distribute translations of the Document under the terms of section 4. Replacing Invariant Sections with

translations requires special permission from their copyright

holders, but you may include translations of some or all

Invariant Sections in addition to the original versions of these

Invariant Sections. You may include a translation of this

License provided that you also include the original English

version of this License. In case of a disagreement between the

translation and the original English version of this License,

the original English version will prevail.

##### 9. TERMINATION

You may not copy, modify, sublicense, or distribute the Document except as expressly

provided for under this License. Any other attempt to copy,

modify, sublicense or distribute the Document is void, and will

automatically terminate your rights under this License. However,

parties who have received copies, or rights, from you under this

License will not have their licenses terminated so long as such

parties remain in full compliance.

##### 10. FUTURE REVISIONS OF THIS LICENSE

The Free Software Foundation may publish new, revised versions of the GNU

Free Documentation License from time to time. Such new versions

will be similar in spirit to the present version, but may differ

in detail to address new problems or concerns. See http://www.gnu.org/copyleft/.

Each version of the License is given a distinguishing version

number. If the Document

specifies that a particular numbered version of this License

or any later version applies to it, you have the

option of following the terms and conditions either of that

specified version or of any later version that has been

published (not as a draft) by the Free Software Foundation. If

the Document does not specify a version number of this License,

you may choose any version ever published (not as a draft) by

the Free Software Foundation.

##### Addendum

To use this License in a document you have written, include a copy of

the License in the document and put the following copyright and

license notices just after the title page:

> Copyright © YEAR YOUR NAME.

> Permission is granted to copy, distribute and/or modify this

> document under the terms of the GNU Free Documentation

> License, Version 1.1 or any later version published by the

> Free Software Foundation; with the Invariant Sections being LIST

> THEIR TITLES, with the Front-Cover Texts being LIST,

> and with the Back-Cover Texts being LIST. A copy of the license is included in

> the section entitled GNU Free Documentation License.

If you have no Invariant Sections, write with no Invariant Sections

instead of saying which ones are invariant. If you have no

Front-Cover Texts, write

no Front-Cover Texts instead of

Front-Cover Texts being LIST; likewise for Back-Cover Texts.

If your document contains nontrivial examples of program code,

we recommend releasing these examples in parallel under your

choice of free software license, such as the GNU General Public License, to permit their use in free software.