PCMCIA modem not properly handled under 2.2.x kernels

Bernard Moret (moret@cs.unm.edu)
Tue, 30 Mar 1999 17:06:40 -0700 (MST)


[1.] PCMCIA modem not recognized as a terminal device under 2.2.x kernels

[2.] I am running Debian Linux (tracking the potato release) on a NEC Versa LX
laptop. My modem card is a Megahertz XJEM3336 ethernet/modem combo.
Since I need APM on the laptop, I compile my own kernels, although
they are very conventional -- support for PCMCIA, PPP, and APM are
the major changes from the precompiled Debian kernels.
Under any of the recent 2.0.3x kernels, my PCMCIA modem is properly
identified and used. Under the 2.2.x (starting with 2.2.0-pre6),
however, the card is properly recognized, but /dev/ttyS1 is
not recognized as a terminal device. Examples of failures are
trying to run ppp (configured with /dev/ttyS1 or with a /dev/modem
soft link set up by the kernel at boot time) or trying to
"set line /dev/modem" in kermit. The error message from pppd
is
Mar 28 23:04:14 cmell pppd[508]: pppd 2.3.6 started by root, uid 0
Mar 28 23:04:15 cmell pppd[508]: tcgetattr: Input/output error(5)
Mar 28 23:04:16 cmell pppd[508]: Exit.
while the error message generated by kermit in response to
set line /dev/modem
is
/dev/modem is not a terminal device
Sorry, can't open connection: /dev/modem

[3.] Keywords (i.e., modules, networking, kernel):
kernel, PCMCIA modem, terminal device

[4.] Kernel version (from /proc/version):
Linux version 2.2.5 (root@cmell) (gcc version egcs-2.91.63 19990224
(egcs-1.1.2 pre-release-3)) #2 Mon Mar 29 14:05:06 MST 1999

[5.] Output of Oops.. message (if applicable) with symbolic information
resolved (see Documentation/oops-tracing.txt)
no oops message

[6.] A small shell script or example program which triggers the
problem (if possible)
pon (starting pppd), or running kermit or minicom and attempting
to configure the modem

[7.] Environment

[7.1.]
-- Versions installed: (if some fields are empty or looks
-- unusual then possibly you have very old versions)
Linux cmell 2.2.5 #2 Mon Mar 29 14:05:06 MST 1999 i686 unknown
Kernel modules 2.1.121
Gnu C egcs-2.91.63
Binutils 2.9.1.0.22
Linux C Library 2.1.1
Dynamic linker ldd (GNU libc) 2.1.1
Procps 2.0.0
Mount 2.9i
Net-tools (1999-01-31)
Kbd 0.96
Sh-utils 1.16
Modules Loaded serial_cs smc91c92_cs ds i82365 pcmcia_core

PCMCIA services version 3.0.9, with modules recompiled for the installed
2.2.5 kernel.

PPP services version 2.3.6.

[7.2.] Processor information (from /proc/cpuinfo):
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 5
model name : Pentium II (Deschutes)
stepping : 2
cpu MHz : 233.293963
cache size : 512 KB
fdiv_bug : no
hlt_bug : no
sep_bug : no
f00f_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 2
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 sep mtrr pge mca cmov pat p
se36 mmx osfxsr
bogomips : 232.65

[7.3.] Module information (from /proc/modules):
serial_cs 3760 0 (unused)
smc91c92_cs 9520 1
ds 5740 2 [serial_cs smc91c92_cs]
i82365 22308 2
pcmcia_core 40072 0 [serial_cs smc91c92_cs ds i82365]

[7.4.] SCSI information (from /proc/scsi/scsi)
no SCSI device

[7.5.] Other information that might be relevant to the problem
(please look in /proc and include all information that you
think to be relevant):
>>>
/dev/modem is installed by the kernel at boot time as a soft link to /dev/ttyS1

>>>
/var/run/stab:
Socket 0: empty
Socket 1: Megahertz CC/XJEM3336 Ethernet/Modem
1 network smc91c92_cs 0 eth0
1 serial serial_cs 0 ttyS1 4 65

