Sometimes the GENERIC kernel cannot identify your internal modem and lists the offending PCI modem card as (unknown card) in the /var/run/dmesg.boot log. This problem can also be caused by PCs with pre-Y2K BIOS.
pci0: <unknown card> (vendor=0x1106, dev=0x3050) at 7.3
You will also get this message if your PCI modem is a Winmodem. Very seldom is the PCI modem physically labeled or marked as a Winmodem. Read the marketing information on the box your PCI modem came in, or check out the support web site for the PCI modem's manufacturer to verify it's a Winmodem. If your PCI modem is a Winmodem, replace it.
Try the pciconf -lv command to see if it gives you any useful info.
Some older PCs have BIOS which cannot correctly ID PCI modems. Your only remaining option is to customize the kernel source by adding the following device statement at the end of the kernel source and then recompiling.
This kernel option enables the 'puc' (PCI Universal Communications) driver which does additional probing during the boot process to help connect PCI-based serial ports to the 'sio' driver. I have not found a situation on desktop PCs where this did not fix the PCI modem <unknown card> problem, as long it’s not a Winmodem.
When the boot probe process finds a PCI modem it automatically moves it to sio4 as the dmesg.boot messages shows below.
sio0: <Zoom PCI Modem> port 0xe400-0xe407,0xe000-0xe0ff,
mem 0xe2000000-0xe20000ff irq 3 at device 19.0 on pci0
sio0: moving to sio4
sio4: type 16550A
Sio4 is internal device cuaa4.
You are going to use the 'tip' command to test if FBSD can communicate with your modem. This test will verify that FBSD can connect to the PCI modem and also that it will respond to the Hayes commands you will issue to it.
The ‘tip comx’ command uses the /etc/remote file for the definition of comx. I have listed the whole group of comx statements here so you can better find them in the /etc/remote file.
# Finger friendly shortcuts
As you can see this file has not been updated to reflect the serial port baud rate of the modern modems currently on the market. These statements are configured for 9600 baud legacy modems which have not been manufactured in 10 years. The serial port baud rate is the speed that the serial port controller talks to the modem hardware. It’s not the speed the modem connects to the remote modem.
Change all the 9600 to 115200 which is the serial port baud rate for 56K modems.
Make your changes look like this:
# Finger friendly shortcuts
After saving your changes you are now ready to test your modem.
On the command line enter:
tip com5 # com5 is your PCI modem
is displayed meaning 'tip' has made contact with the PCI modem.
Type AT and then hit enter. 'AT' is the Hayes attention command.
'OK' is displayed.
This means the Hayes attention command was received by the modem and issued its normal reply of 'OK'. Your modem configuration has passed the test and is functional.
You now have to ‘train’ the modem to use 115200 as the internal default baud speed. Enter the ‘AT’ Hayes command 10 times. You will receive the ‘OK’ reply from the modem each time. This is a very important step that has a very large impact on the performance of your modem's throughput. Do not bypass this step.
Use the keyboard ~ key followed by the . key to exit tip.
Remember, device ‘cuaa4’ is the device you tell ‘user ppp’ to use.
NOTE: If you get this message;
Interrupt storm detected on irqX:, throttling interrupt source.
This means your PCI modem is sharing it's interrupt with another expansion board in your PC. Try moving the PCI modem card to different expansion slots on the motherboard until its not sharing it's IRQ with anything.
This FreeBSD Installer Guide is an public domain HOW-TO. This content may be reproduced, in any form or by any means, and used by all without permission in writing from the author.