* usb & udev
@ 2007-08-20 6:06 Alemao
2007-08-20 10:30 ` Kay Sievers
0 siblings, 1 reply; 2+ messages in thread
From: Alemao @ 2007-08-20 6:06 UTC (permalink / raw)
To: linux-kernel
Hi all,
When I plug my board with the FT232R chip from FTDI (USB to serial) a
module named usbserial.ko and ftdi_sio.ko is inserted automatically.
I saw in udev rules that this is the line responsible for doing that:
# Load drivers that match kernel-supplied alias
ENV{MODALIAS}=="?*", RUN+="/sbin/modprobe -Q $env{MODALIAS}"
What I want to know is who send this for udev? usbcore module?
The variable $env{MODALIAS} is something like this:
usb:v0403p6001d0600dc00dsc00dp00icFFiscFFipFF
v0403 is the vendor ID, p6001 is the product ID, but the others? I
didnt find anything about this in modprobe or udev docs....
Thanks,
--
Alemao
^ permalink raw reply [flat|nested] 2+ messages in thread* Re: usb & udev
2007-08-20 6:06 usb & udev Alemao
@ 2007-08-20 10:30 ` Kay Sievers
0 siblings, 0 replies; 2+ messages in thread
From: Kay Sievers @ 2007-08-20 10:30 UTC (permalink / raw)
To: Alemao; +Cc: linux-kernel
On 8/20/07, Alemao <xcarandiru@gmail.com> wrote:
> When I plug my board with the FT232R chip from FTDI (USB to serial) a
> module named usbserial.ko and ftdi_sio.ko is inserted automatically.
>
> I saw in udev rules that this is the line responsible for doing that:
>
> # Load drivers that match kernel-supplied alias
> ENV{MODALIAS}=="?*", RUN+="/sbin/modprobe -Q $env{MODALIAS}"
>
> What I want to know is who send this for udev? usbcore module?
The driver core. In this case it's the USB core, which enumerates the
devices on the USB bus. When the USB core discovers a new device, it
requests a new object from the driver core, which sends the event.
> The variable $env{MODALIAS} is something like this:
>
> usb:v0403p6001d0600dc00dsc00dp00icFFiscFFipFF
>
> v0403 is the vendor ID, p6001 is the product ID, but the others? I
> didnt find anything about this in modprobe or udev docs....
MODALIAS strings are specific to every subsystem. They start with
"<subsystem>:" and append all sorts of values depending on the
individual properties of the subsystem.
For USB these are the values of:
idVendor, idProduct, bcdDevice, bDeviceClass, bDeviceSubClass,
bDeviceProtocol, bInterfaceClass, bInterfaceSubClass, bInterfaceProtocol.
They are not defined outside the kernel, they are just used for
wildcard matches with MODULE_ALIAS() strings in the modules itself:
$ modinfo ftdi_sio.ko
...
alias: usb:v15BAp0003d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0403pEE18d*dc*dsc*dp*ic*isc*ip*
...
The called modprobe matches the kernel supplied MODALIAS with the
entries contained in the module itself, and loads all matching
modules.
Kay
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2007-08-20 10:30 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-08-20 6:06 usb & udev Alemao
2007-08-20 10:30 ` Kay Sievers
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®