>>>
output of cardctl ident:
Socket 0:
no product info available
Socket 1:
product info: "MEGAHERTZ", "CC/XJEM3336", "DATA/FAX/CELL ETHERNET MODEM"
manfid: 0x0102, 0x0006
function: 2 (serial)

>>>
The full .config file for kernel building:
#
# Automatically generated make config: don't edit
#

#
# Code maturity level options
#
CONFIG_EXPERIMENTAL=y

#
# Processor type and features
#
# CONFIG_M386 is not set
# CONFIG_M486 is not set
# CONFIG_M586 is not set
# CONFIG_M586TSC is not set
CONFIG_M686=y
CONFIG_X86_WP_WORKS_OK=y
CONFIG_X86_INVLPG=y
CONFIG_X86_BSWAP=y
CONFIG_X86_POPAD_OK=y
CONFIG_X86_TSC=y
CONFIG_X86_GOOD_APIC=y
# CONFIG_MATH_EMULATION is not set
CONFIG_MTRR=y
# CONFIG_SMP is not set

#
# Loadable module support
#
CONFIG_MODULES=y
CONFIG_MODVERSIONS=y
CONFIG_KMOD=y

#
# General setup
#
CONFIG_NET=y
CONFIG_PCI=y
# CONFIG_PCI_GOBIOS is not set
# CONFIG_PCI_GODIRECT is not set
CONFIG_PCI_GOANY=y
CONFIG_PCI_BIOS=y
CONFIG_PCI_DIRECT=y
CONFIG_PCI_QUIRKS=y
CONFIG_PCI_OPTIMIZE=y
CONFIG_PCI_OLD_PROC=y
# CONFIG_MCA is not set
# CONFIG_VISWS is not set
CONFIG_SYSVIPC=y
# CONFIG_BSD_PROCESS_ACCT is not set
CONFIG_SYSCTL=y
CONFIG_BINFMT_AOUT=y
CONFIG_BINFMT_ELF=y
CONFIG_BINFMT_MISC=y
# CONFIG_BINFMT_JAVA is not set
# CONFIG_PARPORT is not set
CONFIG_APM=y
# CONFIG_APM_IGNORE_USER_SUSPEND is not set
CONFIG_APM_DO_ENABLE=y
CONFIG_APM_CPU_IDLE=y
CONFIG_APM_DISPLAY_BLANK=y
CONFIG_APM_POWER_OFF=y
CONFIG_APM_IGNORE_MULTIPLE_SUSPEND=y
CONFIG_APM_IGNORE_SUSPEND_BOUNCE=y
CONFIG_APM_RTC_IS_GMT=y
# CONFIG_APM_ALLOW_INTS is not set

#
# Plug and Play support
#
# CONFIG_PNP is not set

#
# Block devices
#
CONFIG_BLK_DEV_FD=y
CONFIG_BLK_DEV_IDE=y

#
# Please see Documentation/ide.txt for help/info on IDE drives
#
# CONFIG_BLK_DEV_HD_IDE is not set
CONFIG_BLK_DEV_IDEDISK=y
CONFIG_BLK_DEV_IDECD=y
# CONFIG_BLK_DEV_IDETAPE is not set
# CONFIG_BLK_DEV_IDEFLOPPY is not set
# CONFIG_BLK_DEV_IDESCSI is not set
CONFIG_BLK_DEV_CMD640=y
# CONFIG_BLK_DEV_CMD640_ENHANCED is not set
CONFIG_BLK_DEV_RZ1000=y
CONFIG_BLK_DEV_IDEPCI=y
CONFIG_BLK_DEV_IDEDMA=y
# CONFIG_BLK_DEV_OFFBOARD is not set
CONFIG_IDEDMA_AUTO=y
# CONFIG_BLK_DEV_OPTI621 is not set
# CONFIG_BLK_DEV_TRM290 is not set
# CONFIG_BLK_DEV_NS87415 is not set
# CONFIG_BLK_DEV_VIA82C586 is not set
# CONFIG_BLK_DEV_CMD646 is not set
# CONFIG_IDE_CHIPSETS is not set

#
# Additional Block Devices
#
# CONFIG_BLK_DEV_LOOP is not set
# CONFIG_BLK_DEV_NBD is not set
# CONFIG_BLK_DEV_MD is not set
# CONFIG_BLK_DEV_RAM is not set
# CONFIG_BLK_DEV_XD is not set
CONFIG_PARIDE_PARPORT=y
# CONFIG_PARIDE is not set
# CONFIG_BLK_DEV_HD is not set

