Red Hat Bugzilla – Bug 45489
PCMCIA USB controller - works, but initscript starts in wrong order.
Last modified: 2015-01-04 17:01:18 EST
USB is started before PCMCIA in rc.sysinit. Reasonable. Unless of course
host controller (like mine) is on a PCMCIA CardBus card. Then it all blows
The CardBus card I have, based on the OPTi 82C861 PCI to USB OHCI bridge,
works if you go through the pain of manually starting all the right bits
and pieces. Kudzu recognizes it also, but of course the above bug makes
Hmm, so the normal PCMCIA stuff not only needs to load the correct USB
module (I assume it does), but also mount the USB filesystem so that
hotplugging works, yes?
CardBus PCMCIA cards are really PCI cards. All the PCMCIA driver does is
provide the bridge. The actual device shows up, and is configured as, a PCI
00:00.0 Host bridge: Intel Corporation 430MX - 82437MX MTSC [430MX PCIset -
82437MX Mobile System Controller (MTSC) and 82438MX Mobile Data Path (MT (rev
00:01.0 Bridge: Intel Corporation 430MX - 82371MX MPIIX [430MX PCIset - 82371MX
Mobile PCI I/O IDE Xcelerator (MPIIX)] (rev 03)
00:02.0 VGA compatible controller: Chips and Technologies F65550 (rev 45)
00:03.0 CardBus bridge: Texas Instruments PCI1131 (rev 01)
00:03.1 CardBus bridge: Texas Instruments PCI1131 (rev 01)
23:00.0 USB Controller: OPTi Inc. 82C861 (rev 10)
The CardBus bridge is a real PCI device. The USB contoller is a CardBus device
on a PCMCIA card. Clear?
FYI: The same problem exist on shutdown, only worse. PCMCIA & PCI services are
really quite linked when CardBus cards are present.
CardBus cards are the majority of the new released cards these days, by the way.
But I don't see how this is an initscripts issue. You obviously aren't
going to have a USB console on a cardbus USB controller; even if you
do, you can't initialize this in rc.sysinit.
1) Does the correct module load when the card is inserted?
2) Do the normal USB hotplug mechanisms work after that?
This bug still exists with RH8.0. I just installed 8.0 on my NEC Versa Vxi
while I had a USB2.0 Cardbus card plugged into the PCMCIA socket (but with
nothing plugged into it). After installation on the first boot I got failures
when the system attempted to load modules for ehci and ohci because the
PCMCIA/Cardbus system gets initialised later on in the boot sequence.
Commenting out the extra entries (but leaving uhci for the motherboard USB
ports) from /etc/modules.conf fixed the error messages. Hot plugging the USB2.0
card works - modules are loaded for the two extra controller types.
Shutting down the system is another matter - it hung (I cannot remember what
point that was at - something to do with USB I think). Next time I tried
shutting down the card maually with "cardctl eject" but this also hung the
system solidly. Let me know what other info I can provide.
A little more info. I found the shutdown/cardctl eject problem is known (see
http://www.linux-usb.org and click the "Linux and USB2.0" link to see the
If you're using a CardBus adapter with an older driver version, you may need
to manually remove the driver (with rmmod) before a CardBus eject (including
cardctl eject) or system shutdown; the CardBus shutdown doesn't shut down
drivers when it should, so that's the only "clean shutdown" solution..
Removing the ehci/ohci modules allows cardctl eject to work. For my install
everything would have been ok (apart from shutdown problems) had I not had the
card in my computer when I did the install resulting in usb-controller entries
for ohci and ehci in /etc/modules.conf.