Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 27 Apr 1999 01:09:19 +0900 (JST)
From:      kaz@maczuka.gcd.org
To:        FreeBSD-gnats-submit@freebsd.org
Subject:   conf/11336: Broken data sent to printer through device ppc0 
Message-ID:  <199904261609.BAA00801@ph.maczuka.gcd.org>

next in thread | raw e-mail | index | archive | help

>Number:         11336
>Category:       conf
>Synopsis:       Broken data sent to printer through device ppc0
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Mon Apr 26 09:20:00 PDT 1999
>Closed-Date:
>Last-Modified:
>Originator:     Ito Kazumitsu
>Release:        FreeBSD 3.1-RELEASE i386
>Organization:
The Ito's Family
>Environment:

  The output of dmesg follows:
    -------------------------------------------
  Copyright (c) 1992-1999 FreeBSD Inc.
  Copyright (c) 1982, 1986, 1989, 1991, 1993
  	The Regents of the University of California. All rights reserved.
  FreeBSD 3.1-RELEASE #0: Mon Apr 26 23:03:38 JST 1999
      kaz@ph.maczuka.gcd.org:/usr/src/sys/compile/MACZUKA_NET_NOUWD
  Timecounter "i8254"  frequency 1193182 Hz
  Timecounter "TSC"  frequency 199904927 Hz
  CPU: Pentium/P54C (199.90-MHz 586-class CPU)
    Origin = "GenuineIntel"  Id = 0x52c  Stepping=12
    Features=0x1bf<FPU,VME,DE,PSE,TSC,MSR,MCE,CX8>
  real memory  = 33554432 (32768K bytes)
  avail memory = 30699520 (29980K bytes)
  Probing for devices on PCI bus 0:
  chip0: <Intel 82439> rev 0x03 on pci0.0.0
  chip1: <Intel 82371SB PCI to ISA bridge> rev 0x01 on pci0.7.0
  vga0: <Matrox MGA 2064W graphics accelerator> rev 0x01 int a irq 10 on pci0.11.0
  ncr0: <ncr 53c810a fast10 scsi> rev 0x12 int a irq 11 on pci0.12.0
  Probing for devices on the ISA bus:
  sc0 on isa
  sc0: VGA color <16 virtual consoles, flags=0x0>
  ed0 at 0x300-0x31f irq 5 on isa
  ed0: address 00:00:e8:23:fb:11, type NE2000 (16 bit) 
  atkbdc0 at 0x60-0x6f on motherboard
  atkbd0 irq 1 on isa
  sio0 at 0x3f8-0x3ff irq 4 flags 0x10 on isa
  sio0: type 16550A
  sio1 at 0x2f8-0x2ff irq 3 on isa
  sio1: type 16550A
  fdc0 at 0x3f0-0x3f7 irq 6 drq 2 on isa
  fdc0: FIFO enabled, 8 bytes threshold
  fd0: 1.44MB 3.5in
  ppc0 at 0x378 irq 7 on isa
  ppc0: W83877F chipset (NIBBLE-only) in COMPATIBLE mode
  nlpt0: <generic printer> on ppbus 0
  nlpt0: Interrupt-driven port
  vga0 at 0x3b0-0x3df maddr 0xa0000 msize 131072 on isa
  npx0 on motherboard
  npx0: INT 16 interface
  Intel Pentium detected, installing workaround for F00F bug
  Waiting 15 seconds for SCSI devices to settle
  changing root device to da0s1a
  da1 at ncr0 bus 0 target 5 lun 0
  da1: <IOMEGA ZIP 100 D.13> Removable Direct Access SCSI-2 device 
  da1: 3.300MB/s transfers
  da1: Attempt to query device size failed: NOT READY, Medium not present
  da0 at ncr0 bus 0 target 0 lun 0
  da0: <IBM DORS-32160 WA6A> Fixed Direct Access SCSI-2 device 
  da0: 10.0MB/s transfers (10.0MHz, offset 8), Tagged Queueing Enabled
  da0: 2063MB (4226725 512 byte sectors: 255H 63S/T 263C)
    --------------------------------------------------------
  
  The diff of GENERIC and the problematic kernel follows.
  (The almost all differences are the deletion of unwanted
   parameters.)
  
  17,18c17,18
  < cpu		"I386_CPU"
  < cpu		"I486_CPU"
  ---
  > #cpu		"I386_CPU"
  > #cpu		"I486_CPU"
  20,21c20,21
  < cpu		"I686_CPU"
  < ident		GENERIC
  ---
  > #cpu		"I686_CPU"
  > ident		MACZUKA
  24c24,25
  < options		MATH_EMULATE		#Support for x87 emulation
  ---
  > #options		MATH_EMULATE		#Support for x87 emulation
  > options		GPL_MATH_EMULATE		#Support for x87 emulation
  30,31c31,32
  < options		NFS			#Network Filesystem
  < options		NFS_ROOT		#NFS usable as root device, "NFS" req'ed
  ---
  > #options		NFS			#Network Filesystem
  > #options		NFS_ROOT		#NFS usable as root device, "NFS" req'ed
  43c44,45
  < config		kernel	root on wd0
  ---
  > #config		kernel	root on wd0
  > config		kernel	root on da0
  60c62
  < disk		fd1	at fdc0 drive 1
  ---
  > #disk		fd1	at fdc0 drive 1
  62,74c64,76
  < options		"CMD640"	# work around CMD640 chip deficiency
  < controller	wdc0	at isa? port "IO_WD1" bio irq 14
  < disk		wd0	at wdc0 drive 0
  < disk		wd1	at wdc0 drive 1
  < 
  < controller	wdc1	at isa? port "IO_WD2" bio irq 15
  < disk		wd2	at wdc1 drive 0
  < disk		wd3	at wdc1 drive 1
  < 
  < options		ATAPI		#Enable ATAPI support for IDE bus
  < options		ATAPI_STATIC	#Don't do it as an LKM
  < device		acd0		#IDE CD-ROM
  < device		wfd0		#IDE Floppy (e.g. LS-120)
  ---
  > #options		"CMD640"	# work around CMD640 chip deficiency
  > #controller	wdc0	at isa? port "IO_WD1" bio irq 14
  > #disk		wd0	at wdc0 drive 0
  > #disk		wd1	at wdc0 drive 1
  > #
  > #controller	wdc1	at isa? port "IO_WD2" bio irq 15
  > #disk		wd2	at wdc1 drive 0
  > #disk		wd3	at wdc1 drive 1
  > #
  > #options		ATAPI		#Enable ATAPI support for IDE bus
  > #options		ATAPI_STATIC	#Don't do it as an LKM
  > #device		acd0		#IDE CD-ROM
  > #device		wfd0		#IDE Floppy (e.g. LS-120)
  79,81c81,83
  < controller	ahb0
  < controller	ahc0
  < controller	isp0
  ---
  > #controller	ahb0
  > #controller	ahc0
  > #controller	isp0
  86c88
  < controller      dpt0
  ---
  > #controller      dpt0
  88,91c90,93
  < controller	adv0	at isa? port ? cam irq ?
  < controller	adw0
  < controller	bt0	at isa? port ? cam irq ?
  < controller	aha0	at isa? port ? cam irq ?
  ---
  > #controller	adv0	at isa? port ? cam irq ?
  > #controller	adw0
  > #controller	bt0	at isa? port ? cam irq ?
  > #controller	aha0	at isa? port ? cam irq ?
  98c100
  < device		sa0
  ---
  > #device		sa0
  100c102
  < device		pass0
  ---
  > #device		pass0
  102c104
  < device		cd0	#Only need one of these, the code dynamically grows
  ---
  > #device		cd0	#Only need one of these, the code dynamically grows
  104,105c106,107
  < device		wt0	at isa? port 0x300 bio irq 5 drq 1
  < device		mcd0	at isa? port 0x300 bio irq 10
  ---
  > #device		wt0	at isa? port 0x300 bio irq 5 drq 1
  > #device		mcd0	at isa? port 0x300 bio irq 10
  107c109
  < controller	matcd0	at isa? port 0x230 bio
  ---
  > #controller	matcd0	at isa? port 0x230 bio
  109c111
  < device		scd0	at isa? port 0x230 bio
  ---
  > #device		scd0	at isa? port 0x230 bio
  114c116
  < device		psm0	at isa? tty irq 12
  ---
  > #device		psm0	at isa? tty irq 12
  135c137
  < device		apm0    at isa?	disable	flags 0x31 # Advanced Power Management
  ---
  > #device		apm0    at isa?	disable	flags 0x31 # Advanced Power Management
  144,145c146,147
  < device		sio2	at isa? disable port "IO_COM3" tty irq 5
  < device		sio3	at isa? disable port "IO_COM4" tty irq 9
  ---
  > #device		sio2	at isa? disable port "IO_COM3" tty irq 5
  > #device		sio3	at isa? disable port "IO_COM4" tty irq 9
  148a151
  > #controller	ppc0	at isa? port? tty irq 7
  151,152c154,155
  < device		plip0	at ppbus?
  < device		ppi0	at ppbus?
  ---
  > #device		plip0	at ppbus?
  > #device		ppi0	at ppbus?
  153a157,158
  > # lpt: printer port (deprecated, use ppbus instead)
  > #device		lpt0	at isa? port? tty irq 7
  159,181c164,187
  < device ax0
  < device de0
  < device fxp0
  < device mx0
  < device pn0
  < device rl0
  < device tl0
  < device tx0
  < device vr0
  < device vx0
  < device wb0
  < device xl0
  < 
  < device ed0 at isa? port 0x280 net irq 10 iomem 0xd8000
  < device ie0 at isa? port 0x300 net irq 10 iomem 0xd0000
  < device ep0 at isa? port 0x300 net irq 10
  < device ex0 at isa? port? net irq?
  < device fe0 at isa? port 0x300 net irq ?
  < device le0 at isa? port 0x300 net irq 5 iomem 0xd0000
  < device lnc0 at isa? port 0x280 net irq 10 drq 0
  < device ze0 at isa? port 0x300 net irq 10 iomem 0xd8000
  < device zp0 at isa? port 0x300 net irq 10 iomem 0xd8000
  < device cs0 at isa? port 0x300 net irq ?
  ---
  > #device ax0
  > #device de0
  > #device fxp0
  > #device mx0
  > #device pn0
  > #device rl0
  > #device tl0
  > #device tx0
  > #device vr0
  > #device vx0
  > #device wb0
  > #device xl0
  > #
  > #device ed0 at isa? port 0x280 net irq 10 iomem 0xd8000
  > device ed0 at isa? port 0x300 net irq 5 iomem 0xd8000
  > #device ie0 at isa? port 0x300 net irq 10 iomem 0xd0000
  > #device ep0 at isa? port 0x300 net irq 10
  > #device ex0 at isa? port? net irq?
  > #device fe0 at isa? port 0x300 net irq ?
  > #device le0 at isa? port 0x300 net irq 5 iomem 0xd0000
  > #device lnc0 at isa? port 0x280 net irq 10 drq 0
  > #device ze0 at isa? port 0x300 net irq 10 iomem 0xd8000
  > #device zp0 at isa? port 0x300 net irq 10 iomem 0xd8000
  > #device cs0 at isa? port 0x300 net irq ?
  185,187c191,193
  < pseudo-device	sl	1
  < pseudo-device	ppp	1
  < pseudo-device	tun	1
  ---
  > #pseudo-device	sl	1
  > #pseudo-device	ppp	1
  > #pseudo-device	tun	1
  194c200
  < options		KTRACE		#kernel tracing
  ---
  > #options		KTRACE		#kernel tracing
 