#
# Networking options
#
CONFIG_PACKET=y
# CONFIG_NETLINK is not set
# CONFIG_FIREWALL is not set
# CONFIG_FILTER is not set
CONFIG_UNIX=y
CONFIG_INET=y
# CONFIG_IP_MULTICAST is not set
# CONFIG_IP_ADVANCED_ROUTER is not set
# CONFIG_IP_PNP is not set
# CONFIG_IP_ROUTER is not set
# CONFIG_NET_IPIP is not set
# CONFIG_NET_IPGRE is not set
# CONFIG_IP_ALIAS is not set
# CONFIG_SYN_COOKIES is not set

#
# (it is safe to leave these untouched)
#
# CONFIG_INET_RARP is not set
CONFIG_SKB_LARGE=y
# CONFIG_IPV6 is not set

#
#
#
# CONFIG_IPX is not set
# CONFIG_ATALK is not set
# CONFIG_X25 is not set
# CONFIG_LAPB is not set
# CONFIG_BRIDGE is not set
# CONFIG_LLC is not set
# CONFIG_ECONET is not set
# CONFIG_WAN_ROUTER is not set
# CONFIG_NET_FASTROUTE is not set
# CONFIG_NET_HW_FLOWCONTROL is not set
# CONFIG_CPU_IS_SLOW is not set

#
# QoS and/or fair queueing
#
# CONFIG_NET_SCHED is not set

#
# SCSI support
#
# CONFIG_SCSI is not set
# CONFIG_SCSI_G_NCR5380_PORT is not set
# CONFIG_SCSI_G_NCR5380_MEM is not set

#
# Network device support
#
CONFIG_NETDEVICES=y
# CONFIG_ARCNET is not set
CONFIG_DUMMY=m
# CONFIG_EQUALIZER is not set
# CONFIG_NET_ETHERNET is not set
# CONFIG_FDDI is not set
# CONFIG_HIPPI is not set
# CONFIG_DLCI is not set
CONFIG_PPP=y

#
# CCP compressors for PPP are only built as modules.
#
# CONFIG_SLIP is not set
# CONFIG_NET_RADIO is not set
# CONFIG_TR is not set
# CONFIG_SHAPER is not set
# CONFIG_HOSTESS_SV11 is not set
# CONFIG_COSA is not set
# CONFIG_RCPCI is not set

#
# Amateur Radio support
#
# CONFIG_HAMRADIO is not set

#
# IrDA subsystem support
#
# CONFIG_IRDA is not set

#
# ISDN subsystem
#
# CONFIG_ISDN is not set

#
# Old CD-ROM drivers (not SCSI, not IDE)
#
# CONFIG_CD_NO_IDESCSI is not set

#
# Character devices
#
CONFIG_VT=y
CONFIG_VT_CONSOLE=y
CONFIG_SERIAL=y
# CONFIG_SERIAL_CONSOLE is not set
# CONFIG_SERIAL_EXTENDED is not set
# CONFIG_SERIAL_NONSTANDARD is not set
# CONFIG_UNIX98_PTYS is not set
CONFIG_MOUSE=y

#
# Mice
#
# CONFIG_ATIXL_BUSMOUSE is not set
# CONFIG_BUSMOUSE is not set
# CONFIG_MS_BUSMOUSE is not set
CONFIG_PSMOUSE=y
# CONFIG_82C710_MOUSE is not set
# CONFIG_PC110_PAD is not set
# CONFIG_QIC02_TAPE is not set
# CONFIG_WATCHDOG is not set
# CONFIG_NVRAM is not set
CONFIG_RTC=y

#
# Video For Linux
#
# CONFIG_VIDEO_DEV is not set

#
# Joystick support
#
# CONFIG_JOYSTICK is not set
# CONFIG_DTLK is not set

