Howto make the 3COM 0727 modem work under Linux
This page is a mini-mini-HOWTO.
It give you the steps to configure this 3COM modem under Linux.






 Modem Specification
  • Brand: 3Com
  • Model: 0727
  • FCC: 4X2USA-32034-M5-E
  • Product: 3CP 2976-OEM-50
  • Interface: PCI
  • Speed: 56K

Steps
The steps described here are separated in two mayor procedures:

  1. 1. Obtain a setup string
    Here we try to obtain a setup string to configure the modem.
    1. 1.1. Determine the IRQ and I/O of the modem
      The IRQ and I/O is reported by the kernel.
      1. 1.1.1. Using 'lspci'
        Run: 'lspci -v ' and search for something like this:
        00:0c.0 Serial controller: US Robotics: Unknown device 1008 (rev 01) (prog-if 02)
        Subsystem: Unknown device 12b9:00aa
        Flags: medium devsel, IRQ 11
        I/O ports at b400
        Capabilities: <available only to root>
      2. 1.1.2. Using /proc/pci
        Run: 'cat /proc/pci ' and search for something like this:
        Bus 0, device 12, function 0:
        Serial controller: Unknown vendor Unknown device (rev 1).
        Vendor id=12b9. Device id=1008.
        Medium devsel. IRQ 11 .
        I/O at 0xb400 [0xb401].
    2. 1.2. Determine the serial tty of the modem.
      The tty of the modem is the next available serial tty.
      If you have ttyS0 and ttyS1, the modem the modem should be in ttyS3.
      Try using: ttyS0, ttyS1, ttyS2 or ttyS3
    3. 1.3. Build the command for configuring the modem
      You must use the command 'setserial' to configure the modem.
      Replace IRQ, I/O and TTY with your settings:
      setserial /dev/TTY irq IRQ port I/O ^fourport ^auto_irq skip_test autoconfig spd_vhi
      Example:
      setserial /dev/ttyS3 irq 11 port 0xb400 ^fourport ^auto_irq skip_test autoconfig spd_vhi
  2. 2. Update the /dev/modem link The file /dev/modem is a soft link to the serial COM.
    You must update it after founding a tty that works.
    If your modem is at ttyS03, use this command as root:
    # cd /dev
    # ln -sf ttyS3 modem
  3. 3. Configure the modem at boot time
    You have to run the setserial command every time you boot Linux.
    1. 3.1. RedHat 6.x Instructions
      1. 3.1.1. Create the file:
        /etc/rc.d/rc.serial
      2. 3.1.2. Put the setserial command in that file.
        Example:
        #!/bin/sh
        # 3COM 0727 56K PCI
        setserial /dev/ttyS3 irq 11 port 0xb400 ^fourport ^auto_irq skip_test autoconfig spd_vhi
        # Print the modem setting at boot time
        setserial /dev/modem -b
      3. 3.1.3. Make the file executable
        # chmod +x /etc/rc.d/rc.serial
    1. 3.2. Corel Linux 1.0 Instructions
      1. 3.2.1. Edit the file:
        /etc/rc.boot/0setserial
      2. 3.2.2. Put the setserial command in that file.
        Example:
        ${SETSERIAL} -b /dev/ttyS4 irq 10 port 0xe000 ^fourport ^auto_irq skip_test autoconfig spd_vhi
    2. 3.3. Slackware 7.1 Instructions
      1. 3.3.1. Edit the file:
        /etc/rc.M
      2. 3.3.2. Put this lines:
        # Start the setserial procedure
        if [ -x /etc/rc.d/rc.serial ]; then
        . /etc/rc.d/rc.serial
        fi
      3. 3.3.3. Create the file:
        /etc/rc.d/rc.serial
      4. 3.3.4. Put the setserial command in this file. Example:
        #!/bin/sh
        #3COM 0727 56K PCI
        setserial /dev/ttyS2 IRQ 17 port 0xd400 ^fourport ^auto_irq skip_test autoconfig spd_vhi
        # Print the modem setting at boot time
        setserial /dev/modem -b
      5. 3.3.5. Make the file executable
        # chmod +x
        /etc/rc.d/rc.serial
    3. 3.4. More feedback needed
      ...

Credits
  • Original setserial options: Klavs T Pedersen from this site.
  • Corel 1.0 instructions: Peter <No1@puttonen.com_NOSPAM>
  • Slackware 7.1 instructions: Chris Jensen <emcis@yahoo.com_NOSPAM>
  • SMP systems: Chuck Meade <chuckmeade@yahoo.com_NOSPAM>

Notes / Links
  • This modem is detected with no extra setup in Linux kernels 2.4.x
  • This is a really small mini-HOWTO for Linux kernel 2.2.x.
  • This modem is NOT a winmodem
  • Modem/winmodem compatibility list (http://start.at/modem/) for Linux.
    It is maintained by Rob CLARK and is really helpfull, just go the section of your modem maker/brand and look at the status of compatibility.
  • LinModems.org
    This is a site about Winmodems under Linux.
    Includes link to the latest manufacturers drivers for the so called HCP modems
  • Some have asked for a Windows driver, here is the link from US Robotics site

Troubleshooting
  • Minicom
    If after started minicom the first message is not an "OK " string, the modem is not responding.
    Try starting minicom with the tty as the first parameter, i.e.: minicom /dev/ttyS3
    Try configuring another COM port(ttyS1 to ttyS3)

  • lspci does not show an IRQ number for the modem
    Check your BIOS setup. To debug the problem, try disabling the COM2 or the USB to free some IRQ lines.

    From Philippe Lamoureux <philippe.lamoureux_AT_primus.ca>:
    "The PnP OS option may be set to 'On', and the BIOS does not automatically
    assign an IRQ number to the selected PCI Slot. "
  • SMP systems
    Chuck Meade downloaded the version 5.02 of setserial for the modem to work on his SMP motherboard. Get it from:
    http://serial.sourceforge.net/