>Description:

	I use an old printer Canon BJ-10v connected to the
        parallel port.  When this printer is used with the
        problematic kernel, it sometimes prints unexpected
        dot patterns here and there. The places of broken
        parts change every time I print even though the printed
        data are the same.

>How-To-Repeat:

	The trouble always occurs with the said kernel and
        the old printer Canon BJ-10v.

>Fix:
	Changing the configuration file as shown below and
        rebuilding the kernel, I could make the printer
        work normally. The important point is to change
        the line
            device ppc0    at isa? port? net irq 7
        to
            controller  ppc0    at isa? port? tty irq 7
        as `man ppc' says.  I wish the latter line were
        included in GENERIC.

        Using deprecated lp0 instead of nlpt0 also works.

   The diff of GENERIC and the problem-free kernel follows
   -------
  17,18c17,18
  < cpu		"I386_CPU"
  < cpu		"I486_CPU"
  ---
  > #cpu		"I386_CPU"
  > #cpu		"I486_CPU"
  20,21c20,21
  < cpu		"I686_CPU"
  < ident		GENERIC
  ---
  > #cpu		"I686_CPU"
  > ident		MACZUKA
  24c24,25
  < options		MATH_EMULATE		#Support for x87 emulation
  ---
  > #options		MATH_EMULATE		#Support for x87 emulation
  > options		GPL_MATH_EMULATE		#Support for x87 emulation
  30,31c31,32
  < options		NFS			#Network Filesystem
  < options		NFS_ROOT		#NFS usable as root device, "NFS" req'ed
  ---
  > #options		NFS			#Network Filesystem
  > #options		NFS_ROOT		#NFS usable as root device, "NFS" req'ed
  43c44,45
  < config		kernel	root on wd0
  ---
  > #config		kernel	root on wd0
  > config		kernel	root on da0
  60c62
  < disk		fd1	at fdc0 drive 1
  ---
  > #disk		fd1	at fdc0 drive 1
  62,74c64,76
  < options		"CMD640"	# work around CMD640 chip deficiency
  < controller	wdc0	at isa? port "IO_WD1" bio irq 14
  < disk		wd0	at wdc0 drive 0
  < disk		wd1	at wdc0 drive 1
  < 
  < controller	wdc1	at isa? port "IO_WD2" bio irq 15
  < disk		wd2	at wdc1 drive 0
  < disk		wd3	at wdc1 drive 1
  < 
  < options		ATAPI		#Enable ATAPI support for IDE bus
  < options		ATAPI_STATIC	#Don't do it as an LKM
  < device		acd0		#IDE CD-ROM
  < device		wfd0		#IDE Floppy (e.g. LS-120)
  ---
  > #options		"CMD640"	# work around CMD640 chip deficiency
  > #controller	wdc0	at isa? port "IO_WD1" bio irq 14
  > #disk		wd0	at wdc0 drive 0
  > #disk		wd1	at wdc0 drive 1
  > #
  > #controller	wdc1	at isa? port "IO_WD2" bio irq 15
  > #disk		wd2	at wdc1 drive 0
  > #disk		wd3	at wdc1 drive 1
  > #
  > #options		ATAPI		#Enable ATAPI support for IDE bus
  > #options		ATAPI_STATIC	#Don't do it as an LKM
  > #device		acd0		#IDE CD-ROM
  > #device		wfd0		#IDE Floppy (e.g. LS-120)
  79,81c81,83
  < controller	ahb0
  < controller	ahc0
  < controller	isp0
  ---
  > #controller	ahb0
  > #controller	ahc0
  > #controller	isp0
  86c88
  < controller      dpt0
  ---
  > #controller      dpt0
  88,91c90,93
  < controller	adv0	at isa? port ? cam irq ?
  < controller	adw0
  < controller	bt0	at isa? port ? cam irq ?
  < controller	aha0	at isa? port ? cam irq ?
  ---
  > #controller	adv0	at isa? port ? cam irq ?
  > #controller	adw0
  > #controller	bt0	at isa? port ? cam irq ?
  > #controller	aha0	at isa? port ? cam irq ?
  98c100
  < device		sa0
  ---
  > #device		sa0
  100c102
  < device		pass0
  ---
  > #device		pass0
  102c104
  < device		cd0	#Only need one of these, the code dynamically grows
  ---
  > #device		cd0	#Only need one of these, the code dynamically grows
  104,105c106,107
  < device		wt0	at isa? port 0x300 bio irq 5 drq 1
  < device		mcd0	at isa? port 0x300 bio irq 10
  ---
  > #device		wt0	at isa? port 0x300 bio irq 5 drq 1
  > #device		mcd0	at isa? port 0x300 bio irq 10
  107c109
  < controller	matcd0	at isa? port 0x230 bio
  ---
  > #controller	matcd0	at isa? port 0x230 bio
  109c111
  < device		scd0	at isa? port 0x230 bio
  ---
  > #device		scd0	at isa? port 0x230 bio
  114c116
  < device		psm0	at isa? tty irq 12
  ---
  > #device		psm0	at isa? tty irq 12
  135c137
  < device		apm0    at isa?	disable	flags 0x31 # Advanced Power Management
  ---
  > #device		apm0    at isa?	disable	flags 0x31 # Advanced Power Management
  144,145c146,147
  < device		sio2	at isa? disable port "IO_COM3" tty irq 5
  < device		sio3	at isa? disable port "IO_COM4" tty irq 9
  ---
  > #device		sio2	at isa? disable port "IO_COM3" tty irq 5
  > #device		sio3	at isa? disable port "IO_COM4" tty irq 9
  148c150,151
  < device		ppc0	at isa? port? net irq 7
  ---
  > #device		ppc0	at isa? port? net irq 7
  > controller	ppc0	at isa? port? tty irq 7
  153a157,158
  > # lpt: printer port (deprecated, use ppbus instead)
  > #device		lpt0	at isa? port? tty irq 7
  159,181c164,187
  < device ax0
  < device de0
  < device fxp0
  < device mx0
  < device pn0
  < device rl0
  < device tl0
  < device tx0
  < device vr0
  < device vx0
  < device wb0
  < device xl0
  < 
  < device ed0 at isa? port 0x280 net irq 10 iomem 0xd8000
  < device ie0 at isa? port 0x300 net irq 10 iomem 0xd0000
  < device ep0 at isa? port 0x300 net irq 10
  < device ex0 at isa? port? net irq?
  < device fe0 at isa? port 0x300 net irq ?
  < device le0 at isa? port 0x300 net irq 5 iomem 0xd0000
  < device lnc0 at isa? port 0x280 net irq 10 drq 0
  < device ze0 at isa? port 0x300 net irq 10 iomem 0xd8000
  < device zp0 at isa? port 0x300 net irq 10 iomem 0xd8000
  < device cs0 at isa? port 0x300 net irq ?
  ---
  > #device ax0
  > #device de0
  > #device fxp0
  > #device mx0
  > #device pn0
  > #device rl0
  > #device tl0
  > #device tx0
  > #device vr0
  > #device vx0
  > #device wb0
  > #device xl0
  > #
  > #device ed0 at isa? port 0x280 net irq 10 iomem 0xd8000
  > device ed0 at isa? port 0x300 net irq 5 iomem 0xd8000
  > #device ie0 at isa? port 0x300 net irq 10 iomem 0xd0000
  > #device ep0 at isa? port 0x300 net irq 10
  > #device ex0 at isa? port? net irq?
  > #device fe0 at isa? port 0x300 net irq ?
  > #device le0 at isa? port 0x300 net irq 5 iomem 0xd0000
  > #device lnc0 at isa? port 0x280 net irq 10 drq 0
  > #device ze0 at isa? port 0x300 net irq 10 iomem 0xd8000
  > #device zp0 at isa? port 0x300 net irq 10 iomem 0xd8000
  > #device cs0 at isa? port 0x300 net irq ?
  185,187c191,193
  < pseudo-device	sl	1
  < pseudo-device	ppp	1
  < pseudo-device	tun	1
  ---
  > #pseudo-device	sl	1
  > #pseudo-device	ppp	1
  > #pseudo-device	tun	1
  194c200
  < options		KTRACE		#kernel tracing
  ---
  > #options		KTRACE		#kernel tracing

>Release-Note:
>Audit-Trail:
>Unformatted:


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199904261609.BAA00801>