Linux - KernelThis forum is for all discussion relating to the Linux kernel.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
I have an issue, where a kernel driver module I'm working on is calling an ACPI method. This method is accessing IPMI operation region, which will fail if the driver for the IPMI controller isn't loaded yet... so, during boot, my module gets loaded, and it fails, and almost immediately afterward the IPMI driver is loaded. If I then unload and reload my driver, it will work.
But my driver does not DEPEND on IPMI... it just happens to depend on it in this system, because the ACPI method I'm running uses an IPMI Op Region (though it likely does not do so on some systems). So my driver could work just fine on other systems that don't even have IPMI. The ACPI method I'm running is a _DSM that's under a PCI device in an ?SDT ACPI table, FWIW.
Is there any way to make this just work right, without having to add special udev rules or scripts just for this system? I'm not sure what the right solution would be.
The modprobe.d man page suggests this, which could be what you need:
Quote:
install modulename command...
This is the most powerful primitive: it tells modprobe to run your command instead of inserting the module in the kernel as normal. The command can be any shell command: this allows you to do any kind of complex processing you might wish. For example, if the module "fred" works better with the module "barney" already installed (but it doesn't depend on it, so modprobe won't automatically load it), you could say "install fred /sbin/modprobe barney; /sbin/modprobe --ignore-install fred", which would do what you wanted. Note the --ignore-install, which stops the second modprobe from running the same install command again.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.