Subject: kern/11873: wskbd doesn't work if it's not the console
To: None <gnats-bugs@gnats.netbsd.org>
From: None <fvdl@vaasje.org>
List: netbsd-bugs
Date: 01/02/2001 06:38:18
>Number:         11873
>Category:       kern
>Synopsis:       wskbd doesn't work if it's not the console
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    kern-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Tue Jan 02 06:38:00 PST 2001
>Closed-Date:
>Last-Modified:
>Originator:     Frank van der Linden
>Release:        -current december 29th, 2000
>Organization:
serial debuggers, inc
>Environment:
	
System: NetBSD sushi 1.5P NetBSD 1.5P (VMWARE) #1: Tue Jan 2 15:23:04 MET 2001 fvdl@sushi:/work/trees/current/sys/arch/i386/compile/VMWARE i386


>Description:
	When wskbd is not the console keyboard, it doesn't work, i.e.
	no input gets through.
>How-To-Repeat:
	I have a kernel config file aimed at reproducing a problem while
	running X, but having a serial console, to be able to use DDB.
	Its config file is appended below. wsdisplay, kbd, and how they
	are attached seem to be probed correctly, but any getty process
	running on /dev/ttyE* does not receive any keyboard input.

include "arch/i386/conf/std.i386"

#ident 		"GENERIC-$Revision: 1.354.2.5 $"

maxusers	32		# estimated number of users

# CPU support.  At least one is REQUIRED.
options 	I686_CPU

# CPU-related options.
#options 	VM86		# virtual 8086 emulation
options 	USER_LDT	# user-settable LDT; used by WINE
# eliminate delay no-ops in I/O; recommended on all but very old machines
options 	DUMMY_NOPS

options 	UCONSOLE	# users can use TIOCCONS (for xconsole)
options 	INSECURE	# disable kernel security levels

options 	"CONSDEVNAME=\"com\"",CONADDR=0x3f8,CONSPEED=9600
options 	CONS_OVERRIDE

options 	RTC_OFFSET=-60	# hardware clock is this many mins. west of GMT
options 	NTP		# NTP phase/frequency locked loop

options 	KTRACE		# system call tracing via ktrace(1)

options 	SYSVMSG		# System V-like message queues
options 	SYSVSEM		# System V-like semaphores
options 	SYSVSHM		# System V-like memory sharing
#options 	SHMMAXPGS=1024	# 1024 pages is the default

options 	LKM		# loadable kernel modules

# Diagnostic/debugging support options
options 	DIAGNOSTIC	# cheap kernel consistency checks
options 	KMEMSTATS	# kernel memory statistics (vmstat -m)
options 	DDB		# in-kernel debugger
options 	DDB_HISTORY_SIZE=512	# enable history editing in DDB
makeoptions	DEBUG="-g"	# compile full symbol table

# Compatibility options
options 	COMPAT_NOMID	# compatibility with 386BSD, BSDI, NetBSD 0.8,
options 	COMPAT_14	# NetBSD 1.4,
options 	COMPAT_43	# and 4.3BSD

options 	COMPAT_SVR4	# binary compatibility with SVR4
options 	COMPAT_LINUX	# binary compatibility with Linux
options 	COMPAT_FREEBSD	# binary compatibility with FreeBSD

# File systems
file-system 	FFS		# UFS
file-system 	EXT2FS		# second extended file system (linux)
file-system 	LFS		# log-structured file system
file-system 	MFS		# memory file system
file-system 	NFS		# Network File System client
file-system 	NTFS		# Windows/NT file system (experimental)
file-system 	CD9660		# ISO 9660 + Rock Ridge file system
file-system 	MSDOSFS		# MS-DOS file system
file-system 	FDESC		# /dev/fd
file-system 	KERNFS		# /kern
file-system 	NULLFS		# loopback file system
file-system 	OVERLAY		# overlay file system
file-system 	PORTAL		# portal filesystem (still experimental)
file-system 	PROCFS		# /proc

# File system options
options 	QUOTA		# UFS quotas
#options 	FFS_EI		# FFS Endian Independent support
options 	SOFTDEP         # FFS soft updates support.
options 	NFSSERVER	# Network File System server
#options 	EXT2FS_SYSTEM_FLAGS # makes ext2fs file flags (append and
				# immutable) behave as system flags.

# Networking options
#options 	GATEWAY		# packet forwarding
options 	INET		# IP + ICMP + TCP + UDP
options 	INET6		# IPV6
options 	IPSEC		# IP security
options 	IPSEC_ESP	# IP security (encryption part; define w/IPSEC)
options 	PFIL_HOOKS	# pfil(9) packet filter hooks
options 	IPFILTER_LOG	# ipmon(8) log support

options 	NMBCLUSTERS=2048

