Further to my previous post, I ran udevmonitor and plugged in both webcams in turns.<br>For the Creative NX webcam, udev sends:<br>UEVENT[1211938254.674635] add&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /devices/pci0000:00/0000:00:1d.2/usb5/5-2 (usb)<br>UDEV&nbsp; [1211938254.679570] add&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /devices/pci0000:00/0000:00:1d.2/usb5/5-2 (usb)<br>
UEVENT[1211938254.679599] add&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /devices/pci0000:00/0000:00:1d.2/usb5/5-2/5-2:1.0 (usb)<br>UDEV&nbsp; [1211938254.693902] add&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /devices/pci0000:00/0000:00:1d.2/usb5/5-2/usb_endpoint/usbdev5.8_ep00 (usb_endpoint)<br>UDEV&nbsp; [1211938254.776316] add&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /devices/pci0000:00/0000:00:1d.2/usb5/5-2/5-2:1.0 (usb)<br>
UEVENT[1211938254.866628] add&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /devices/pci0000:00/0000:00:1d.2/usb5/5-2/5-2:1.0/usb_endpoint/usbdev5.8_ep81 (usb_endpoint)<br>UEVENT[1211938254.866660] add&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /devices/pci0000:00/0000:00:1d.2/usb5/5-2/5-2:1.0/usb_endpoint/usbdev5.8_ep82 (usb_endpoint)<br>
UEVENT[1211938254.866742] add&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /devices/pci0000:00/0000:00:1d.2/usb5/5-2/video4linux/video1 (video4linux)<br>UDEV&nbsp; [1211938254.873827] add&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /devices/pci0000:00/0000:00:1d.2/usb5/5-2/5-2:1.0/usb_endpoint/usbdev5.8_ep81 (usb_endpoint)<br>
UDEV&nbsp; [1211938254.875099] add&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /devices/pci0000:00/0000:00:1d.2/usb5/5-2/5-2:1.0/usb_endpoint/usbdev5.8_ep82 (usb_endpoint)<br>UDEV&nbsp; [1211938254.876226] add&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /devices/pci0000:00/0000:00:1d.2/usb5/5-2/video4linux/video1 (video4linux)<br>
(this is the one where a video4linux HAL object is created)<br><br>for the Logitech Quickcam:<br>UEVENT[1211938261.097625] add&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /devices/pci0000:00/0000:00:1a.0/usb1/1-1 (usb)<br>UEVENT[1211938261.098128] add&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /devices/pci0000:00/0000:00:1a.0/usb1/1-1/usb_endpoint/usbdev1.5_ep00 (usb_endpoint)<br>
UDEV&nbsp; [1211938261.099268] add&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /devices/pci0000:00/0000:00:1a.0/usb1/1-1 (usb)<br>UDEV&nbsp; [1211938261.100519] add&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /devices/pci0000:00/0000:00:1a.0/usb1/1-1/usb_endpoint/usbdev1.5_ep00 (usb_endpoint)<br>UEVENT[1211938261.100614] add&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1:1.0 (usb)<br>
UEVENT[1211938261.102634] add&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1:1.0/usb_endpoint/usbdev1.5_ep81 (usb_endpoint)<br>UEVENT[1211938261.102702] add&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1:1.0/usb_endpoint/usbdev1.5_ep82 (usb_endpoint)<br>
UEVENT[1211938261.108634] add&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /devices/virtual/video4linux/video2 (video4linux)<br>UDEV&nbsp; [1211938261.110296] add&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /devices/virtual/video4linux/video2 (video4linux)<br>UDEV&nbsp; [1211938261.151902] add&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1:1.0 (usb)<br>
UDEV&nbsp; [1211938261.153254] add&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1:1.0/usb_endpoint/usbdev1.5_ep81 (usb_endpoint)<br>UDEV&nbsp; [1211938261.154323] add&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1:1.0/usb_endpoint/usbdev1.5_ep82 (usb_endpoint)<br>
(for this webcam, no video4linux HAL object is created)<br>In the first instance the video4linux device is a child kobject of the USB connection kobject. Whereas in the second case, the video4linux kobject ends up in /devices/virtual instead, which is the location for devices that dont have a real parent kobject (AFAIK). I suspect this is why the HAL video4linux object is not created in the second case. Can someone confirm ?<br>
Checking the contents of /sys/devices/virtual shows a lot of kobjects, including some that are properly reported by HAL. On my computer, &#39; lshal | grep &quot;/virtual&quot; &#39; shows event-input objects and ALSA objects (sequencer, timer), all with &quot;linux.sysfs_path&quot; pointing somewhere in /sys/devices/virtual and linux.device_file pointing to a device file in /dev<br>
Which brings me back to that question: why isnt the Quickcam also detected and reported ?<br><br>cheers,<br>Gilles<br><br><div class="gmail_quote">On Mon, May 26, 2008 at 9:49 AM, Gilles GIGAN &lt;<a href="mailto:gilles.gigan@gmail.com">gilles.gigan@gmail.com</a>&gt; wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Hi all,<br>When I connect a USB webcam, org.freedesktop.Hal.Manager generates a couple of DeviceAdded signals for the newly created HAL objects. One of these objects usually has the &#39;Video4Linux&#39; capability. These are the HAL objects created when I plug in a Creative NX webcam (no microphone):<br>

/org/freedesktop/Hal/devices/usb_device_41e_401c_noserial<br>/org/freedesktop/Hal/devices/usb_device_ffffffff_ffffffff_noserial<br>/org/freedesktop/Hal/devices/usb_device_41e_401c_noserial_video4linux<br>The last one in this case holds the information about V4L and is easily identifiable by checking at least &quot;info.category&quot; and &quot;info.capabilities&quot;.<br>

However, when I connect an old Logitech Quickcam express (qc-usb driver), no V4L-related object is created and I only get:.<br>/org/freedesktop/Hal/devices/usb_device_46d_840_noserial<br>/org/freedesktop/Hal/devices/usb_device_46d_840_noserial_if0<br>

grep&#39;ping syslog shows the webcam has been detected and the device file created.<br><br>Is this HAL-related or driver-related ?<br>If it is driver-related, which step (specifically which function call) usually notifies HAL that a new V4L object has been added ? is it tied to one of the sysfs routines ?<br>

Thanks,<br><font color="#888888">Gilles<br><br>
</font></blockquote></div><br>