Remove ehci_hcd

redhat at buglecreek.com redhat at buglecreek.com
Wed Jul 13 20:17:38 UTC 2011


On Wed, 13 Jul 2011 10:59 -0700, "Rick Stevens" <ricks at nerd.com> wrote:
> On 07/12/2011 01:59 PM, redhat at buglecreek.com wrote:
> > On Tue, 12 Jul 2011 13:04 -0700, "Rick Stevens" <ricks at nerd.com> wrote:
> >> On 07/12/2011 11:40 AM, redhat at buglecreek.com wrote:
> >>> I would like to prevent ehci_hcd from loading at boot.  Doing a modprobe
> >>> -r will remove the module, but it re-appers when rebooted.  I could put
> >>> the command in rc.local, but I would rather not.  I have tried the
> >>> following things, but it always gets loaded at boot:
> >>>
> >>> Added "blacklist ehci_hcd" /etc/modprobe.d/blacklist
> >>> Tried "alias ehci_hcd off" to modprobe.conf
> >>> Tried "inistall ehci_hcd /bin/true" to modprobe.conf
> >>> I'm seems to be  getting loaded with the initrd.img file. I see the
> >>> module directories  when I mount the image to loop.  I tried creating a
> >>> new initrd.img, but I havn't been able get the ehci_hcd module to not
> >>> show up in the newly created initrd.
> >>
> >> It would help if we knew what version of the OS you're running.
> >> Assuming something like RHEL 5.6, then you should remove what you did
> >> before.  Next you should add "blacklist ehci_hcd" to the end of the
> >> /etc/modprobe.d/blacklist" file.  Then remove the module from the
> >> running system via:
> >>
> >> 	# modprobe -r ehci_hcd
> >>
> >> Finally, you need to rebuild the initrd image.  This is usually done by:
> >>
> >> 	# cd /boot
> >> 	# mkinitrd -fv initrd-`uname">initrd-`uname -r`.img `uname -r`
> >>
> >> Reboot and that should do it.
> > 
> > Sorry, meant to give RH version of 5.6.  I had done the steps you
> > outlined above and the initrd created still loads the ehci module. 
> > Removing the module and then doing a lsmod comfirms that it is unloaded.
> >  Created the initrd again using the verbose switch as you suggested and
> > I see:
> > 
> > Looking for deps of module ehci-hcd">ehci-hcd
> > Using modules:
> > /lib/modules/2.6.18-238.12.1.el5/kernel/drivers/usb/host/ehci-hcd">ehci-hcd.ko
> > (among others)
> > copy from
> > `/lib/modules/2.6.18-238.12.1.el5/kernel/drivers/usb/host/ehci-hcd">ehci-hcd.ko'
> > [elf32-i386] to `/tmp/initrd.wb7347/lib/ehci-hcd">ehci-hcd.ko' [elf32-i386]
> > Adding module ehci-hcd">ehci-hcd
> > 
> > I did a strace as well, but I can seem to see why it continues to load
> > the module in the new initrd.  I even tried using "blacklist ehci-hcd">ehci-hcd"
> > (instead of blacklist ehci_hcd)  in all the /etc/modprobe.d/ blacklist
> > files and no change.
> 
> You're correct, the actual name of the driver is "ehci-hcd">ehci-hcd.ko".  It
> wouldn't hurt to have both "ehci_hcd" and "ehci-hcd">ehci-hcd" in blacklist.  My
> guess is that there is another driver that requires ehci_hcd and THAT'S
> what's causing it to be loaded.  I don't know if blacklist is consulted
> in that case.
> 
> While the module's loaded, do a "lsmod" and look to see if there's
> anything in the "Used by" column for ehci_hcd.  Note that it can also
> be loaded by things such as hidden drivers (pata_generic loading libata
> even though pata_generic isn't actually being used) or UIs such as
> Gnome (for adaptive technologies and the like).  These can be difficult
> to sort out.
> 
> When I start thinking about this, unless the module is causing issues or
> you're really tight on memory there's really no reason to try to get
> rid of it.  It's not that big (30K or so) and it won't hurt anything
> having it in the kernel.
> ----------------------------------------------------------------------
> - Rick Stevens, Systems Engineer, C2 Hosting          ricks at nerd.com -
> - AIM/Skype: therps2        ICQ: 22643734            Yahoo: origrps2 -
> -                                                                    -
> - If you're not part of the solution, you're part of the precipitate -
> ----------------------------------------------------------------------
> 
Normally I wouldn't worry about unloading the module, but in this case
it's logging a lot of errors on this particular server.   We don't need
it, so until we figure out if we have a hardware issue we just unloaded
it.

"Used by" column is 0, so it seems that nothing is using it, unless as
you said something hidden is causing it.  Looking at the strace output
it appears that the blacklist is consulted:

read(3, "ehci\n">blacklist-compat\nblacklist-ehci\n"..., 128) = 85

I have the blacklist statements in /etc/modpobe.d/blacklist-ehci.  I
also tried putting them in blacklist.conf as well.  Very strange that
mkinitrd insists on loading the module in the new initrd image (see
above for mkinitrd output).  As a long shot (grasping) I thought maybe
it was module dependency issue.  So I moved ehci-hcd ran depmod and
re-ran mkinitrd, same results.  I'll continue to look at this, If I find
anything out I post.




More information about the Redhat-install-list mailing list