# These options enable verbose messages for several subsystems.
# Warning, these may compile large string tables into the kernel!
options 	MIIVERBOSE	# verbose PHY autoconfig messages
options 	PCIVERBOSE	# verbose PCI device autoconfig messages
options 	SCSIVERBOSE	# human readable SCSI error messages
options 	USBVERBOSE	# verbose USB device autoconfig messages

#
# wscons options
#
# builtin terminal emulations
options 	WSEMUL_VT100		# VT100 / VT220 emulation
# different kernel output - see dev/wscons/wsdisplayvar.h
options 	WS_KERNEL_FG=WSCOL_GREEN
#options 	WS_KERNEL_BG=WSCOL_BLACK
# compatibility to other console drivers
options 	WSDISPLAY_COMPAT_PCVT		# emulate some ioctls
options 	WSDISPLAY_COMPAT_SYSCONS	# emulate some ioctls
options 	WSDISPLAY_COMPAT_USL		# VT handling
options 	WSDISPLAY_COMPAT_RAWKBD		# can get raw scancodes

# Kernel root file system and dump configuration.
config		netbsd	root on ? type ?

#
# Device configuration
#

mainbus0 at root

apm0	at mainbus0			# Advanced power management

# Basic Bus Support

# PCI bus support
pci*	at mainbus? bus ?
pci*	at pchb? bus ?
pci* 	at ppb? bus ?

# PCI bridges
pchb*	at pci? dev ? function ?	# PCI-Host bridges
pcib*	at pci? dev ? function ?	# PCI-ISA bridges
ppb* 	at pci? dev ? function ?

# ISA bus support
isa*	at mainbus?
isa*	at pcib?

# ISA Plug-and-Play bus support
isapnp0	at isa?

# Math Coprocessor support
npx0	at isa? port 0xf0 irq 13	# x86 math coprocessor

# Console Devices

# wscons
pckbc0		at isa?			# pc keyboard controller
pckbd*		at pckbc?		# PC keyboard
# "opms" should not be enabled together with "pms" or "pmsi"
pms*		at pckbc?		# PS/2 mouse for wsmouse
pmsi*		at pckbc?		# PS/2 "Intelli"mouse for wsmouse
vga0		at isa?
vga*		at pci? dev ? function ?
pcdisplay0	at isa?			# CGA, MDA, EGA, HGA
wsdisplay*	at vga? console ?
wsdisplay*	at pcdisplay? console ?
wskbd* 		at pckbd? console ?
wsmouse*	at pms? mux 0
wsmouse*	at pmsi? mux 0

pcppi0		at isa?
sysbeep0	at pcppi?

# Serial Devices

com0	at isa? port 0x3f8 irq 4	# Standard PC serial ports
com1	at isa? port 0x2f8 irq 3

# Parallel Printer Interfaces

# ISA parallel printer interfaces
lpt0	at isa? port 0x378 irq 7	# standard PC parallel ports
lpt1	at isa? port 0x278
lpt2	at isa? port 0x3bc

# VIA VT82C686A hardware monitor
viapm*	at pci? dev ? function ?
viaenv* at viapm?

# SCSI Controllers and Devices

# PCI SCSI controllers
#ahc* 	at pci? dev ? function ?
#ncr*	at pci? dev ? function ?	# NCR 53c8xx SCSI (old driver)
siop*	at pci? dev ? function ?	# Symbios 53c8xx SCSI

# SCSI bus support
scsibus* at siop?

# SCSI devices
sd*	at scsibus? target ? lun ?	# SCSI disk drives
st*	at scsibus? target ? lun ?	# SCSI tape drives
cd*	at scsibus? target ? lun ?	# SCSI CD-ROM drives
ch*	at scsibus? target ? lun ?	# SCSI autochangers
ses*	at scsibus? target ? lun ?	# SCSI Enclosure Services devices
ss*	at scsibus? target ? lun ?	# SCSI scanners
uk*	at scsibus? target ? lun ?	# SCSI unknown

# IDE and related devices
# PCI IDE controllers - see pciide(4) for supported hardware.
# The 0x0001 flag force the driver to use DMA, even if the driver doesn't know
# how to set up DMA modes for this chip. This may work, or may cause
# a machine hang with some controllers.
pciide* at pci? dev ? function ? flags 0x0000

# IDE drives
# Flags are used only with controllers that support DMA operations
# and mode settings (e.g. some pciide controllers)
# The lowest order four bits (rightmost digit) of the flags define the PIO
# mode to use, the next set of four bits the DMA mode and the third set the
# UltraDMA mode. For each set of four bits, the 3 lower bits define the mode
# to use, and the last bit must be 1 for this setting to be used.
# For DMA and UDMA, 0xf (1111) means 'disable'.
# 0x0fac means 'use PIO mode 4, DMA mode 2, disable UltraDMA'.
# (0xc=1100, 0xa=1010, 0xf=1111)
# 0x0000 means "use whatever the drive claims to support".
wd*	at pciide? channel ? drive ? flags 0x0000