#
# Ftape, the floppy tape device driver
#
# CONFIG_FTAPE is not set
# CONFIG_FT_NORMAL_DEBUG is not set
# CONFIG_FT_FULL_DEBUG is not set
# CONFIG_FT_NO_TRACE is not set
# CONFIG_FT_NO_TRACE_AT_ALL is not set
# CONFIG_FT_STD_FDC is not set
# CONFIG_FT_MACH2 is not set
# CONFIG_FT_PROBE_FC10 is not set
# CONFIG_FT_ALT_FDC is not set

#
# Filesystems
#
# CONFIG_QUOTA is not set
CONFIG_AUTOFS_FS=y
# CONFIG_ADFS_FS is not set
# CONFIG_AFFS_FS is not set
# CONFIG_HFS_FS is not set
# CONFIG_FAT_FS is not set
CONFIG_ISO9660_FS=y
# CONFIG_JOLIET is not set
CONFIG_MINIX_FS=m
# CONFIG_NTFS_FS is not set
# CONFIG_HPFS_FS is not set
CONFIG_PROC_FS=y
# CONFIG_QNX4FS_FS is not set
# CONFIG_ROMFS_FS is not set
CONFIG_EXT2_FS=y
# CONFIG_SYSV_FS is not set
# CONFIG_UFS_FS is not set

#
# Network File Systems
#
# CONFIG_CODA_FS is not set
CONFIG_NFS_FS=y
# CONFIG_NFSD is not set
CONFIG_SUNRPC=y
CONFIG_LOCKD=y
# CONFIG_SMB_FS is not set
# CONFIG_NCP_FS is not set

#
# Partition Types
#
# CONFIG_BSD_DISKLABEL is not set
# CONFIG_MAC_PARTITION is not set
# CONFIG_SMD_DISKLABEL is not set
# CONFIG_SOLARIS_X86_PARTITION is not set
# CONFIG_UNIXWARE_DISKLABEL is not set
# CONFIG_NLS is not set

#
# Console drivers
#
CONFIG_VGA_CONSOLE=y
# CONFIG_VIDEO_SELECT is not set
# CONFIG_MDA_CONSOLE is not set
# CONFIG_FB is not set

#
# Sound
#
# CONFIG_SOUND is not set

#
# Kernel hacking
#
# CONFIG_MAGIC_SYSRQ is not set

>>>
The full syslog from a reboot:

