#pragma keywords smartlink modem winmodem linmodem networking scanmodem sl-modem intel linuxant conexant hsf hcf wvdial ppp {{{ This is the OLD dialup howto documentation. DO NOT use or edit this. It is here only for archival purposes. Here is the NEW documentation: https://help.ubuntu.com/community/DialupModemHowto }}} ||<>|| This page tries to help you setting up the driver and configuration for a dialup connection over a modem. There are two parts to that: * Identifying the type of modem you are using and installing its driver * Configuring the dialup connection to your provider Unfortunately these steps are not done automatically during the Ubuntu installation, but this is work in progress and will hopefully be improved in future releases. This page often points you to web sites and asks you to download software. You will need another machine in order to do this, and a way to transfer data from the connected machine to the other one (e.g. floppies, USB keys, CD-R discs, Ethernet). = Installing the driver for your modem = Basically, there are two types of modems: a. '''Software modems''' (Winmodems), which are usually delivered as PCI or USB devices or builtin with desktop PCs and laptops these days: Some of these are not supported under Linux, some are. If you bought your computer or modem recently (since ~ 2000), chances are, that you have one of this kind. A Winmodem is a combination of hardware known as chipset (much less than in a true pure hardware modem) and software (written for the Windows operating systems family). A Linmodem is a Winmodem working under the Linux kernel. This can be accomplished thanks to the Linmodems.org project. a. '''Hardware modems''', which are connected to the serial port for example and process the raw modem commands themselves: they have become very rare, but are well supported. == Software modems == === Using scanModem Tool === There are different drivers available. To find out what kind of software modem you are using, go to [[http://www.linmodems.org|linmodems.org]], read the page, and download the scanModem tool (which will only recognize PCI and USB modems, not ISA modems). Copy it to your desktop in your Ubuntu machine, then open a command line and enter: {{{ $ cd ~/Desktop $ gunzip scanModem.gz $ chmod +x scanModem $ ./scanModem }}} Gunzip will 'unzip' the file, chmod will mark it as executable, and ./scanModem will run it. If it tells you to do something as ''root'' by issuing {{{su - root}}}, instead just enter the commands it wants following a "sudo", e.g. {{{$ sudo modprobe snd-intel8x0m}}}. scanModem will scan your modem and tell you what it is and how to configure it. It will '''not''' configure it for you. But after running, you will see a number of new folders, including a 'Modem' folder. Read {{{read1st.txt}}} and {{{modemdata.txt}}} in there, and see if you modem was recognized. This is admittedly not a straight-forward read and might need some more reading around on above mentioned page to find out which drivers your modem needs. Then scan through the following sections to find out about the easiest way to install that driver under Ubuntu. '''Note:''' For many of the following drivers, you will need to enable the universe/multiverse repositories. See AddingRepositoriesHowto. This requires you to have working network connection. You can also search for packages to download in another system and transfer to your Ubuntu installation at http://packages.ubuntu.com/ . Be careful with the dependencies... Check out this forum post for another way to get packages using the LiveCD on another system with network connection and a CD burner: http://www.ubuntuforums.org/showpost.php?p=893732&postcount=6 === If compiling from source === On your way to configuring your modem drivers, you may find out that you need to compile from source. In that case, prior to compiling, insert your Ubuntu installation CD. Instructions for adding the contents of the CD to your respositories list should appear on the screen as soon as the CD is inserted, if you are using Ubuntu 6.06 (Dapper Drake) or above. If no instructions appear, or you are not using the graphical environment, you can add the CD to your list of repositories manually, by running {{{ sudo apt-cdrom add }}} If you installed Ubuntu using the Alternate CD, or you are using a version of Ubuntu older than 6.06, the CD repository is already part of your list and you do not need to add it again. Now, to install the packages needed for compiling, run {{{ sudo apt-get install build-essential linux-headers-`uname -r` }}} If you need more packages for compiling, you can find them from http://archive.ubuntu.com - always check that your system satisfies the dependencies before installing a new package using this website. The website will list you a number of dependencies for each package. Make sure those dependencies are installed before installing a new package. You can use Synaptic or equivalent to check for installed packages. === Installing GCC 3.4 === In some instances, you will need the packages for version 3.4 of the GCC compiler, which, unfortunately, are not present on the installation CD, and will have to be obtained from another machine. The appropriate files, at the time of writing, can be found here: * http://archive.ubuntu.com/ubuntu/pool/main/g/gcc-3.4/gcc-3.4-base_3.4.4-6ubuntu8_i386.deb * http://archive.ubuntu.com/ubuntu/pool/main/g/gcc-3.4/cpp-3.4_3.4.4-6ubuntu8_i386.deb * http://archive.ubuntu.com/ubuntu/pool/main/g/gcc-3.4/gcc-3.4_3.4.4-6ubuntu8_i386.deb * http://archive.ubuntu.com/ubuntu/pool/main/g/gcc-3.4/g++-3.4_3.4.4-6ubuntu8_i386.deb Assuming you have downloaded the files, and know where they are, you can install them using `dpkg`: {{{ sudo dpkg -i gcc-3.4-base_3.4.4-6ubuntu8_i386.deb sudo dpkg -i cpp-3.4_3.4.4-6ubuntu8_i386.deb sudo dpkg -i gcc-3.4_3.4.4-6ubuntu8_i386.deb sudo dpkg -i g++-3.4-3.4.4-6ubuntu8_i386.deb }}} The order is important. === Modems supported by ALSA drivers (snd_atiixp_modem, snd_via82xx_modem, snd_intel8x0m) === If {{{Modem/ModemData.txt}}} tells you that the modem can be set up by loading (''modprobe'') the modules snd_atiixp_modem, snd_via82xx_modem or snd_intel8x0mcd, this section may be for you. You need the ''sl-modem-daemon'' package. * If you can go online with your Ubuntu, you can install the package/daemon by enabling the {{{ multiverse }}} repository and then install the {{{sl-modem-daemon}}} package. * If you cannot go online with your Ubuntu, search for the package using http://packages.ubuntu.com/ , download (link to .deb is given under the text "Architecture") and transfer the package for your version of Ubuntu to your Desktop. After making sure you do not have any other .deb files in your Desktop, open a terminal (Alt+F2, type gnome-desktop -Ubuntu- or konsole -Kubuntu, hit enter), and type or copy-paste the following commands: {{{ cd ~/Desktop sudo dpkg -i *.deb }}} You can delete the .deb file you used if the installation was successful. * To set your country, run {{{ sudo dpkg-reconfigure sl-modem-daemon -plow }}} and follow instructions on the terminal. Restart the daemon with {{{ sudo /etc/init.d/sl-modem-daemon restart }}} * For further information to configure the daemon (if it is not working), see the following "text" files (using a text editor like gedit or nano): {{{ /etc/default/sl-modem-daemon }}} and/or {{{/usr/share/doc/sl-modem-daemon/README.Debian }}} * Now you can go on to use a dialing tool (see table of contents of this wiki page; preferably wvdial for slmodems). * If you get an error that says {{{ FATAL: Module slamr not found. SmartLink modem driver not available for this Kernel. Please read README.Debian or try to install the package sl-modem-modules-2.6.15-20-686. Exiting... invoke-rc.d: initscript sl-modem-daemon, action "start" failed. }}} You will need to follow the instructions per section "Modems supported by the Smartlink driver" in this wiki page. === Modems supported by the Smartlink driver === Note: Every time you update the Linux kernel, you're going to have to run through the "Compiling the driver" procedure below again. This is usually the case when you upgrade from one version of Ubuntu (e.g. 5.10 Breezy Badger) to another (e.g. 6.04 Dapper Drake). ==== Preliminaries ==== These are steps you will only have to run through the first time you build this driver, we're just making sure you have all the installed packages you need. Make sure you have followed the sections of this document entitled ''If compiling from source'' and ''Installing GCC 3.4''. Additionally, you will need the packages {{{sl-modem-source sl-modem-daemon}}}, which, unfortunately, may not be present on the CD and may have to be obtained from another machine. ==== Compiling the driver ==== Now you can use module-assistant to compile and install the driver: 1. {{{$ sudo module-assistant auto-install sl-modem}}} 1. {{{$ sudo depmod -a}}} (this updates the list of available modules) ==== Getting the modem to work ==== Edit the "SLMODEMD_COUNTRY="-line of the file {{{/etc/default/sl-modem-daemon}}} to include your country. The other lines should be fine as default. For the last step, run {{{$ sudo modprobe slamr}}} and {{{$ sudo /etc/init.d/sl-modem-daemon restart}}} and the device {{{/dev/modem}}} should appear. You can now go on configuring your dialup connection. (PS: This driver seems rather finicky, a reboot may help.) ==== Note about alternative drivers for some slmodems ==== Some slmodems (those using the ALSA modem drivers, in this case) do not need compilation. An example is the winmodem of HP Pavilion zv5120us (which uses snd-atiixp-modem as the modem driver). Refer to your scanModem output if this is the case for you. To make such a modem work, see the section above about "Modems supported by ALSA drivers", or notes just below. This note on linmodems.org explains it: From http://archives.linmodems.org/21040 {{{ Slamr has ceased to be the appropriate driver under more current 2.6.n kernels If your modem controller is one of these PCI ID modem controller name/source low_level_driver ======= =============== ======= ================= 1002:434d ATI snd-atiixp-modem 1002:4379 ATI " 1106:3068 VIA snd-via82xx-modem 10b9:5451 ALI 5451 audio with modem snd-ali5451-modem 8086:???? many Intel controllers snd-intel8x0m 10de:00d9 Nvidia Corp " 1039:7013 SIS 630 " Others? " }}} ==== Dapper 6.06 Special Instructions ==== Due to a [[https://launchpad.net/distros/ubuntu/+source/sl-modem/+bug/31640|BUG]] in Ubuntu Dapper, you may need to follow these instructions, instead of the above module compilation instructions. First, check whether the bug is fixed yet. If it is, you can do the above steps. Steps below were taken from [[http://ubuntuforums.org/showpost.php?p=1011364&postcount=28|here]]. 1. Read this entire document, as the steps below only compliment it and you should have all the preliminaries done as described for the Smartlink modem, but you can omit installing gcc-3.4 as this is not required for Dapper. Basically the sl-modem driver has to be installed first and then the sl-modem-daemon. The daemon in the repositories will work after an installation, but the /dev/ttySL0 will not be rewritten and the symlink to /dev/modem will not exist after a reboot. The new daemon found in the debian repos solve this. There was a mention that the daemon now looks for ungrab-winmodem and if you get an error message refering to this, you may need to install as well. 2. Download sl-modem-daemon2.9.9d+e-pre2-5.deb and sl-modem_2.9.9d+e-pre2.orig.tar.gz from the debian website http://packages.debian.org/unstable/misc/sl-modem-daemon. I have found that the slmodem-2.9.11-20051101.tar.gz works better in dapper and this can also be downloaded from the linmodem website http://phep2.technion.ac.il/linmodems/packages/smartlink/. 3. It may also be required that you download and install the ungrab-winmodem from the linmodem website as well. 4. Copy the sl-modem-daemon file to your local repository and update your Packages.gz file, this will allow you to install with Synaptic etc. Or use your favourite way to install a .deb file. 5. Copy the sl-modem_2.9.9+e-pre2.orig.tar.gz ( or preferably the slmodem-2.9.11-20051101.tar.gz) file to your Desktop and right click on it and select “Extract here” and a folder wth the same name will be created with the extracted files on your desktop. 6. Now rename the folder to an easier name such as “slmodem” 7. Open a terminal and cd in to the slmodem folder 8. Type make 9. Type sudo make install 10. Type sudo modprobe slamr 11. Type dmesg | grep slamr 12. Now install sl-modem-daemon2.9.9d+e-pre2-5.deb with Synaptic or in your own favourite way. 13. Use Kppp to query the modem, if this works you are there! 14. Edit /etc/default/sl-modem-daemon to change the line SLMODEMD_COUNTRY= USA to i.e SOUTHAFRICA or your country 15. Type sudo /etc/init.d/sl-modem-daemon restart to restart the daemon. 16. If you do a “Query modem” in Kppp and you will see that your country has changed. 17. It seems as if the Smartlink modems with Netodragon chip MDV92XP does not work, but the ND92XPA chip works. === Modems supported by the Lucent driver === This section is for you if the output of scanModem tells you something like: 'The modem has a supported Lucent/Agere DSP (digital signal processing) chipset.'. You will be able to use a driver from the "restricted-modules" package, which should be installed by default. (To check that the necessary package is installed, use your package manager, e.g. Synaptic or Adept. You need to look for a package, which is called {{{linux-restricted-modules-ARCH}}}, where ARCH is the last part of the {{{$ uname -r}}} output, i.e. your kernel flavor. If it is not installed yet, install it there.) ==== Setup steps for ltmodem ==== * In a terminal type {{{ $ sudo sh -c "echo ltserial >> /etc/modules" $ sudo sh -c "echo ltmodem >> /etc/modules" }}} to add them to the module autoloading list. * Since udev rewrites /dev on each boot, and some dialup programs rely on the existence of /dev/modem, you need to have a symlink created on boot (from /dev/ttyLTM0 to /dev/modem). To do this, create the file /etc/udev/rules.d/10-local.rules, and put these lines in it: {{{ #ltmodem KERNEL="ttyLTM0", SYMLINK="modem" }}} * Now load the drivers for the first time: {{{ $ sudo modprobe ltserial $ sudo modprobe ltmodem }}} This should have created the device {{{/dev/modem}}} and you can now go on to configure your dialup connection. * No, I get an error about "FATAL: module not found" for this step :( '''Note for "5.04 Hoary" users:''' Ubuntu 5.04 Hoary was shipped with kernel 2.6.10, which has some problems with these modules. To fix, change the grub boot commands {{{/boot/grub/menu.lst}}} as follows ({{{pci=routeirq}}} is new): {{{ ## ## Start Default Options ## ## default kernel options ## default kernel options for automagic boot options ## If you want special options for specifiv kernels use kopt_x_y_z ## where x.y.z is kernel version. Minor versions can be omitted. ## e.g. kopt=root=/dev/hda1 ro # kopt=root=/dev/hda1 ro pci=routeirq }}} Do not forget to update grub: {{{$ sudo update-grub}}} ==== Martian, an alternive to ltmodem ==== On 6.06.1, It's possible that as part of trying to load the {{{ltserial}}} module, you'll get the error: "FATAL: Error inserting ltserial (...): Invalid argument". In this case, Installing the [[http://martian.barrelsoutofbond.org/|Martian driver]] may be a solution to get your Lucent winmodem to work. First, you'll need to follow the instructions above to install {{{build-essential}}} and your kernel headers packages, to prepare to compile the driver. Download the most recent version with "full" in the name, from here: http://www.barrelsoutofbond.org/downloads/martian/ Instructions for installing the file software are in the "INSTALL" file. Until someone makes an "init" script for it, There is an additional step needed to be able to use the modem after you boot up. {{{ sudo martian_helper --daemon }}} If your software expects the modem to be located at {{{/dev/modem}}}, you may also need to run this command: {{{ sudo ln -s /dev/ttySM0 /dev/modem }}} Hopefully "Martian" will become an offical Ubuntu package to make this whole process easier. === Modems supported by the Intel537EP driver === This section describes how to install a 537EP driver on Dapper Drake 6.06 and 6.10. ==== Prerequisites ==== You will need the following: 1. A compatible Intel softmodem - supported models are 537, 537EP, 537SP, 537AA or 537EA. To find out what model you have, see the preceding section on ScanModem. 536* modems may work but I have not tested them. 2. A 32-bit kernel, if "uname -r" prints something ending in 386 or 686, you probably have a 32-bit kernel. 3. The Intel537EP driver, available at http://downloadfinder.intel.com/scripts-df-external/Detail_Desc.aspx?agr=Y&ProductID=1230&DwnldID=9284&strOSs=39&OSFullName=Linux*&lang=eng (more recent versions exist, but you will have to find the instructions yourself). 4. GCC 3.4, details on this are at the top of this page 5. Developer tools and the kernel headers, both of which are on the Ubuntu CD. See the section at the top of this page on compiling ==== Installing on Ubuntu 6.06 ==== On 6.06, a complicated series of hacks are necessary. First, unpack the 537EP driver to a directory of your choice. A folder called Intel-537 should be created when you unpack. Rename that folder to whatever "uname -r" prints. After that, type in the following order: "make clean", "make 537", and "sudo make install". This will create and install the driver and a set of scripts. However, the boot script provided by Intel does not work on 6.06. Therefore, we have to sudo gedit /etc/init.d/537_boot and replace the script with the following: {{{ #!/bin/sh kernel=`uname -r` serial="/etc/init.d/$kernel/Intel537.ko" device="537" registry="hamregistry" group="root" mode="664" if [ -a /etc/SuSE-release ]; then { group="dialout" } fi case "$1" in start | b) if ! ( modprobe -f $serial 1>/dev/null 2>/dev/null ); then { if ! ( insmod -f $serial 1>/dev/null 2>/dev/null ); then { echo error loading $serial rmmod $serial exit 1 } fi } fi major=`cat /proc/devices | awk "\\$2==\"Intel537\" {print \\$1}"` echo major="($major)" rm -f /dev/$device mknod /dev/$device c $major 1 2> /dev/null 1> /dev/null chgrp $group /dev/$device chmod $mode /dev/$device ln -sf /dev/Intel5370 /dev/modem 1> /dev/null 2> /dev/null if ! ps -C $registry 1> /dev/null 2> /dev/null; then { if ! ( /usr/sbin/$registry 2> /dev/null 1> /dev/null & ); then { echo "Modem registry ($registry) could not start." echo "Please see international users secion in readme.txt for more info." } fi } fi exit 0 ;; stop) rmmod 537 1> /dev/null 2> /dev/null rmmod 537_core 1> /dev/null 2> /dev/null rmmod $serial 1> /dev/null 2> /dev/null ;; restart | reload) /bin/bash "$0" stop /bin/bash "$0" start exit 0 ;; status) if lsmod | grep "$serial " >/dev/null; then { lsmod | grep "$serial " > /dev/null } else { echo "$serial NOT loaded" } fi if ps -C $registry 1> /dev/null 2> /dev/null; then { ps -C $registry } else { echo "$registry NOT running" } fi exit 0 ;; *) echo unknown $serial script parameter exit 1 esac exit 0 }}} If you get an access denied error, type "sudo chmod 300 /etc/init.d/537_boot" and try again. To finish, copy the folder that you unpacked the driver to /etc/init.d with "sudo cp (foldername) /etc/init.d". After a restart, you should be able to dial a connection with your favorite dialer (personally, I experienced a lot of "LINE IS BUSY and NO DIAL TONE" errors before a successful dial). ==== Installing on 6.06.1 ==== Fortunately, the install works perfectly on 6.06.1 (you have 6.06.1 if "uname -r" prints 2.6.15-27-386 or 2.6.15-27-686). Simply unpack, then type the following: 1. make clean 2. make 537 3. sudo make install The boot script for this driver was designed for SUSE, so you will have to change the line in /etc/init.d/537_boot that says "mode=664" to "mode=666" if you want to dial without root permissions. ==== Installing on Edgy (6.10) ==== An edgy install is similar to the procedure for 6.06.1. However, the SUSE 9.3 drivers mentioned above return build errors when run through make. Therefore, we must revert to an earlier version, Phillipe Vouter's modified 2.60.80.1 drivers at http://linmodems.technion.ac.il/packages/intel/Philippe.Vouters/intel-537EP_secure-2.60.80.1_21_09_2006.tgz . You can build them with the same commands as those shown for 6.06.1, but make sure to type "export MODEM_TYPE=537EP", replacing 537EP with your modem type. ==== Credits ==== Kudos to chuckman78 for his guide (available at http://ubuntuforums.org/showthread.php?t=210405), from which I borrowed from extensively. === Modems supported by the Intel536EP driver === This page describes how to install the driver for the Intel 536EP internal modem on Ubuntu for i386 systems. Some of these are sold as Cnet modems and have Ambient chips on board. The process below is quick easy and works quite well. The procedure is fairly similar for Ubuntu releases 4.10, 5.04 and 5.10. There is a minor complication on 5.10, discussed below. As of this writing, compilation and usage has been tested on 5.10, 6.06 and 6.10; only compilation has been tested on 5.04 and nothing at all tested on 4.10. If anyone else succeeds (or fails), please update this page. There are 4 steps in this howto: 1. Install required Ubuntu packages 1. Download required files 1. Compile the driver 1. Install the driver ==== Install required Ubuntu packages ==== ''Ubuntu 5.04 (Hoary Hedgehog)'' Make sure you have followed the section of this document entitled ''If compiling from source''. ''Ubuntu 5.10 (Breezy Badger)'' Make sure you have additionally followed the section entitled ''Installing GCC 3.4''. ''Ubuntu 6.06 (Dapper Drake)'' ''Ubuntu 6.10 (Edgy Eft)'' It's not clear if you need GCC 3.4 for these; it will probably work with the 'normal' gcc you get when following the ''If compiling from source'' section. ==== Get the driver itself ==== Download the drivers for the modem. For Ubuntu 5.04, 5.10 and 6.06, use this link: http://downloadfinder.intel.com/scripts-df-external/Detail_Desc.aspx?agr=Y&ProductID=977&DwnldID=9266&strOSs=39&OSFullName=Linux*&lang=eng For 6.10, use this instead: http://linmodems.technion.ac.il/packages/Intel/Philippe.Vouters/intel-536EP-2.56.76.0_21_09_2006.tgz Make sure you know where you've saved this file, which is named `Intel-536EP-4.71.tgz` or intel-536EP-2.56.76.0_21_09_2006.tgz`; for the purposes of this document it will be assumed that it is in your home directory (which is /home/, where is your username). ==== Compiling the driver ==== First we need to uncompress the downloaded file. Start a terminal window and run the following command: {{{ tar xzf Intel-536EP-4.71.tgz }}} or (for 6.10) {{{ tar xzf intel-536EP-2.56.76.0_21_09_2006.tgz }}} This assumes you saved the file downloaded from Intel in your home directory; otherwise, type `cd ` before typing the `tar` command above. This will create a directory `Intel-536` with the source contained in it. Change to this directory by typing {{{ cd Intel-536 }}} or (for 6.10) {{{ cd intel-536EP-2.56.76.0 }}} Still in the terminal window, type the following: {{{ make clean }}} This should produce output looking like this: {{{ Try `uname --help' for more information. cd coredrv; make clean make[1]: Entering directory `/home/rory/Intel-536/coredrv' rm -f *.ko *.o *~ core make[1]: Leaving directory `/home/rory/Intel-536/coredrv' rm -f *.o *.ko }}} Now type {{{ make 536 }}} This will result in many lines of output being printed to the terminal window; you can ignore most of them. The final lines should look like this: {{{ CC /home/rory/Intel-536/coredrv/Intel536.mod.o LD [M] /home/rory/Intel-536/coredrv/Intel536.ko make[2]: Leaving directory `/usr/src/linux-headers-2.6.12-9-386' make[1]: Leaving directory `/home/rory/Intel-536/coredrv' }}} There should be an `Intel536.ko` file in the directory now; test this by typing `ls -l Intel536.ko`; the output should look like {{{ -rw-r--r-- 1 rory rory 1070520 2005-10-16 21:02 Intel536.ko }}} The file size should be similar, though probably not identical. ==== Installing the driver ==== There are two steps to installing the driver. The first is to copy the Intel536.ko file created above to an appropriate directory, and the second is to cause the driver to be loaded at boot time. ''Installing the Intel536.ko file'' Copy the file to the modules directory by this command: {{{ sudo cp Intel536.ko /lib/modules/$(uname -r)/kernel/drivers/char }}} You may be prompted for a password; if so, enter your user password. Make your system aware of this module with `depmod`: {{{ sudo depmod -a }}} Finally, load the driver with the `modprobe` command: {{{ sudo modprobe Intel536 }}} This command should not print a response; if it prints something like this: {{{ FATAL: Module Intel536 not found. }}} you have made an error; most likely you have copied the file to the wrong place. If you see a different error message, there may be an error in the module, or your modem, or you may not have a Intel 536-based modem. ''Loading the driver at boot time'' To load the module at boot time, we need to add a line "{{{Intel536}}}" to the file /etc/modules. First make a backup of the file: {{{ sudo cp /etc/modules /etc/modules.backup }}} Now add the required line as follows: {{{ sudo sh -c "echo Intel536 >> /etc/modules" }}} ==== Using the modem ==== The name of your modem device is `/dev/536ep0`. You can now use sudo pppconfig to set up pon & poff. To use Kppp you will need to create a symlink be able to link the /dev/536ep0 to /dev/modem. Udev rewrites the /dev on each reboot and you thus have to create a file /etc/udev/rules.d/10-local.rules and put the following lines in it: {{{ # Intelmodem536ep KERNEL="536ep0" SYMLINK="modem" }}} Now reboot and you can use Kppp to query the modem as this is a quick check if all is well before dialling out. Configure KPP for your ISP connection. These Intel modems are found to be more stable and less finicky that the Smartlink types on Breezy. === Modems supported by the Conexant drivers === '''Note:''' Conexant does not provide drivers for Linux, but commercial Linux drivers are available from Linuxant, a seperate company. Licenses cost 19.99 US dollars. That comes with at least one year support and kernel-version upgrades, after which you need to purchase it again if you are running a different kernel which needs a newer version of the driver. Without the license, the drivers are limited to a maximum speed of 14.4Kbps. However, some Conexant modems can be run with the sl-modem-drivers (smart link) or an open source driver. Note that in general, you can buy a Lucent or Intel (smartlink, or other brand with intel chipset) modem for less than 19.99 US. ==== Open Source ==== Rafael Espíndola has ported the latest open source Conexant driver to 2.6.x kernels. AlexandreOttoStrube packaged it for Ubuntu Breezy using kernel 2.6.12-8. The source code and the binary package for Breezy can be found at [[http://www.surak.eti.br/linux/ubuntu/deb/conexant/]]. An FTP mirror is at [[ftp://ftp.wizzy.com/pub/wizzy/conexant/]] courtesy AndyRabagliati. For Ubuntu 6.06 Dapper, [[attachment:modem-hsfpci.tar.bz2]] is a script to extend this driver to other supported hsf modems and other kernels. Just unpack it and read the HOWTO. ==== Quick Steps for setup of Linuxant/Conexant HSF driver ==== Assuming you know everything there is to know about your setup, all you need to do is: Get the ZIPped Debian hsfmodem package from [[http://www.linuxant.com/drivers/|Linuxant]] from another ''connected'' machine (find the Ubuntu 5.10 package). Remember to extract the Debian package to your Desktop (easier to locate). You will use the terminal application to run the commands listed below. The terminal application looks in specific directories for ".deb" packages. If you download binary file then goto Step 3. Step 1 If you are using Ubuntu 5.10 (Breezy Badger), make sure you have followed the section of this document entitled ''Installing GCC 3.4''. Step 2 Then install hsfmodem: {{{ unzip hsfmodem_*.deb.zip #extract file sudo dpkg -i hsfmodem_*.deb #install .deb package }}} Step 3 And finalize the modem driver installation: {{{ sudo hsfconfig }}} {{{sudo hsfconfig}}} will prompt you about your location, your email address and license credentials, assuming you've purchased one; if not, then go by the FREE license key which will grant you up to 14.4 kbps connectivity only :( === PCTel Modems === Original forum post here: http://ubuntuforums.org/showpost.php?p=928212&postcount=10 The OP couldn't edit the wiki, I thank him for his time and effort for contributing. Following are the instructions: In order to use PcTEL Micromodem 56 (HSP56 MicroModem Pctel, or any other modem supported by driver) you will have to switch to kernel 2.6.8.1 or lower. Even so, some units will NOT work with 2.6 kernel (consult README file in driver archive), but all of them work with 2.4 kernels. To make the short story long, going online on Ubuntu 5.10 aka. Breezy Badger you have to do four things: (before u do all this, read this section until the end) I. get some utilities (gcc & initrd among else) II. get vanilla kernel on www.kernel.org (I suggest) 2.6.8.1 III. Recompile the kernel IV.Install the driver and configure ppp Here are the details: (I will assume your kernel source is in /usr/src Open terminal and use root privileges {{{ sudo apt-get install gcc-3.4 build-essential libncurses5-dev kernel-package gnome-ppp #this step ensures you will have easier time later on sudo ln -sf /usr/bin/gcc-3.4 /usr/bin/gcc # this will make your system use gcc 3.4 instead of 4.0.2 This is necessary because you will not be able to compile kernel with gcc-4 series}}} Go to your downloaded kernel folder {{{ sudo tar -xvfj kernel-2.6.8.1.tar.gz cd kernel-2.6.8.1 sudo make mrproper sudo make xconfig #if xconfig doesn't work use menuconfig or gconfig instead }}} Configure your kernel if you know what you are doing, but you don't since you are reading this so don't do anything you are not 100% sure about. {{{ File-> Load go to /boot and select config-2.6.12-9-386 or current config file (check with uname -r in a separate terminal) sudo make-kpkg clean sudo make-kpkg --initrd --revision=custom.1.0 kernel_image After couple of hours, or less depending on you CPU.... cd /root sudo dpkg -i kernel-image-2.6.8.1_custom.1.0_i386.deb }}} If something goes wrong you will have to delete folder in {{{/usr/src}}} with your new kernel's name, NOT your default kernel. If something goes wrong, go to where your kernel source is and run {{{sudo make clean }}} and repeat everything above. If you are using GRUB that's it. No more. If you are using LILO, google a bit and you'll find how to configure it. Only one note here: you will not see standard Ubuntu splash on boot process; screen will be black, but the boot will go as normal. If you want to see what is happening go to /boot/grub and open menu.lst and under line that goes boot /boot/vmlinus something...something {{{ quiet splash }}} delete {{{ splash }}}. Or, if you will you can go on-line and find a better way to do this. There are enough resources. Second, if you are messing with configuration of the kernel, '''DO NOT''' change things you are not sure about. Sure, feel free to select only your graphic/music card or such things, but if you are not sure if you need something don't remove that. Remember, these are the settings that '''work'''. * Actually, if this compiled kernel doesn't work, you will have to add some changes... and here they are: (you can do this in the first attempt) {{{ CONFIG_BLK_DEV_RAM=y CONFIG_BLK_DEV_RAM_SIZE=16384 CONFIG_BLK_DEV_INITRD=y }}} These settings may be changed in Block Devices in kernel configuration or you can open file /boot/config-2.6.8.1 and look for these lines (if they don't exist, make them).First thing seems to be nesessary only on older Pcs, but what does old mean is beyond me. I have Pentium II 400 Mhz @ 128 Mb RAM and it takes three hours to compile kernel if no changes are made to config file. Final size is cca. 12 Mb, however fully customized kernel is around 2 MB and it takes 30 minutes to compile. You can speed up the process by killing gdm and all the stuf you dont need. Here is how to: f1+ctrl+alt and then use sudo {{{ sudo /etc/init.d/gdm stop }}} now continue with {{{ make menuconfig }}} ... See http://www.falkotimme.com/howtos/debian_kernel2.6_compile/ for more help on this (kernel compilation) step. You will now have to download modem drivers and install them. Simply run {{{ sudo ./setup Or in the ~/src folder sudo ./configure sudo make sudo make install }}} from within the untarred modem driver directory. In order to use second method you will have to copy your kernel source to /usr/src. Do this Only AFTER you have successfuly compiled the kernel, and DO NOT compile it from /usr/src. Final step: once you have sucessfuly compiled the kernel and the drivers you will whish to be able to load the drivers every time you boot the machine. Here is how you do it: go to /etc and look for file called modules. Open it and add following lines: {{{ linmodem pctel pctel_hw }}} You can also load them by {{{ sudo modprobe linmodem sudo modprobe pctel sudo modprobe pctel_hw }}} In the end, you will have two kernels you can chose among, if something goes wrong. Remmember that what you do by using one kernel will not be undone when you use the other one. == Hardware modems == Hardware modems don't need a special driver. If your modem connects to the serial port and you know the COM port, the device name is {{{/dev/ttySx}}}, where x is one less than the COM port number. For example, if your modem is on COM2, the device is {{{/dev/ttyS1}}}, or if your modem is on COM1, the device is {{{/dev/ttyS0}}}. You can use this device name to configure your dialup connection. Note by RaduCristianFotescu: I experienced the problem of a non-detected and not working external hardware serial modem (which made pppconfig, wvdial[conf] and gnome-ppp unuseable) even after issuing a 'sudo ln -s /dev/ttyS0 /dev/modem'. Of course, it previously worked in Slackware and Mepis! Eventually I got it working by making sure the modem was ON and connected to the RS-232 at the time when the kernel was booting! I guess it's smth with the boot scripts... = Configuring the dialup connection to your provider = There are different tools, which can help you to configure & establish a dialup connection. Some of them are command line based (pppconfig & pon/poff, wvdialconf & wvdial), while others use a graphical interface (System => Administration => Networking, kppp, gnome-ppp). With all these tools, to establish a dialup connection, the user has to be member of the "dip" and "dialout" groups, so put all users who are supposed to connect via dialup into these groups: {{{ $ sudo adduser USERNAME dip $ sudo adduser USERNAME dialout }}} where of course {{{USERNAME}}} has to be substituted. You will also need to know the device node of your modem. The "Installing the driver"-section of this page should have told you about it. In case you don't know it, assume {{{/dev/modem}}}. == System => Administration => Networking (Ubuntu) == The ''Networking'' section of ''System => Administration'' will let you set up the ppp connection in a graphical interface. You have to know your device name, ISP phone number, username and password to set it up. You can also use the ''Gnome Modem Monitor'' and ''Network Monitor panel'' applets if you want to stop, start and monitor modem connections without opening the ''Networking'' GUI every time. Some people have had a problem with the modem dialing during bootup. This may be related to setting the modem as default route to the internet on the ''Options'' tab of ''Interface properties''. '''Note:''' It has been reported, that connections started with this interface might be very slow, if they work. You can try it, but if this is the case for you, just try one of the other options. == kppp (Kubuntu, but also possible on Ubuntu) == Kppp can be installed and comes with Kubuntu and is a very nice program with all the features you would like from a dialer. It has a nice window showing that it is connected and gives the duration as well. It can also be configured to calculate your telco connection cost. If it is not installed yet, you can install it with your package manager, e. g. {{{$ sudo apt-get install kppp}}}, and find it in the "Internet" section of the menu. Every user, who is in the dip/dialout groups, can use kppp to configure, connect and manage a connection to an ISP. If you need help with its interface, go to "Help -- Handbook" or use the online handbook here: [WWW] http://docs.kde.org/stable/en/kdenetwork/kppp/ If you have problems with Authentification, you might want to edit /etc/ppp/peers/kppp-options and activate the line {{{noauth}}} by removing the comment sign. == pppconfig & pon/poff == This is a command line based option to manage dialup connections. This makes it very flexible, but maybe not so straightforward to configure. === Collecting Information === You will need: * Your ISP's phone number * Your username and password on the ISP * The name of the modem device (/dev/...) === Setting up ppp === 1. Open a terminal (Applications > System Tools > Terminal) and type {{{ $ sudo pppconfig }}} 1. You will be on the main menu. Choose 'Create Create a connection'. 1. Leave the name as 'provider', hit 'Ok'. 1. Select 'Dynamic Use dynamic DNS', hit 'Ok'. 1. Select 'PAP Peer Authentication Protocol', hit 'Ok'. 1. Enter your user name for the ISP, hit 'Ok'. 1. Enter your password for the ISP, hit 'Ok'. 1. Leave the speed at 115200 as recommended, hit 'Ok'. 1. Choose Tone or Pulse dialing, hit 'Ok'. 1. Enter the phone number to your ISP (do not use any dashes), hit 'Ok'. 1. You can try to have your modem detected automatically, but it did not work for me, even on my easily detectable external modem. 1. If the modem wasn't detected, it will ask you for the port your modem is on. Enter the device name for your modem, hit 'Ok'. 1. A summary screen will appear and give you the opportunity to make changes if needed. 1. Choose 'Finished Write files and return to main menu.'. 1. Choose 'Quit Exit this utility'. 1. Exit the terminal window, type:{{{ $ exit }}} === Connecting to the ISP === Log out and back in (for the group setting to take effect). Every "dialout/dip" user will now be able to connect and disconnect with these commands: {{{ $ pon # connect to the ISP configured as "provider" $ poff # disconnect the ISP configured as "provider" }}} You can also check the last messages generated by these commands with: {{{ $ plog # shows the (status) messages generated by pon and poff }}} If you want to configure more ISPs, start pppconfig again, go through the steps, but give it a different name in step 3 (e.g. provider2). You can then (dis)connect by {{{pon provider2}}} and {{{poff provider2}}}. === Changing speaker volume === To quiet or silence the connection noises (dialing, negotiation, etc.), follow these steps: 1. Open a terminal (Applications > System Tools > Terminal) and type{{{ $ sudo nano /etc/chatscripts/provider }}} 1. Locate the line marked 'OK-AT-OK'. 1. Change 'ATDT' to 'ATxxDT', where 'xx' is one of the following: * M0 Silence the speaker * L1 Low volume * L2 Medium volume * L3 High volume For example: ATM0DT. Leave the rest of the line unchanged. 1. Save the file (Ctrl-o) and exit (Ctrl-x). === Using Modem Lights panel-application === While it's good to be able to get online, it'd be nice to have a single way to either connect or disconnect. The easiest way is by using Modem Lights. Right click on the top panel, select 'Add to panel', and choose 'Modem Lights'. If your modem device is other than ttyS0, you'll have to configure the app. Right-click Modem Lights, choose Preferences -> Advanced, and change the lock file to point to your modem device. For example, if you have an internal modem on /dev/modem, the Device would be ppp0 and the Lock File /var/lock/LCK..modem Besides allowing you to connect and disconnect with a single click, Modem Lights also gives you information on how long you've been connected, and a graphical view of your modem's activity. == wvdialconf & wvdial == I prefer wvdial, because it tells you whether your modem is configured or not. Type in a terminal {{{ $ sudo wvdialconf /etc/wvdial.conf }}} If it says 'no modem found' or something similar, sorry... the driver for your modem seems not to be installed properly yet. The lack of a /dev/modem is not supposed to break wvdial's configuration. If the modem is found, finish the setup with: {{{ $ sudo nano /etc/wvdial.conf }}} After opening the wvdial.conf file, input your ISP information where needed (look inside the file for fields) and add other options that might be needed for your software modem. You will know what these options are if you asked for help from linmodems.org mailing list. Examples options that you can try to add, if dialling does not work: * add {{{X3}}} to Init2 (means dial without waiting) * add {{{Carrier Check = no}}} as a new line (useful for Smartlink modems) * add {{{Stupid mode = on}}} as a new line (will start pppd immediately--required by some ISPs) Typing {{{man wvdial.conf}}} in a separate terminal will give details on options. Once you are ready, save the file (Ctrl-o) and exit (Ctrl-x), and try to dial: {{{ sudo wvdial }}} will dial and connect. Upon connection, it will spit out some information about your connection (local IP, remote IP, DNS address, etc.). Do '''not''' close the terminal where wvdial is running. Leave it alone until you want the connection to be terminated, and hit CTRL+C on that terminal once you want to end the connection. If you lose the connection a short time after connecting (30 sec - 3 min), you might need to edit options for pppd: {{{ gksudo gedit /etc/ppp/options }}} Find {{{lcp-echo-interval30}}} and {{{lcp-echo-failure4}}}. Comment out these options by adding a '#' at the start of these lines, eg. {{{# lcp-echo-interval30}}} and {{{# lcp-echo-failure4}}}. If you connect successfully but your Internet applications do not function (eg. web pages do not load in Firefox), you might need to add {{{replacedefaultroute}}} as a new line in the pppd option file. == gnome-ppp == gnome-ppp is a graphical frontend to wvdial and can be installed by {{{$ sudo apt-get install gnome-ppp}}}. You will find it in the Applications menu and the configuration is probably straightforward. If wvdial works but you have problems connecting with gnome-ppp, view the wvdial.conf you created earlier in the wvdialconf section above: {{{ gksudo gedit /etc/wvdial.conf }}} open the wvdial.conf file that gnome-ppp creates (in a different location): {{{ gksudo gedit $HOME/.wvdial.conf }}} and compare the settings. Change the settings in the gnome-ppp wvdial so they match the settings in the functioning /etc/wvdial.conf. Do not delete lines--if you need to remove a setting, simply delete the text to the right of the = sign, eg. "Init3 = ". Despite the warning at the bottom of the gnome-ppp wvdial.conf file, you can add lines if necessary, eg. "Stupid Mode = on". = Discussion = * [[https://launchpad.net/distros/ubuntu/+spec/winmodem-support|spec for supporting winmodems out of the box]] * This page is way too long; it's difficult to read and edit. RoryYorke