# ATAPI bus support
atapibus* at pciide? channel ?

# ATAPI devices
# flags have the same meaning as for IDE drives.
cd*	at atapibus? drive ? flags 0x0000	# ATAPI CD-ROM drives
sd*	at atapibus? drive ? flags 0x0000	# ATAPI disk drives
uk*	at atapibus? drive ? flags 0x0000	# ATAPI unknown


# Miscellaneous mass storage devices

# ISA floppy
fdc0	at isa? port 0x3f0 irq 6 drq 2	# standard PC floppy controllers
#fdc1	at isa? port 0x370 irq ? drq ?
fd*	at fdc? drive ?			# the drives themselves
# some machines need you to do this instead of fd*
#fd0	at fdc0 drive 0

# Network Interfaces

# PCI network interfaces
ex*	at pci? dev ? function ?	# 3Com 90x[B]

# MII/PHY support
exphy*	at mii? phy ?			# 3Com internal PHYs
nsphy*	at mii? phy ?			# NS83840 PHYs
ukphy*	at mii? phy ?			# generic unknown PHYs

# USB Controller and Devices

# PCI USB controllers
ohci*	at pci?	dev ? function ?	# Open Host Controller
uhci*	at pci?	dev ? function ?	# Universal Host Controller (Intel)

# CardBus USB controllers
#ohci*	at cardbus? dev ? function ?	# Open Host Controller

# USB bus support
usb*	at ohci?
usb*	at uhci?

# USB Hubs
uhub*	at usb?
uhub*	at uhub? port ? configuration ? interface ?

# USB Mice
ums*	at uhub? port ? configuration ? interface ?
wsmouse*	at ums? mux 0

# USB Keyboards
ukbd*	at uhub? port ? configuration ? interface ?
wskbd*	at ukbd? console ? mux 1

# USB Generic HID devices
uhid*	at uhub? port ? configuration ? interface ?

# USB Printer
ulpt*	at uhub? port ? configuration ? interface ?

# USB Modem
umodem*	at uhub? port ? configuration ?
ucom*	at umodem?

# USB Mass Storage
umass*	at uhub? port ? configuration ? interface ?
atapibus* at umass? channel ?
scsibus* at umass? channel ?

# USB audio
uaudio*	at uhub? port ? configuration ?

# USB Ethernet adapters
aue*	at uhub? port ?		# ADMtek AN986 Pegasus based adapters
cue*	at uhub? port ?		# CATC USB-EL1201A based adapters
kue*	at uhub? port ?		# Kawasaki LSI KL5KUSB101B based adapters

# Prolofic PL2301/PL2302 host-to-host adapter
upl*	at uhub? port ?

# Serial adapters
# FTDI FT8U100AX serial adapter
#uftdi*	at uhub? port ?
#ucom*	at uftdi? portno ?

# Diamond Multimedia Rio 500
urio*	at uhub? port ?

# USB Handspring Visor
uvisor*	at uhub? port ?
ucom*	at uvisor?

# USB Generic driver
ugen*	at uhub? port ?

# Audio Devices

# PCI audio devices
auvia*	at pci? dev ? function ?	# VIA VT82C686A integrated AC'97 Audio

# Audio support
audio*	at auvia?

# Pull in optional local configuration
include	"arch/i386/conf/GENERIC.local"


# Pseudo-Devices

# disk/mass storage pseudo-devices
#pseudo-device	raid		4	# RAIDframe disk driver
#options 	RAID_AUTOCONFIG		# auto-configuration of RAID components
pseudo-device	vnd		4	# disk-like interface to files

# network pseudo-devices
pseudo-device	bpfilter	8	# Berkeley packet filter
pseudo-device	ipfilter		# IP filter (firewall) and NAT
pseudo-device	loop			# network loopback
pseudo-device	tun		2	# network tunneling over tty
pseudo-device	gre		2	# generic L3 over IP tunnel
pseudo-device	ipip		2	# IP Encapsulation within IP (RFC 2003)
pseudo-device	gif		4	# IPv[46] over IPv[46] tunnel (RFC1933)
#pseudo-device	faith		1	# IPv[46] tcp relay translation i/f
#pseudo-device	stf		1	# 6to4 IPv6 over IPv4 encapsulation

# miscellaneous pseudo-devices
pseudo-device	pty		64	# pseudo-terminals
pseudo-device	sequencer	1	# MIDI sequencer
# rnd works; RND_COM does not on port i386 yet.
pseudo-device	rnd			# /dev/random and in-kernel generator
#options 	RND_COM			# use "com" randomness as well (BROKEN)

# mouse & keyboard multiplexor pseudo-devices
pseudo-device	wsmux		2

>Fix:
	Dunno, haven't looked into it further.
>Release-Note:
>Audit-Trail:
>Unformatted: