 
Subject
Speaking of PC accessories, we recently purchased a 6 port USB 2.0 card off of Ebay for $10. The board came with two USB cables and a box that was intended to be placed in a drive bay for front-panel access to 2 of the ports; however, it works equally well if you run the cords out of the back of the CPU and put the bay on your desk. All the card says on it is USB 2.0 PCI TO USB 2.0 Card. The packaging is generic as well. It turns out that this is an model HE460A H_E brand device made in China by Shunde ZhuoHua Electronic Co Ltd. Here is a link to the product details.
We have an embedded USB controller on our motherboard from 2001. It turns out that the USB driver is different than the driver for the new card. Not a surprise, really, but kind of annoying. After installing the PCI card and rebooting, we were unable to see our Freecom USBCard. The whole idea of the expansion card was so we could plug in the Freecom card quickly and easily. What to do?
What to do? Recompile the Linux kernel, of course. We like to stick the USB stuff in the kernel, not as modules. It works better... well, Agatha thinks so... Urbana probably wouldn't do it this way... she certainly has no problem using the printer hooked up to Agatha's machine, though. Anyway, the key thing is to add these config options to the kernel:
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI=y
|
We previously just had:
Here is Agatha's .config file for 2.4.25. This works with many USB devices, including an HP 1200 Printer, a Handspring Visor, a Sony Cyber-shot model DSC-U20 camera, and the Freecom USBCard. It handles both the embedded USB controller on the motherboard, and our new controller. The kernel is 1.2 megs. A lot of stuff is embedded in the kernel. Again, Agatha *likes that*.
Here are some interesting entries from dmesg:
usb.c: registered new driver usbdevfs
usb.c: registered new driver hub
PCI: Found IRQ 9 for device 02:0b.3
PCI: Sharing IRQ 9 with 00:1f.4
ehci_hcd 02:0b.3: ALi Corporation USB 2.0 Controller
ehci_hcd 02:0b.3: irq 9, pci mem f881c000
usb.c: new USB bus registered, assigned bus number 1
PCI: cache line size of 128 is not supported by device 02:0b.3
ehci_hcd 02:0b.3: USB 2.0 enabled, EHCI 1.00, driver 2003-Dec-29/2.4
hub.c: USB hub found
hub.c: 6 ports detected
host/uhci.c: USB Universal Host Controller Interface driver v1.1
PCI: Found IRQ 9 for device 00:1f.2
PCI: Setting latency timer of device 00:1f.2 to 64
host/uhci.c: USB UHCI at I/O 0xb400, IRQ 9
usb.c: new USB bus registered, assigned bus number 2
hub.c: USB hub found
hub.c: 2 ports detected
PCI: Found IRQ 9 for device 00:1f.4
PCI: Sharing IRQ 9 with 02:0b.3
PCI: Setting latency timer of device 00:1f.4 to 64
host/uhci.c: USB UHCI at I/O 0xb000, IRQ 9
usb.c: new USB bus registered, assigned bus number 3
hub.c: USB hub found
hub.c: 2 ports detected
PCI: Found IRQ 9 for device 02:0b.0
host/usb-ohci.c: USB OHCI at membase 0xf881e000, IRQ 9
host/usb-ohci.c: usb-02:0b.0, ALi Corporation USB 1.1 Controller
usb.c: new USB bus registered, assigned bus number 4
hub.c: USB hub found
hub.c: 2 ports detected
PCI: Found IRQ 9 for device 02:0b.1
host/usb-ohci.c: USB OHCI at membase 0xf8820000, IRQ 9
host/usb-ohci.c: usb-02:0b.1, ALi Corporation USB 1.1 Controller (#2)
usb.c: new USB bus registered, assigned bus number 5
hub.c: USB hub found
hub.c: 2 ports detected
PCI: Found IRQ 9 for device 02:0b.2
PCI: Sharing IRQ 9 with 02:0a.0
host/usb-ohci.c: USB OHCI at membase 0xf8822000, IRQ 9
host/usb-ohci.c: usb-02:0b.2, ALi Corporation USB 1.1 Controller (#3)
usb.c: new USB bus registered, assigned bus number 6
hub.c: USB hub found
hub.c: 2 ports detected
usb.c: registered new driver usblp
printer.c: v0.13: USB Printer Device Class driver
usb.c: registered new driver serial
usbserial.c: USB Serial Driver core v1.4
usbserial.c: USB Serial support registered for Handspring Visor / Treo / Palm 4.0 / Clié.x
usbserial.c: USB Serial support registered for Sony Clié.5
visor.c: USB HandSpring Visor, Palm m50x, Treo, Sony Cliériver v1.7
Initializing USB Mass Storage driver...
usb.c: registered new driver usb-storage
USB Mass Storage support registered.
.
.
.
hub.c: new USB device 02:0b.3-2, assigned address 2
usb-storage: act_altsettting is 0
usb-storage: id_index calculated to be: 89
usb-storage: Array length appears to be: 91
usb-storage: USB Mass Storage device detected
usb-storage: Endpoints: In: 0xf7ca5e00 Out: 0xf7ca5e14 Int: 0x00000000 (Period 0)
usb-storage: New GUID 1963130000006b3b14000634
usb-storage: GetMaxLUN command result is 1, data is 0
usb-storage: Transport: Bulk
usb-storage: Protocol: Transparent SCSI
usb-storage: *** thread sleeping.
scsi1 : SCSI emulation for USB Mass Storage devices
usb-storage: queuecommand() called
usb-storage: *** thread awakened.
usb-storage: Command INQUIRY (6 bytes)
usb-storage: 12 00 00 00 ff 00 bd f7 ac ba be f7
usb-storage: Bulk command S 0x43425355 T 0x1 Trg 0 LUN 0 L 255 F 128 CL 6
usb-storage: Bulk command transfer result=0
usb-storage: usb_stor_transfer_partial(): xfer 255 bytes
usb-storage: usb_stor_bulk_msg() returned 0 xferred 36/255
usb-storage: Bulk data transfer result 0x1
usb-storage: Attempting to get CSW...
usb-storage: Bulk status result = 0
usb-storage: Bulk status Sig 0x53425355 T 0x1 R 0 Stat 0x0
usb-storage: Fixing INQUIRY data to show SCSI rev 2 - was 0
usb-storage: scsi cmd done, result=0x0
usb-storage: *** thread sleeping.
Vendor: Model: USB Card Rev: 1.13
Type: Direct-Access ANSI SCSI revision: 02
.
.
.
hub.c: new USB device 00:1f.2-1, assigned address 2
printer.c: usblp0: USB Bidirectional printer dev 2 if 0 alt 1
proto 2 vid 0x03F0 pid 0x0317
|
Here are the /proc/bus/usb/devices entries:
T: Bus=06 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=12 MxCh= 2
B: Alloc= 0/900 us ( 0%), #Int= 0, #Iso= 0
D: Ver= 1.10 Cls=09(hub ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1
P: Vendor=0000 ProdID=0000 Rev= 0.00
S: Product=USB OHCI Root Hub
S: SerialNumber=f8822000
C:* #Ifs= 1 Cfg#= 1 Atr=40 MxPwr= 0mA
I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub
E: Ad=81(I) Atr=03(Int.) MxPS= 2 Ivl=255ms
T: Bus=05 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=12 MxCh= 2
B: Alloc= 0/900 us ( 0%), #Int= 0, #Iso= 0
D: Ver= 1.10 Cls=09(hub ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1
P: Vendor=0000 ProdID=0000 Rev= 0.00
S: Product=USB OHCI Root Hub
S: SerialNumber=f8820000
C:* #Ifs= 1 Cfg#= 1 Atr=40 MxPwr= 0mA
I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub
E: Ad=81(I) Atr=03(Int.) MxPS= 2 Ivl=255ms
T: Bus=04 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=12 MxCh= 2
B: Alloc= 0/900 us ( 0%), #Int= 0, #Iso= 0
D: Ver= 1.10 Cls=09(hub ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1
P: Vendor=0000 ProdID=0000 Rev= 0.00
S: Product=USB OHCI Root Hub
S: SerialNumber=f881e000
C:* #Ifs= 1 Cfg#= 1 Atr=40 MxPwr= 0mA
I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub
E: Ad=81(I) Atr=03(Int.) MxPS= 2 Ivl=255ms
T: Bus=03 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=12 MxCh= 2
B: Alloc= 0/900 us ( 0%), #Int= 0, #Iso= 0
D: Ver= 1.00 Cls=09(hub ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1
P: Vendor=0000 ProdID=0000 Rev= 0.00
S: Product=USB UHCI-alt Root Hub
S: SerialNumber=b000
C:* #Ifs= 1 Cfg#= 1 Atr=40 MxPwr= 0mA
I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub
E: Ad=81(I) Atr=03(Int.) MxPS= 8 Ivl=255ms
T: Bus=02 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=12 MxCh= 2
B: Alloc= 0/900 us ( 0%), #Int= 0, #Iso= 0
D: Ver= 1.00 Cls=09(hub ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1
P: Vendor=0000 ProdID=0000 Rev= 0.00
S: Product=USB UHCI-alt Root Hub
S: SerialNumber=b400
C:* #Ifs= 1 Cfg#= 1 Atr=40 MxPwr= 0mA
I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub
E: Ad=81(I) Atr=03(Int.) MxPS= 8 Ivl=255ms
T: Bus=02 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 2 Spd=12 MxCh= 0
D: Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1
P: Vendor=03f0 ProdID=0317 Rev= 1.00
S: Manufacturer=HewLett Packard
S: Product=HP LaserJet 1200
S: SerialNumber=00CNCV116072
C:* #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr= 2mA
I: If#= 0 Alt= 0 #EPs= 3 Cls=07(print) Sub=01 Prot=03 Driver=usblp
E: Ad=01(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms
E: Ad=81(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
E: Ad=82(I) Atr=03(Int.) MxPS= 8 Ivl=255ms
I: If#= 0 Alt= 1 #EPs= 2 Cls=07(print) Sub=01 Prot=02 Driver=usblp
E: Ad=01(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms
E: Ad=81(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
I: If#= 0 Alt= 2 #EPs= 1 Cls=07(print) Sub=01 Prot=01 Driver=usblp
E: Ad=01(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms
T: Bus=02 Lev=01 Prnt=01 Port=01 Cnt=02 Dev#= 5 Spd=12 MxCh= 0
D: Ver= 1.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=16 #Cfgs= 1
P: Vendor=082d ProdID=0100 Rev= 1.00
S: Manufacturer=Handspring Inc
S: Product=Handspring Visor
C:* #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr= 2mA
I: If#= 0 Alt= 0 #EPs= 4 Cls=ff(vend.) Sub=00 Prot=00 Driver=serial
E: Ad=81(I) Atr=02(Bulk) MxPS= 16 Ivl=0ms
E: Ad=01(O) Atr=02(Bulk) MxPS= 16 Ivl=0ms
E: Ad=82(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
E: Ad=02(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms
T: Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=480 MxCh= 6
B: Alloc= 0/800 us ( 0%), #Int= 0, #Iso= 0
D: Ver= 2.00 Cls=09(hub ) Sub=00 Prot=01 MxPS= 8 #Cfgs= 1
P: Vendor=0000 ProdID=0000 Rev= 2.04
S: Manufacturer=Linux 2.4.25 ehci_hcd
S: Product=ALi Corporation USB 2.0 Controller
S: SerialNumber=02:0b.3
C:* #Ifs= 1 Cfg#= 1 Atr=40 MxPwr= 0mA
I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub
E: Ad=81(I) Atr=03(Int.) MxPS= 2 Ivl=256ms
T: Bus=01 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#= 2 Spd=480 MxCh= 0
D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
P: Vendor=1963 ProdID=1300 Rev= 0.50
S: Manufacturer=
S: Product=USB Card
S: SerialNumber=6B3B14000634
C:* #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=500mA
I: If#= 0 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
E: Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
|
| People: | |
| Places: | |
| Things: | |
| Times: | |
|
|