|
@@ -667,27 +667,28 @@ Making the driver recognize the device
|
|
|
Since the driver does not declare any device GUID's, it will not get
|
|
Since the driver does not declare any device GUID's, it will not get
|
|
|
loaded automatically and will not automatically bind to any devices, you
|
|
loaded automatically and will not automatically bind to any devices, you
|
|
|
must load it and allocate id to the driver yourself. For example, to use
|
|
must load it and allocate id to the driver yourself. For example, to use
|
|
|
-the network device GUID::
|
|
|
|
|
|
|
+the network device class GUID::
|
|
|
|
|
|
|
|
modprobe uio_hv_generic
|
|
modprobe uio_hv_generic
|
|
|
echo "f8615163-df3e-46c5-913f-f2d2f965ed0e" > /sys/bus/vmbus/drivers/uio_hv_generic/new_id
|
|
echo "f8615163-df3e-46c5-913f-f2d2f965ed0e" > /sys/bus/vmbus/drivers/uio_hv_generic/new_id
|
|
|
|
|
|
|
|
If there already is a hardware specific kernel driver for the device,
|
|
If there already is a hardware specific kernel driver for the device,
|
|
|
the generic driver still won't bind to it, in this case if you want to
|
|
the generic driver still won't bind to it, in this case if you want to
|
|
|
-use the generic driver (why would you?) you'll have to manually unbind
|
|
|
|
|
-the hardware specific driver and bind the generic driver, like this::
|
|
|
|
|
|
|
+use the generic driver for a userspace library you'll have to manually unbind
|
|
|
|
|
+the hardware specific driver and bind the generic driver, using the device specific GUID
|
|
|
|
|
+like this::
|
|
|
|
|
|
|
|
- echo -n vmbus-ed963694-e847-4b2a-85af-bc9cfc11d6f3 > /sys/bus/vmbus/drivers/hv_netvsc/unbind
|
|
|
|
|
- echo -n vmbus-ed963694-e847-4b2a-85af-bc9cfc11d6f3 > /sys/bus/vmbus/drivers/uio_hv_generic/bind
|
|
|
|
|
|
|
+ echo -n ed963694-e847-4b2a-85af-bc9cfc11d6f3 > /sys/bus/vmbus/drivers/hv_netvsc/unbind
|
|
|
|
|
+ echo -n ed963694-e847-4b2a-85af-bc9cfc11d6f3 > /sys/bus/vmbus/drivers/uio_hv_generic/bind
|
|
|
|
|
|
|
|
You can verify that the device has been bound to the driver by looking
|
|
You can verify that the device has been bound to the driver by looking
|
|
|
for it in sysfs, for example like the following::
|
|
for it in sysfs, for example like the following::
|
|
|
|
|
|
|
|
- ls -l /sys/bus/vmbus/devices/vmbus-ed963694-e847-4b2a-85af-bc9cfc11d6f3/driver
|
|
|
|
|
|
|
+ ls -l /sys/bus/vmbus/devices/ed963694-e847-4b2a-85af-bc9cfc11d6f3/driver
|
|
|
|
|
|
|
|
Which if successful should print::
|
|
Which if successful should print::
|
|
|
|
|
|
|
|
- .../vmbus-ed963694-e847-4b2a-85af-bc9cfc11d6f3/driver -> ../../../bus/vmbus/drivers/uio_hv_generic
|
|
|
|
|
|
|
+ .../ed963694-e847-4b2a-85af-bc9cfc11d6f3/driver -> ../../../bus/vmbus/drivers/uio_hv_generic
|
|
|
|
|
|
|
|
Things to know about uio_hv_generic
|
|
Things to know about uio_hv_generic
|
|
|
-----------------------------------
|
|
-----------------------------------
|