Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 272516 - kde-4.4.2 and earlier: KDE apps can't see webcam (dbus permissions)
Summary: kde-4.4.2 and earlier: KDE apps can't see webcam (dbus permissions)
Status: RESOLVED INVALID
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Unspecified (show other bugs)
Hardware: All Linux
: High normal (vote)
Assignee: Freedesktop bugs
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: 313999
  Show dependency tree
 
Reported: 2009-06-03 22:49 UTC by Zeev Tarantov
Modified: 2010-06-10 07:12 UTC (History)
2 users (show)

See Also:
Package list:
Runtime testing required: ---
tampakrap: Bugday+


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Zeev Tarantov 2009-06-03 22:49:40 UTC
Kopete and digikam can't see a webcam.

The device is:

Bus 005 Device 009: ID 0553:0202 STMicroelectronics Imaging Division (VLSI Vision) Aiptek PenCam 1

(it's a piece of crap and is seven years old)

$ mplayer -tv driver=v4l:device=/dev/video0:width=352:height=288:outfmt=rgb24 tv://

displays the capture properly, so it's not a hardware, kernel, driver, etc issue.

/var/log/messages has these related things:

Jun  4 01:30:20 wolfpc dbus-daemon: Rejected send message, 1 matched rules; type="method_call", sender=":1.10" (uid=1000 pid=8654 comm="/usr/bin/digikam -caption digiKam -icon digikam ") interface="org.freedesktop.DBus.Introspectable" member="Introspect" error name="(unset)" requested_reply=0 destination="org.freedesktop.Hal" (uid=0 pid=3003 comm="/usr/sbin/hald --use-syslog --verbose=no "))
Jun  4 01:30:20 wolfpc dbus-daemon: Rejected send message, 1 matched rules; type="method_call", sender=":1.10" (uid=1000 pid=8654 comm="/usr/bin/digikam -caption digiKam -icon digikam ") interface="org.freedesktop.Hal.Manager" member="FindDeviceByCapability" error name="(unset)" requested_reply=0 destination="org.freedesktop.Hal" (uid=0 pid=3003 comm="/usr/sbin/hald --use-syslog --verbose=no "))

and

Jun  4 01:24:57 wolfpc dbus-daemon: Rejected send message, 1 matched rules; type="method_call", sender=":1.9" (uid=1000 pid=8607 comm="/usr/bin/kopete -caption Kopete ") interface="org.freedesktop.DBus.Introspectable" member="Introspect" error name="(unset)" requested_reply=0 destination="org.freedesktop.Hal" (uid=0 pid=3003 comm="/usr/sbin/hald --use-syslog --verbose=no "))
Jun  4 01:24:57 wolfpc dbus-daemon: Rejected send message, 1 matched rules; type="method_call", sender=":1.9" (uid=1000 pid=8607 comm="/usr/bin/kopete -caption Kopete ") interface="org.freedesktop.Hal.Manager" member="FindDeviceByCapability" error name="(unset)" requested_reply=0 destination="org.freedesktop.Hal" (uid=0 pid=3003 comm="/usr/sbin/hald --use-syslog --verbose=no "))


Reproducible: Always

Steps to Reproduce:
1. attach webcam, see that /dev/video0 exists, try using mplayer
2. open kopete, configure, video -> empty device list
3. open digikam, no cameras found




On http://wiki.kde.org/tiki-index.php?page=kopete%20webcam%20support&comzone=show it says:

Kopete doesn't see your webcam: in Kopete's configuration dialog, the device section desperately stays empty, but the webcam works with other programs.
Please check your udev rules and make sure there isn't a rule that create /dev/v4l/by-path/xxxxxxx device that points to /dev/videoX.
In this case, Kopete will fail to detect your webcam.
Workaround:
1) suppress the udev rule that creates the "by-path" device for v4l devices. In my case I did remove the file /etc/udev/rules.d/60-persistent-v4l.rules but this might distro dependent.
2) remove the offending /dev/v4l/by-path/xxxx file and more over you have to suppress the complete /dev/v4l folder: rm -rf /dev/v4l
3) restart udev
4) restart kopete and enjoy now your webcam with kopete :-)

I can't find the rules that create /dev/v4l/by-path/pci-0000\:00\:1a.2-usb-0\:1\:1.0-video-index0, but I found udev rules mention the device, giving users in group plugdev ability to see it or something. I'm in the group.


