[opensuse-kernel] Forcing usage of specific driver
[My apologies in advance in case this mailing list isn't the right one to ask for $subject] Hi all, Is there a way to force the usage of a specific driver on a given device? Consider the following cenario: I've a wireless network that works with both ath5k and ath9k drivers, but I want to use ath5k instead of ath9k or vice- versa. I've considered creating an udev rule but for what I've understood I can't set DRIVER because it's a matching string only, and there is no other way that I'm aware of, to do it. Blacklisting one of the modules would do the trick only if I knew all the compatible modules to that hardware which I may not know. Cenario: - Compatible drivers to a given hardware: 'driver1' (highest priority), (drivers-name-unknown), 'driver3' (lowest priority) - I want to use 'driver3' Thanks! -- Regards, Carlos Gonçalves -- To unsubscribe, e-mail: opensuse-kernel+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-kernel+help@opensuse.org
On Thu, Nov 04, 2010 at 11:19:44AM +0000, Carlos Gon?alves wrote:
[My apologies in advance in case this mailing list isn't the right one to ask for $subject]
Hi all,
Is there a way to force the usage of a specific driver on a given device? Consider the following cenario: I've a wireless network that works with both ath5k and ath9k drivers, but I want to use ath5k instead of ath9k or vice- versa.
No you don't, that physically just can not work as the two drivers work for two different hardware platforms. They can not work for the other driver's type of hardware at all, sorry. Drivers do know what type of hardware they support, please trust them :) Now, if you just want to add a new device id for a driver for hardware that you are pretty sure will work properly with that driver, you can use sysfs to write a new device id to the driver so it can accept the device, but I don't think that's what you want to do here. Hope this helps, greg k-h -- To unsubscribe, e-mail: opensuse-kernel+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-kernel+help@opensuse.org
Am Donnerstag, 4. November 2010, 12:19:44 schrieb Carlos Gonçalves:
[My apologies in advance in case this mailing list isn't the right one to ask for $subject]
Hi all,
Is there a way to force the usage of a specific driver on a given device? Consider the following cenario: I've a wireless network that works with both ath5k and ath9k drivers, but I want to use ath5k instead of ath9k or vice- versa.
Unlikely, but let's assume it.
I've considered creating an udev rule but for what I've understood I can't set DRIVER because it's a matching string only, and there is no other way that I'm aware of, to do it.
Driver binding is done in the kernel. Udev determines which drivers are loaded from disk, but not which driver is ultimately bound to the device.
Blacklisting one of the modules would do the trick only if I knew all the compatible modules to that hardware which I may not know. Cenario:
- Compatible drivers to a given hardware: 'driver1' (highest priority), (drivers-name-unknown), 'driver3' (lowest priority) - I want to use 'driver3'
1. Load all drivers in question 2. Unbind all drivers via sysfs /sys/bus/$BUS/drivers/$DRIVER/unbind 3. Bind the desired driver /sys/bus/$BUS/drivers/$DRIVER/bind See http://lwn.net/Articles/143397/ What do you need this for? Regards Oliver -- To unsubscribe, e-mail: opensuse-kernel+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-kernel+help@opensuse.org
On Thu, Nov 4, 2010 at 1:34 PM, Oliver Neukum <oneukum@suse.de> wrote:
Am Donnerstag, 4. November 2010, 12:19:44 schrieb Carlos Gonçalves:
[My apologies in advance in case this mailing list isn't the right one to ask for $subject]
Hi all,
Is there a way to force the usage of a specific driver on a given device? Consider the following cenario: I've a wireless network that works with both ath5k and ath9k drivers, but I want to use ath5k instead of ath9k or vice- versa.
Unlikely, but let's assume it.
I've considered creating an udev rule but for what I've understood I can't set DRIVER because it's a matching string only, and there is no other way that I'm aware of, to do it.
Driver binding is done in the kernel. Udev determines which drivers are loaded from disk, but not which driver is ultimately bound to the device.
Blacklisting one of the modules would do the trick only if I knew all the compatible modules to that hardware which I may not know. Cenario:
- Compatible drivers to a given hardware: 'driver1' (highest priority), (drivers-name-unknown), 'driver3' (lowest priority) - I want to use 'driver3'
1. Load all drivers in question 2. Unbind all drivers via sysfs /sys/bus/$BUS/drivers/$DRIVER/unbind 3. Bind the desired driver /sys/bus/$BUS/drivers/$DRIVER/bind
See http://lwn.net/Articles/143397/
What do you need this for?
I'm setting up a wireless testbed platform and one of its requirement items was to provide users the chance of letting they choose the driver they want to load because their experiment's goal may be testing new device drivers they've developed. They give the driver name beforehand and the nodes' OS will ensure the specified device will be using that driver. Thanks Oliver and Greg for your quick replies. -- To unsubscribe, e-mail: opensuse-kernel+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-kernel+help@opensuse.org
participants (3)
-
Carlos Gonçalves
-
Greg KH
-
Oliver Neukum