How to use ulpt driver?

a at zeos.net a at zeos.net
Thu Dec 7 02:53:32 PST 2006


On Thu, Dec 07, 2006 at 09:53:08AM +0000, Vince wrote:
> a at zeos.net wrote:
> > I get USB printer Canon PIXMA iP 2000 and attached it to my computer.
> > 
> > The kernel was compiled with:
> > 
> > # USB support
> > device		uhci		# UHCI PCI->USB interface
> > device		usb		# USB Bus (required)
> > device		ugen		# Generic
> > device		uhid		# "Human Interface Devices"
> > device		umass		# Disks/Mass storage - Requires scbus and da
> > 
> > and sees the printer:
> > 
> > ------------------------------------------------------------------------
> > $ dmesg
> > Copyright (c) 1992-2006 The FreeBSD Project.
> > Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
> > 	The Regents of the University of California. All rights reserved.
> > FreeBSD 6.1-RELEASE #14: Thu Dec  7 07:15:51 EET 2006
> >     root at host.my.domain:/usr/obj/usr/src/sys/MYKERNEL
> > ACPI APIC Table: <MSISYS AWRDACPI>
> > Timecounter "i8254" frequency 1193182 Hz quality 0
> > CPU: Intel(R) Pentium(R) 4 CPU 1.50GHz (1511.68-MHz 686-class CPU)
> >   Origin = "GenuineIntel"  Id = 0xf12  Stepping = 2
> >   Features=0x3febfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,DTS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM>
> > real memory  = 805240832 (767 MB)
> > avail memory = 782880768 (746 MB)
> > ioapic0 <Version 2.0> irqs 0-23 on motherboard
> > acpi0: <MSISYS MSI ACPI> on motherboard
> > acpi0: Power Button (fixed)
> > Timecounter "ACPI-fast" frequency 3579545 Hz quality 1000
> > acpi_timer0: <24-bit timer at 3.579545MHz> port 0x4008-0x400b on acpi0
> > cpu0: <ACPI CPU> on acpi0
> > acpi_throttle0: <ACPI CPU Throttling> on cpu0
> > acpi_button0: <Power Button> on acpi0
> > acpi_button1: <Sleep Button> on acpi0
> > pcib0: <ACPI Host-PCI bridge> port 0xcf8-0xcff,0x4000-0x40f7 on acpi0
> > pci0: <ACPI PCI bus> on pcib0
> > agp0: <Intel 82845 host to AGP bridge> mem 0xd8000000-0xdbffffff at device 0.0 on pci0
> > pcib1: <PCI-PCI bridge> at device 1.0 on pci0
> > pci1: <PCI bus> on pcib1
> > pci1: <display, VGA> at device 0.0 (no driver attached)
> > pcib2: <ACPI PCI-PCI bridge> at device 30.0 on pci0
> > pci2: <ACPI PCI bus> on pcib2
> > rl0: <RealTek 8139 10/100BaseTX> port 0xc000-0xc0ff mem 0xde000000-0xde0000ff irq 17 at device 1.0 on pci2
> > miibus0: <MII bus> on rl0
> > rlphy0: <RealTek internal media interface> on miibus0
> > rlphy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
> > rl0: Ethernet address: 00:02:44:92:18:75
> > pci2: <mass storage, SCSI> at device 5.0 (no driver attached)
> > isab0: <PCI-ISA bridge> at device 31.0 on pci0
> > isa0: <ISA bus> on isab0
> > atapci0: <Intel ICH2 UDMA100 controller> port 0x1f0-0x1f7,0x3f6,0x170-0x177,0x376,0xf000-0xf00f at device 31.1 on pci0
> > ata0: <ATA channel 0> on atapci0
> > ata1: <ATA channel 1> on atapci0
> > uhci0: <Intel 82801BA/BAM (ICH2) USB controller USB-A> port 0xd000-0xd01f irq 19 at device 31.2 on pci0
> > uhci0: [GIANT-LOCKED]
> > usb0: <Intel 82801BA/BAM (ICH2) USB controller USB-A> on uhci0
> > usb0: USB revision 1.0
> > uhub0: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
> > uhub0: 2 ports with 2 removable, self powered
> > pci0: <serial bus, SMBus> at device 31.3 (no driver attached)
> > uhci1: <Intel 82801BA/BAM (ICH2) USB controller USB-B> port 0xd800-0xd81f irq 23 at device 31.4 on pci0
> > uhci1: [GIANT-LOCKED]
> > usb1: <Intel 82801BA/BAM (ICH2) USB controller USB-B> on uhci1
> > usb1: USB revision 1.0
> > uhub1: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
> > uhub1: 2 ports with 2 removable, self powered
> > pcm0: <Intel ICH2 (82801BA)> port 0xdc00-0xdcff,0xe000-0xe03f irq 17 at device 31.5 on pci0
> > pcm0: <Analog Devices AD1885 AC97 Codec>
> > acpi_tz0: <Thermal Zone> on acpi0
> > fdc0: <floppy drive controller> port 0x3f0-0x3f5,0x3f7 irq 6 drq 2 on acpi0
> > fdc0: [FAST]
> > fd0: <1440-KB 3.5" drive> on fdc0 drive 0
> > atkbdc0: <Keyboard controller (i8042)> port 0x60,0x64 irq 1 on acpi0
> > atkbd0: <AT Keyboard> irq 1 on atkbdc0
> > kbd0 at atkbd0
> > atkbd0: [GIANT-LOCKED]
> > psm0: <PS/2 Mouse> irq 12 on atkbdc0
> > psm0: [GIANT-LOCKED]
> > psm0: model IntelliMouse, device ID 3
> > pmtimer0 on isa0
> > sc0: <System console> at flags 0x100 on isa0
> > sc0: VGA <16 virtual consoles, flags=0x300>
> > vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
> > ugen0: Canon iP2000, rev 1.10/1.05, addr 2
> > Timecounter "TSC" frequency 1511681224 Hz quality 800
> > Timecounters tick every 1.000 msec
> > ad0: 38204MB <SAMSUNG SV4002H QP100-12> at ata0-master UDMA100
> > acd0: CDROM <SAMSUNG CD-ROM SC-152L/C100> at ata1-master PIO4
> > Trying to mount root from ufs:/dev/ad0s1a
> > rl0: link state changed to UP
> > ------------------------------------------------------------------------
> > 
> > Now I loaded ulpt dinamically:
> > 
> > ------------------------------------------------------------------------
> > $ kldstat
> > Id Refs Address    Size     Name
> >  1   14 0xc0400000 33dc1c   kernel
> >  2    1 0xc073e000 58554    acpi.ko
> > 	.................
> > 12    1 0xc45f1000 3000     ulpt.ko
> > ------------------------------------------------------------------------
> > 
> > But no ulpt in /dev appeared:
> > 
> > ------------------------------------------------------------------------
> > $ ls /dev
> > acd0		bpsm0		kbd0		random		ttyv9
> > acpi		console		klog		sndstat		ttyva
> > ad0		consolectl	kmem		stderr		ttyvb
> > ad0s1		ctty		log		stdin		ttyvc
> > ad0s1a		devctl		mdctl		stdout		ttyvd
> > ad0s1b		devstat		mem		sysmouse	ttyve
> > ad0s1c		dsp0.0		mixer0		ttyp0		ttyvf
> > ad0s1d		dsp0.1		net		ttyv0		ugen0
> > ad0s1e		dspW0.0		net1		ttyv1		ugen0.1
> > ad0s1f		dspW0.1		net2		ttyv2		ugen0.2
> > agpgart		dspr0.1		net3		ttyv3		urandom
> > apm		fd		network		ttyv4		usb
> > ata		fd0		null		ttyv5		usb0
> > atkbd0		fido		pci		ttyv6		usb1
> > audio0.0	geom.ctl	psm0		ttyv7		xpt0
> > audio0.1	io		ptyp0		ttyv8		zero
> > ------------------------------------------------------------------------
> > 
> > What is wrong and how will I print?
> > 
> when you plug in/turn on the printer with the system booted, what
> appears in your dmesg/messages log?
> 
> I see there are some ugen entries in /dev so it might not be recognised
> by the driver correctly.
> 
> Vince
> 
> > Elisej Babenko

It is something misterious.

When I boot my computer with printer turned on and load ulpt driver
the results is like above (ugens instead of ulpt).

When I turn off the printer, the kernel reads:

ugen0: at uhub0 port 2 (addr 2) disconnected
All threads purged from ugen0.2
All threads purged from ugen0.1
All threads purged from ugen0
ugen0: detached

and ugen0, ugen0.1, and ugen0.2 disappear in /dev.

When I turn on the printer again with ulpt loaded, the kernel reads:

ulpt0: Canon iP2000, rev 1.10/1.05, addr 2, iclass 7/1
ulpt0: using bi-directional mode

And I have ulpt0 and unlpt0 desired in /dev instead of ugens now!

May be the ugen driver built in kernel prevents ulpt driver from
proper work and I should throw ugen driver out from kernel?


More information about the freebsd-questions mailing list