Portage 2.1.6.13 (default/linux/amd64/2008.0/desktop, gcc-4.4.0, glibc-2.10.1-r0, 2.6.30-rc8 x86_64)
=================================================================
System uname: Linux-2.6.30-rc8-x86_64-Intel-R-_Core-TM-2_Duo_CPU_E6550_@_2.33GHz-with-gentoo-2.0.1
Timestamp of tree: Wed, 03 Jun 2009 17:15:02 +0000
app-shells/bash:     4.0_p24
dev-java/java-config: 2.1.8
dev-lang/python:     2.6.2-r1
dev-util/cmake:      2.6.4
sys-apps/baselayout: 2.0.1
sys-apps/openrc:     0.4.3-r2
sys-apps/sandbox:    1.9
sys-devel/autoconf:  2.13, 2.63-r1
sys-devel/automake:  1.9.6-r2, 1.10.2, 1.11
sys-devel/binutils:  2.19.51.0.7
sys-devel/gcc-config: 1.4.1
sys-devel/libtool:   2.2.6a
virtual/os-headers:  2.6.29
ACCEPT_KEYWORDS="amd64 ~amd64"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-g -O2 -pipe -march=core2 -momit-leaf-frame-pointer"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/share/config"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/udev/rules.d"
CXXFLAGS="-g -O2 -pipe -march=core2 -momit-leaf-frame-pointer"
DISTDIR="/usr/portage/distfiles"
FEATURES="distlocks fixpackages parallel-fetch protect-owned sandbox sfperms strict unmerge-orphans userfetch"
GENTOO_MIRRORS="http://mirror.hamakor.org.il/pub/mirrors/gentoo/ "
LANG="en_US.utf8"
LDFLAGS="-Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed"
LINGUAS="en en_US"
MAKEOPTS="-j3"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage/layman/java-overlay /usr/local/portage/layman/gcc-porting /usr/local/portage/layman/mozilla /usr/local/portage"
SYNC="rsync://mirror.hamakor.org.il/gentoo-portage"
USE="X acl acpi alsa amd64 bash-completion bidi bluetooth branding bzip2 cairo cdr cli cracklib crypt dbus dri dvd dvdr dvdread eds emboss encode evo fam firefox gif gpm gstreamer gtk hal iconv ipv6 isdnlog jpeg kde libnotify mad midi mikmod mmx mp3 mpeg mudflap multilib ncurses nls nptl nptlonly offensive ogg opengl openmp pam pch pcre pdf perl png ppds pppd python qt3 qt3support qt4 quicktime readline reflection sdl session spell spl sqlite3 sse sse2 ssl startup-notification svg sysfs tcpd tiff truetype unicode usb vorbis xcb xcomposite xml xorg xulrunner xv zlib" ALSA_CARDS="hda-intel" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" ELIBC="glibc" INPUT_DEVICES="evdev keyboard mouse" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="en en_US" USERLAND="GNU" VIDEO_CARDS="nv nvidia"
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, LC_ALL, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Comment 1 Tomáš Chvátal (RETIRED) gentoo-dev 2009-06-04 11:42:51 UTC
@udev:
guys your ideas?
I dont have any cam but if user has to mess with udev to get it working something is borked on your side i guess...?
Comment 2 Zeev Tarantov 2009-06-10 22:20:04 UTC
The linux kernel has a virtual webcam device for testing user space applications.
enable CONFIG_VIDEO_VIVI=m in your .config, make, make modules_install and modprobe vivi, then mplayer tv:// shows a testing pattern. No hardware required. 

Kopete can't see this "webcam". Please, try it. Try it with Gnome applications too. I didn't bother because I'm sure they go through the same dbus mechanism.

Adobe Flash Player 10 beta x86-64 works with my webcam. Open source KDE apps - don't. This is very sad.

My next stage is figuring out how to rip out any and all dbus security restrictions, in either configuration or code.
Comment 3 Matthias Schwarzott gentoo-dev 2009-07-16 09:32:12 UTC
Any news on this?

Maybe this is a hal issue? When loading vivi to get a test video device, "udevadm monitor" shows it, but "lshal -m" does not show anything.
Comment 4 Andreas K. Hüttel gentoo-dev 2010-04-20 21:14:14 UTC
Which KDE version do you have, and do you still have this problem on 4.4.2?
Comment 5 Zeev Tarantov 2010-04-21 05:47:47 UTC
KDE 4.4.2. I've commented out these two lines:

    <deny own="*"/>
    <deny send_type="method_call"/>

In /etc/dbus-1/system.conf and that fixed all my problems. K3B can now see my dvdrw, KDE can notify on inserting a thumb drive, apps see my webcam, etc.

This is obviously not a solution, because it's like running as root. I tell myself that when I have time, I'll read up on dbus configuration and write rules to exactly punch the right holes instead of allowing everything. I keep procrastinating on that.

So, but is still valid, help with dbus configuration very much appreciated.
Comment 6 Andreas K. Hüttel gentoo-dev 2010-04-21 07:51:16 UTC
Reassigning to freedesktop-bugs, since kde gets cc'd there anyway...
Comment 7 Samuli Suominen gentoo-dev 2010-04-21 09:24:05 UTC
This might sound like the obvious, but:

Is this after dbus upgrade? Have you tried to recompile x11-libs/qt-dbus after that?
Comment 8 Zeev Tarantov 2010-04-21 16:18:09 UTC
This isn't to do with code. The code works as designed. Both dbus and qt-dbus. This is to do with the contents of /etc/dbus-1/system.d/. Mine has: cups.conf, hal.conf, wpa_supplicant.conf, skype.conf and:
org.kde.auth.conf, org.kde.fontinst.conf, org.kde.kcontrol.kcmclock.conf, org.kde.kcontrol.kcmremotewidgets.conf, org.kde.ksysguard.processlisthelper.conf

Do you have a KDE-related rules file I don't have installed? Which package installs it? Mine were installed by kde-base/kdelibs, kde-base/systemsettings and kde-base/ksysguard.

Maybe hal.conf installed by sys-apps/hal-0.5.14-r2 is too restrictive? Maybe it should allow more stuff?
Comment 9 Malte E. 2010-06-09 10:33:55 UTC
Hi,

this is not a general problem. Webcam in KDE apps is working for me since I have a webcam (I first used it with 4.3.3, I guess) without problems. Maybe you should try to ask in the forums, too and see if you can get help there.
btw., these are the contents of my /etc/dbus-1/system.d/:
ConsoleKit.conf
cups.conf
hal.conf
murmur.conf
NetworkManager.conf
nm-avahi-autoipd.conf
nm-dhcp-client.conf
nm-dispatcher.conf
nm-system-settings.conf
org.freedesktop.PolicyKit.conf
org.kde.auth.conf
org.kde.fontinst.conf
org.kde.kcontrol.kcmclock.conf
org.kde.kcontrol.kcmremotewidgets.conf
org.kde.ksysguard.processlisthelper.conf
skype.conf
wpa_supplicant.conf
feel free to ask me uploading the contents of any of these files, but they should actually be the same as your's.