Mar 30 16:21:55 cmell syslogd 1.3-3#31: restart.
Mar 30 16:21:55 cmell kernel: klogd 1.3-3#31, log source = /proc/kmsg started.
Mar 30 16:21:55 cmell kernel: Inspecting /boot/System.map-2.2.5
Mar 30 16:21:55 cmell kernel: Loaded 6003 symbols from /boot/System.map-2.2.5.
Mar 30 16:21:55 cmell kernel: Symbols match kernel version 2.2.5.
Mar 30 16:21:55 cmell kernel: No module symbols loaded.
Mar 30 16:21:55 cmell kernel: Linux version 2.2.5 (root@cmell) (gcc version egcs-2.91.63 19990224 (egcs-1.1.2 pre-release-3)) #2 Mon Mar 29 14:05:06 MST 1999
Mar 30 16:21:55 cmell kernel: Detected 233293963 Hz processor.
Mar 30 16:21:55 cmell kernel: Console: colour VGA+ 80x25
Mar 30 16:21:55 cmell kernel: Calibrating delay loop... 232.65 BogoMIPS
Mar 30 16:21:55 cmell kernel: Memory: 128280k/131072k available (852k kernel code, 412k reserved, 1492k data, 36k init)
Mar 30 16:21:55 cmell kernel: CPU: Intel Pentium II (Deschutes) stepping 02
Mar 30 16:21:55 cmell kernel: Checking 386/387 coupling... OK, FPU using exception 16 error reporting.
Mar 30 16:21:55 cmell kernel: Checking 'hlt' instruction... OK.
Mar 30 16:21:55 cmell kernel: POSIX conformance testing by UNIFIX
Mar 30 16:21:55 cmell kernel: mtrr: v1.26 (19981001) Richard Gooch (rgooch@atnf.csiro.au)
Mar 30 16:21:55 cmell kernel: PCI: PCI BIOS revision 2.10 entry at 0xfdba1
Mar 30 16:21:55 cmell kernel: PCI: Using configuration type 1
Mar 30 16:21:55 cmell kernel: PCI: Probing PCI hardware
Mar 30 16:21:55 cmell kernel: PCI: Enabling I/O for device 00:3a
Mar 30 16:21:55 cmell kernel: Linux NET4.0 for Linux 2.2
Mar 30 16:21:55 cmell kernel: Based upon Swansea University Computer Society NET3.039
Mar 30 16:21:55 cmell kernel: NET4: Unix domain sockets 1.0 for Linux NET4.0.
Mar 30 16:21:55 cmell kernel: NET4: Linux TCP/IP 1.0 for NET4.0
Mar 30 16:21:55 cmell kernel: IP Protocols: ICMP, UDP, TCP
Mar 30 16:21:55 cmell kernel: Starting kswapd v 1.5
Mar 30 16:21:55 cmell kernel: Detected PS/2 Mouse Port.
Mar 30 16:21:55 cmell kernel: Serial driver version 4.27 with no serial options enabled
Mar 30 16:21:55 cmell kernel: ttyS00 at 0x03f8 (irq = 4) is a 16550A
Mar 30 16:21:55 cmell kernel: apm: BIOS version 1.2 Flags 0x03 (Driver version 1.9)
Mar 30 16:21:55 cmell kernel: Real Time Clock Driver v1.09
Mar 30 16:21:55 cmell kernel: PIIX4: IDE controller on PCI bus 00 dev 39
Mar 30 16:21:55 cmell kernel: PIIX4: not 100% native mode: will probe irqs later
Mar 30 16:21:55 cmell kernel: ide0: BM-DMA at 0xffa0-0xffa7, BIOS settings: hda:DMA, hdb:pio
Mar 30 16:21:55 cmell kernel: ide1: BM-DMA at 0xffa8-0xffaf, BIOS settings: hdc:pio, hdd:pio
Mar 30 16:21:55 cmell kernel: hda: HITACHI_DK237A-32, ATA DISK drive
Mar 30 16:21:55 cmell kernel: ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
Mar 30 16:21:55 cmell kernel: hda: HITACHI_DK237A-32, 3102MB w/512kB Cache, CHS=788/128/63, UDMA
Mar 30 16:21:55 cmell kernel: Floppy drive(s): fd0 is 1.44M
Mar 30 16:21:55 cmell kernel: FDC 0 is a National Semiconductor PC87306
Mar 30 16:21:55 cmell kernel: PPP: version 2.3.3 (demand dialling)
Mar 30 16:21:55 cmell kernel: TCP compression code copyright 1989 Regents of the University of California
Mar 30 16:21:55 cmell kernel: PPP line discipline registered.
Mar 30 16:21:55 cmell kernel: Partition check:
Mar 30 16:21:55 cmell kernel: hda: hda1 hda2 hda3 hda4
Mar 30 16:21:55 cmell kernel: VFS: Mounted root (ext2 filesystem) readonly.
Mar 30 16:21:55 cmell kernel: Freeing unused kernel memory: 36k freed
Mar 30 16:21:55 cmell kernel: Adding Swap: 130748k swap-space (priority -1)
Mar 30 16:21:55 cmell kernel: Linux PCMCIA Card Services 3.0.9
Mar 30 16:21:55 cmell kernel: kernel build: 2.2.5 #2 Mon Mar 29 14:05:06 MST 1999
Mar 30 16:21:55 cmell kernel: options: [pci] [cardbus] [apm]
Mar 30 16:21:55 cmell kernel: Intel PCIC probe:
Mar 30 16:21:55 cmell kernel: Ricoh RL5C478 PCI-to-CardBus at bus 0 slot 3, mem 0x68000000, 2 sockets
Mar 30 16:21:55 cmell kernel: host opts [0]: [serial irq] [io 3/6/1] [mem 3/6/1] [no pci irq] [lat 168/176] [bus 32/34]
Mar 30 16:21:55 cmell kernel: host opts [1]: [serial irq] [io 3/6/1] [mem 3/6/1] [no pci irq] [lat 168/176] [bus 35/37]
Mar 30 16:21:55 cmell kernel: ISA irqs (default) = 3,4,7,9,11,12,15 polling interval = 1000 ms
Mar 30 16:21:55 cmell cardmgr[120]: starting, version is 3.0.9
Mar 30 16:21:56 cmell cardmgr[120]: watching 2 sockets
Mar 30 16:21:56 cmell kernel: cs: IO port probe 0x1000-0x17ff: clean.
Mar 30 16:21:56 cmell kernel: cs: IO port probe 0x0100-0x04ff: excluding 0x170-0x177 0x370-0x377 0x398-0x39f 0x400-0x44f 0x4d0-0x4d7
Mar 30 16:21:56 cmell kernel: cs: IO port probe 0x0a00-0x0aff: clean.
Mar 30 16:21:56 cmell cardmgr[120]: initializing socket 1
Mar 30 16:21:56 cmell kernel: cs: memory probe 0xa0000000-0xa0ffffff: clean.
Mar 30 16:21:56 cmell cardmgr[120]: socket 1: Megahertz CC/XJEM3336 Ethernet/Modem
Mar 30 16:21:56 cmell cardmgr[120]: executing: 'insmod /lib/modules/2.2.5/pcmcia/smc91c92_cs.o'
Mar 30 16:21:56 cmell cardmgr[120]: executing: 'insmod /lib/modules/2.2.5/pcmcia/serial_cs.o'
Mar 30 16:21:56 cmell kernel: eth0: smc91c94: port 0x300, irq 3, 10baseT port, hw_addr 00:00:86:13:68:6B
Mar 30 16:21:56 cmell kernel: tty01 at 0x02f8 (irq = 3) is a 16550A
Mar 30 16:21:56 cmell cardmgr[120]: executing: './network start eth0'
Mar 30 16:21:56 cmell modprobe: can't locate module net-pf-19
Mar 30 16:21:56 cmell last message repeated 2 times
Mar 30 16:21:57 cmell modprobe: can't locate module char-major-116
Mar 30 16:21:57 cmell last message repeated 2 times
Mar 30 16:21:57 cmell cardmgr[120]: executing: './serial start ttyS1'
Mar 30 16:21:57 cmell modprobe: can't locate module char-major-116
Mar 30 16:21:57 cmell last message repeated 4 times
Mar 30 16:21:57 cmell anacron[166]: Anacron 2.0.1 started on 1999-03-30
Mar 30 16:21:57 cmell apmd[169]: Version 3.0beta4 (APM BIOS 1.2, Linux driver 1.9)
Mar 30 16:21:57 cmell apmd[169]: On-line: * * * (100% unknown)
Mar 30 16:21:57 cmell anacron[166]: Normal exit (0 jobs run)
Mar 30 16:21:59 cmell sshd[188]: log: Server listening on port 22.
Mar 30 16:21:59 cmell sshd[188]: log: Generating 768 bit RSA key.
Mar 30 16:22:00 cmell sshd[188]: log: RSA key generation complete.
Mar 30 16:22:00 cmell /usr/sbin/cron[223]: (CRON) STARTUP (fork ok)
Mar 30 16:23:00 cmell /USR/SBIN/CRON[272]: (mail) CMD ( if [ -x /usr/sbin/exim ]; then /usr/sbin/exim -q >/dev/null 2>&1; fi)
Mar 30 16:38:00 cmell /USR/SBIN/CRON[352]: (mail) CMD ( if [ -x /usr/sbin/exim ]; then /usr/sbin/exim -q >/dev/null 2>&1; fi)
Mar 30 16:40:00 cmell /USR/SBIN/CRON[371]: (root) CMD (test -f /proc/modules && /sbin/rmmod -a)

[X.] Other notes, patches, fixes, workarounds:
Because the problem does not occur with 2.0.33/4/6 kernels and because
my PCMCIA services work fine under both (the var/run/stab and /proc/modules
indicate the appropriate response and the ethernet link runs fine),
I suspect that the problem lies with the kernel or its interaction with
the PCMCIA services software -- but I am no expert!

-- 
 Bernard M.E. Moret	     moret@cs.unm.edu       http://www.cs.unm.edu/~moret
 (505) 277-5699 (office)    (505) 277-6927 (FAX)     (505) 277-3112 (department)
 Department of Computer Science, University of New Mexico, Albuquerque, NM 87131

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/