Remove ehci_hcd

Rick Stevens ricks at nerd.com
Wed Jul 13 17:59:05 UTC 2011


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 -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
> Using modules:
> /lib/modules/2.6.18-238.12.1.el5/kernel/drivers/usb/host/ehci-hcd.ko
> (among others)
> copy from
> `/lib/modules/2.6.18-238.12.1.el5/kernel/drivers/usb/host/ehci-hcd.ko'
> [elf32-i386] to `/tmp/initrd.wb7347/lib/ehci-hcd.ko' [elf32-i386]
> Adding module 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"
> (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.ko".  It
wouldn't hurt to have both "ehci_hcd" and "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 -
----------------------------------------------------------------------




More information about the Redhat-install-list mailing list