GNOME Bugzilla – Bug 551463
Starting Cheese freezes Gnome on a Lenovo X200
Last modified: 2008-09-11 16:50:50 UTC
Steps to reproduce: 1. Start Cheese from the Applications > Graphics Menu 2. Gnome Freezes 3. Stack trace: Other information: Gnome freezes up leaving me with nothing to do but a hard power down to restart the computer. Even Ctrl+Alt+Bksp doesn't work. I tried running the System monitor at the same time, and even that stopped running. All that happens when I start Cheese is the webcam light flashes, and then stays on permanently, at which point Gnome freezes. The only thing that continues to work is my mouse cursor.
Would you mind providing some more info? - a "cheese -v" output or the log file in ~/.gnome2/cheese/ - webcam model, driver name and version - gstreamer version And, if you are using an old cheese version, could you please test one of the latest tarballs? 2.23.92? Thank you.
I'm not sure of the webcam model, it's whatever comes built into the Lenovo X200. Is there an easy way to find out (a la lspci?). The details below say it's a "UVC Camera." Gstreamer is 0.10-18. Would it help if I said I'm using a fresh install of Ubuntu 8.04 (Hardy Heron)? Here's what cheese -v outputs if I close it right before it freezes up Gnome: Detected webcam: UVC Camera (17ef:480c) device: /dev/video0 video/x-raw-yuv 1280 x 1024 num_framerates 1 15/2 video/x-raw-yuv 1280 x 800 num_framerates 1 15/2 video/x-raw-yuv 1024 x 768 num_framerates 1 15/2 video/x-raw-yuv 1024 x 600 num_framerates 1 15/2 video/x-raw-yuv 800 x 600 num_framerates 1 15/2 video/x-raw-yuv 320 x 240 num_framerates 1 30/1 video/x-raw-yuv 640 x 480 num_framerates 1 30/1 v4l2src name=video_source device=/dev/video0 ! video/x-raw-yuv,width=1280,height=1024,framerate=15/2 ! identity
It would really help if you would try the latest tarball, a lot of bugs have been fixed recently! Furthermore the log from that version gives more info about the webcam model and driver. You should be able to grab it from http://ftp.gnome.org/pub/GNOME/desktop/2.23/2.23.92/sources/ in a couple of hours or you can test the previous one 2.23.91.
Gave running the latest development version (2.23.91) a college try, but seem to be getting stuck on ./configure: checking for intltool >= 0.40.0... 0.37.1 found configure: error: Your intltool is too old. You need intltool 0.40.0 or later. (and that was after I apt-get installed intltool...)
either install 0.40.0 or replace 0.40.0 with 0.37.1 in configure.ac line 50.
(In reply to comment #5) > either install 0.40.0 or replace 0.40.0 with 0.37.1 in configure.ac line 50. > well.. I'm not sure you can easily change it in the tarball. Maybe installing intltool would be easier or just change the dependency in latest svn.
(In reply to comment #6) > (In reply to comment #5) > > either install 0.40.0 or replace 0.40.0 with 0.37.1 in configure.ac line 50. > > > well.. I'm not sure you can easily change it in the tarball. Maybe installing > intltool would be easier or just change the dependency in latest svn. > you can ;) please also try to use a gstreamer version >= 0.10.20
Ha, well I had to hack lines 12913 and 12917 of the configure script itself just to get it past the intltool check, and then I ended up with the following unmet dependencies: No package 'glib-2.0' found No package 'gio-2.0' found No package 'gtk+-2.0' found No package 'libgnomeui-2.0' found No package 'gconf-2.0' found No package 'gstreamer-0.10' found No package 'gstreamer-plugins-base-0.10' found No package 'gnome-vfs-2.0' found No package 'libebook-1.2' found No package 'cairo' found No package 'dbus-1' found No package 'hal' found No package 'dbus-glib-1' found No package 'pangocairo' found No package 'librsvg-2.0' found Umm, ok...?
Gotta run (to bed). If you guys have any thoughts on what I can do to get the latest Cheese up and running on Ubuntu 8.04, leave'em here, I'll check back tomorrow.
"sudo apt-get build-dep cheese" should install everything needed to compile it.
You guys are going to laugh. First of all, thank you Filippo for being so patient and helpful with me. So I did the build-dep (wow that was a lot of stuff), and I successfully got through configure and make, and was just about to make install when I thought, wait, maybe I should do this with the latest version, 2.23.92, instead of .91. So I blew away what I had done, downloaded .92, hacked the configure file to bypass the intltest restriction, but when I got to the sudo make step, things errored out. Guess I'll go back to .91. cheese.c: In function ‘cheese_print_handler’: cheese.c:66: error: ‘GFile’ undeclared (first use in this function) cheese.c:66: error: (Each undeclared identifier is reported only once cheese.c:66: error: for each function it appears in.) cheese.c:66: error: ‘old’ undeclared (first use in this function) cheese.c:66: warning: implicit declaration of function ‘g_file_new_for_path’ cheese.c:67: warning: implicit declaration of function ‘g_file_delete’ cheese.c: In function ‘cheese_handle_files_from_before_224’: cheese.c:97: error: ‘GFile’ undeclared (first use in this function) cheese.c:97: error: ‘source’ undeclared (first use in this function) cheese.c:97: error: ‘target’ undeclared (first use in this function) cheese.c:97: warning: left-hand operand of comma expression has no effect cheese.c:97: error: ‘dir’ undeclared (first use in this function) cheese.c:97: warning: left-hand operand of comma expression has no effect cheese.c:136: warning: implicit declaration of function ‘g_file_move’ cheese.c:136: error: ‘G_FILE_COPY_OVERWRITE’ undeclared (first use in this function) make[3]: *** [cheese.o] Error 1 make[3]: Leaving directory `/home/jwatt/cheese-2.23.92/src' make[2]: *** [all] Error 2 make[2]: Leaving directory `/home/jwatt/cheese-2.23.92/src' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/home/jwatt/cheese-2.23.92' make: *** [all] Error 2
So I was able to configure, make, and make install v2.23.91 of Cheese. When I ran cheese from the command line ("which cheese" returns /usr/local/bin/cheese, btw) it locked up Gnome again and I had to do a hard reboot. When I "ls -al /usr/local/bin/cheese" I get the following: $ ls -al /usr/local/bin/cheese -rwxr-xr-x 1 root root 540237 2008-09-09 21:08 /usr/local/bin/cheese Which is obviously the new executable I just installed based on the datetime. I'm going to run cheese -v and try to close it before it locks things up to get some output. But it looks to me exactly the same as what v2.22.3 returned.
Yep, looks very similar to the output above, although the last line is actually different, the following is added: "name=capsfilter caps=" $ cheese -v Detected webcam: UVC Camera (17ef:480c) device: /dev/video0 video/x-raw-yuv 1280 x 1024 num_framerates 1 15/2 video/x-raw-yuv 1280 x 800 num_framerates 1 15/2 video/x-raw-yuv 1024 x 768 num_framerates 1 15/2 video/x-raw-yuv 1024 x 600 num_framerates 1 15/2 video/x-raw-yuv 800 x 600 num_framerates 1 15/2 video/x-raw-yuv 320 x 240 num_framerates 1 30/1 video/x-raw-yuv 640 x 480 num_framerates 1 30/1 v4l2src name=video_source device=/dev/video0 ! capsfilter name=capsfilter caps=video/x-raw-yuv,width=1280,height=1024,framerate=15/2 ! identity Ok, I'm going to let it run all the way through it locking up and write down any other output that comes after the v4l2src line.
Nope, nothing else happens, Cheese, Gnome, and my computer (save the mouse cursor) locks up right after that v4l2src line. Please let me know if I can provide any other information.
can you try to execute a gstreamer pipeline and see if that works? gst-launch v4l2src ! ffmpegcolorspace ! ximagesink @filippo: he uses a really big resolution: width=1280,height=1024
(In reply to comment #11) > You guys are going to laugh. First of all, thank you Filippo for being so > patient and helpful with me. No problem ;) > cheese.c: In function ‘cheese_print_handler’: > cheese.c:66: error: ‘GFile’ undeclared (first use in this function) > cheese.c:66: error: (Each undeclared identifier is reported only once > cheese.c:66: error: for each function it appears in.) > cheese.c:66: error: ‘old’ undeclared (first use in this function) > cheese.c:66: warning: implicit declaration of function > ‘g_file_new_for_path’ > cheese.c:67: warning: implicit declaration of function ‘g_file_delete’ > cheese.c: In function ‘cheese_handle_files_from_before_224’: > cheese.c:97: error: ‘GFile’ undeclared (first use in this function) > cheese.c:97: error: ‘source’ undeclared (first use in this function) > cheese.c:97: error: ‘target’ undeclared (first use in this function) > cheese.c:97: warning: left-hand operand of comma expression has no effect > cheese.c:97: error: ‘dir’ undeclared (first use in this function) > cheese.c:97: warning: left-hand operand of comma expression has no effect > cheese.c:136: warning: implicit declaration of function ‘g_file_move’ > cheese.c:136: error: ‘G_FILE_COPY_OVERWRITE’ undeclared (first use in this > function) > make[3]: *** [cheese.o] Error 1 > make[3]: Leaving directory `/home/jwatt/cheese-2.23.92/src' > make[2]: *** [all] Error 2 > make[2]: Leaving directory `/home/jwatt/cheese-2.23.92/src' > make[1]: *** [all-recursive] Error 1 > make[1]: Leaving directory `/home/jwatt/cheese-2.23.92' > make: *** [all] Error 2 It doesn't complain here and "make dist-check" doesn't fail.. Anyway it should be easily avoided adding #include <gio/gio.h> in cheese.c. Doing it in current svn, if you want you can try that.
(In reply to comment #15) > can you try to execute a gstreamer pipeline and see if that works? > > gst-launch v4l2src ! ffmpegcolorspace ! ximagesink > > @filippo: he uses a really big resolution: width=1280,height=1024 sure, I doubt it's a cheese issue.. probably a driver one. Justin, does that pipeline work? About high resolution it shouldn't be a problem if the driver correcly handles it. I have a webcam that does the same resolution and correctly works (with really low framerate though, but that's an hardware limit).
Pipeline worked! $ gst-launch v4l2src ! ffmpegcolorspace ! ximagesink Setting pipeline to PAUSED ... Pipeline is live and does not need PREROLL ... Setting pipeline to PLAYING ... New clock: GstSystemClock ERROR: from element /pipeline0/ximagesink0: Output window was closed Additional debug info: ximagesink.c(1069): gst_ximagesink_handle_xevents (): /pipeline0/ximagesink0 Execution ended after 87583913653 ns. Setting pipeline to PAUSED ... Setting pipeline to READY ... Setting pipeline to NULL ... FREEING pipeline ... See attached screenshot. The funny thing about the resolution is my LCD panel is only 1280x800, so it looks like the webcam is higher res that my widescreen display.
Created attachment 118494 [details] Screenshot of gstreamer pipeline
Here's another data point. I've never had problems with Gnome or Ubuntu locking up like it does when I try to run Cheese. I've run it on various older model ThinkPads, as well as Dells, etc. Of course the Lenovo X200 is very new... However, tonight when I tried to watch a movie trailer on the Apple.com site with nothing more exotic than ubuntu-restricted-extras and flashplugin-nonfree installed, the same thing happens. http://www.apple.com/trailers/independent/nightsandweekends/ I click on the "large" button at the above URL, a window pops up to play the movie, and the Gnome completely locks up, the only thing that responds is my mouse, (not even Ctrl+Alt+Backspace) and the only thing I can do is a hard power down. I don't seem to have any problem playing Flash movies.
(In reply to comment #18) > Pipeline worked! uhm.. strange :( > $ gst-launch v4l2src ! ffmpegcolorspace ! ximagesink > See attached screenshot. The funny thing about the resolution is my LCD panel > is only 1280x800, so it looks like the webcam is higher res that my widescreen > display. That's ok, gst-launch defaults to maximum supported resolution (1280x1024 for your webcam). What about these pipelines? gst-launch v4l2src name=video_source device=/dev/video0 ! capsfilter name=capsfilter caps=video/x-raw-yuv,width=1280,height=1024,framerate=15/2 ! identity ! xvimagesink gst-launch v4l2src name=video_source device=/dev/video0 ! capsfilter name=capsfilter caps=video/x-raw-yuv,width=1280,height=1024 ! identity ! xvimagesink gst-launch v4l2src name=video_source device=/dev/video0 ! capsfilter name=capsfilter caps=video/x-raw-yuv,width=1280,height=1024 ! identity ! ffmpegcolorspace ! ximagesink gst-launch v4l2src name=video_source device=/dev/video0 ! capsfilter name=capsfilter caps=video/x-raw-yuv,width=640,height=480 ! identity ! xvimagesink
> gst-launch v4l2src name=video_source device=/dev/video0 ! capsfilter > name=capsfilter caps=video/x-raw-yuv,width=1280,height=1024,framerate=15/2 ! > identity ! xvimagesink webcam light blinks, screen goes completely blank/black, computer is completely unresponsive, hard power down to restart > gst-launch v4l2src name=video_source device=/dev/video0 ! capsfilter > name=capsfilter caps=video/x-raw-yuv,width=1280,height=1024 ! identity ! > xvimagesink webcam light blinks, screen goes completely blank/black, computer is completely unresponsive, hard power down to restart > gst-launch v4l2src name=video_source device=/dev/video0 ! capsfilter > name=capsfilter caps=video/x-raw-yuv,width=1280,height=1024 ! identity ! > ffmpegcolorspace ! ximagesink WORKS! > gst-launch v4l2src name=video_source device=/dev/video0 ! capsfilter > name=capsfilter caps=video/x-raw-yuv,width=640,height=480 ! identity ! > xvimagesink webcam light blinks, screen goes completely blank/black, computer is completely unresponsive, hard power down to restart
(In reply to comment #22) > > identity ! xvimagesink > webcam light blinks, screen goes completely blank/black, computer is completely > unresponsive, hard power down to restart > > ffmpegcolorspace ! ximagesink > WORKS! I'm sorry for all those "hard power down" I caused :P but at least we found now have some useful info to solve your issue :)! It seems you have an issue with xvimagesink, what video card do you have? what about video driver (name, version)? Anyway you should be able to force ximagesink from "gstreamer-properties", in the Video tab, set Default Output to "X Window System (No Xv)". Let us know if this lets you run cheese with no freeze.
yep.. which graphic card are you using?
So the Lenovo website says I have a Intel GMA X4500 HD. I honestly don't know how to figure out what driver it's using. Tips?
W00t! Setting gstreamer's Default Output to "X Window System (No Xv)" (obscure!) means Cheese works! More importantly (thanks to your hard work) means my webcam works. So it sounds like I have a video driver issue?
(In reply to comment #25) > So the Lenovo website says I have a Intel GMA X4500 HD. I honestly don't know > how to figure out what driver it's using. Tips? lspci -v should tell it, attach it here if you want, attach lsmod too because I'm not sure hardy lspci reports kernel modules. > So it sounds like I have a video driver issue? Seems so to me, support for your video card entered xf86-video-intel recently, it probably have some issue yet (supposing that's your video driver).
relevant lspci -v bits: 00:02.0 VGA compatible controller: Intel Corporation Cantiga Integrated Graphics Controller (rev 07) (prog-if 00 [VGA controll er]) Subsystem: Lenovo Unknown device 20e4 Flags: bus master, fast devsel, latency 0, IRQ 20 Memory at f2000000 (64-bit, non-prefetchable) [size=4M] Memory at d0000000 (64-bit, prefetchable) [size=256M] I/O ports at 1800 [size=8] Capabilities: [90] Message Signalled Interrupts: Mask- 64bit- Queue=0/0 Enable- Capabilities: [d0] Power Management version 3 00:02.1 Display controller: Intel Corporation Cantiga Integrated Graphics Controller (rev 07) Subsystem: Lenovo Unknown device 20e4 Flags: bus master, fast devsel, latency 0 Memory at f2400000 (64-bit, non-prefetchable) [size=1M] Capabilities: [d0] Power Management version 3 lsmod output: Module Size Used by af_packet 23812 4 ipv6 267780 17 i915 32512 2 drm 82452 3 i915 binfmt_misc 12808 1 rfcomm 41744 2 l2cap 25728 13 rfcomm bluetooth 61156 4 rfcomm,l2cap uinput 10240 1 ppdev 10372 0 acpi_cpufreq 10796 2 cpufreq_powersave 2688 0 cpufreq_conservative 8712 0 cpufreq_userspace 5284 0 cpufreq_ondemand 9740 1 cpufreq_stats 7104 0 freq_table 5536 3 acpi_cpufreq,cpufreq_ondemand,cpufreq_stats container 5632 0 bay 6912 0 dock 11280 1 bay sbs 15112 0 sbshc 7680 1 sbs iptable_filter 3840 0 ip_tables 14820 1 iptable_filter x_tables 16132 1 ip_tables parport_pc 36260 0 lp 12324 0 parport 37832 3 ppdev,parport_pc,lp snd_hda_intel 344728 2 uvcvideo 58116 0 snd_pcm_oss 42144 0 compat_ioctl32 2304 1 uvcvideo snd_mixer_oss 17920 1 snd_pcm_oss videodev 29440 1 uvcvideo psmouse 40336 0 snd_pcm 78596 2 snd_hda_intel,snd_pcm_oss ac 6916 0 serio_raw 7940 0 thinkpad_acpi 51836 0 evdev 13056 8 v4l1_compat 15492 2 uvcvideo,videodev v4l2_common 18304 2 uvcvideo,videodev nvram 9992 2 thinkpad_acpi wlan_scan_sta 16000 1 ath_rate_sample 16128 1 snd_page_alloc 11400 2 snd_hda_intel,snd_pcm snd_hwdep 10500 1 snd_hda_intel battery 14212 0 ath_pci 249016 0 wlan 236272 4 wlan_scan_sta,ath_rate_sample,ath_pci ath_hal 305376 3 ath_rate_sample,ath_pci snd_seq_dummy 4868 0 snd_seq_oss 35584 0 video 19856 0 output 4736 1 video snd_seq_midi 9376 0 snd_rawmidi 25760 1 snd_seq_midi wmi_acer 9644 0 snd_seq_midi_event 8320 2 snd_seq_oss,snd_seq_midi snd_seq 54224 6 snd_seq_dummy,snd_seq_oss,snd_seq_midi,snd_seq_midi_event snd_timer 24836 2 snd_pcm,snd_seq snd_seq_device 9612 5 snd_seq_dummy,snd_seq_oss,snd_seq_midi,snd_rawmidi,snd_seq button 9232 0 snd 56996 15 snd_hda_intel,snd_pcm_oss,snd_mixer_oss,snd_pcm,snd_hwdep,snd_seq_dummy,snd_seq_oss,snd_rawmidi,snd_seq,snd_timer,snd_seq_device shpchp 34452 0 pci_hotplug 30880 1 shpchp soundcore 8800 1 snd e1000e_ich9m 101540 0 intel_agp_ich9m 23700 1 agpgart 34760 3 drm,intel_agp_ich9m ext3 136712 1 jbd 48404 1 ext3 mbcache 9600 1 ext3 sg 36880 0 sd_mod 30720 3 ahci 28420 2 libata 159344 1 ahci scsi_mod 151436 3 sg,sd_mod,libata ehci_hcd 37900 0 uhci_hcd 27024 0 usbcore 146028 4 uvcvideo,ehci_hcd,uhci_hcd thermal 16796 0 processor 36872 4 acpi_cpufreq,thermal fan 5636 0 fbcon 42912 0 tileblit 3456 1 fbcon font 9472 1 fbcon bitblit 6784 1 fbcon softcursor 3072 1 bitblit fuse 50708 3 Note: in other news, the gstreamer config fix means I can watch trailers on Apple.com now. That's nice.
Justin, in order to nail it down, can you try playing a video with mplayer: mplayer -vo xv <video-file-name> Also please try your webcam this way (you might need to edit widgeth/height/fps) mplayer tv:// -tv driver=v4l2:width=640:height=480:fps=15:device=/dev/video0 -vo xv
(In reply to comment #29) > Justin, in order to nail it down, can you try playing a video with mplayer: > mplayer -vo xv <video-file-name> Tried this on an avi from a Canon point and shoot camera. Screen flashed black, then reappeared with degraded pixel artifacts. Otherwise same issues as before, the only thing I could do is move my mouse. Keyboard was gone, so I had to do a hard power down to restart. > Also please try your webcam this way (you might need to edit > widgeth/height/fps) > mplayer tv:// -tv driver=v4l2:width=640:height=480:fps=15:device=/dev/video0 > -vo xv Tried this with 1280x1024. Popped up a window with a blue background. Flashed the webcam light. Then everything locked up except for the mouse. Powered the system down again to restart. So yeah, xV is not happy with whatever video driver I've got going on.
(In reply to comment #30) > So yeah, xV is not happy with whatever video driver I've got going on. Definitely not a cheese bug so :), closing as notgnome. Please report this bug to xorg developers https://bugs.freedesktop.org/enter_bug.cgi?product=xorg The right component should be "Driver/Intel". Feel free to point them to this bug and keep us updated if you want (a link to the bug report should be enough). Thanks for your patience ;)
*** Bug 550001 has been marked as a duplicate of this bug. ***