|
|
|
Re: em28xx issues | |
| [Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] | |
On Mon, 2009-01-05 at 17:33 -0700, Paul Thomas wrote: > On Sat, Jan 3, 2009 at 10:22 AM, Paul Thomas <pthomas8589@xxxxxxxxx> wrote: > > On Fri, Jan 2, 2009 at 9:50 AM, Paul Thomas <pthomas8589@xxxxxxxxx> wrote: > >> On Wed, Dec 31, 2008 at 3:52 PM, Devin Heitmueller > >> <devin.heitmueller@xxxxxxxxx> wrote: > >>> On Wed, Dec 31, 2008 at 5:44 PM, Paul Thomas <pthomas8589@xxxxxxxxx> wrote: > >>>> How was it working with Skype? Can we hard code the settings for testing? > >>>> > >>>> thanks, > >>>> Paul > >>> > >>> Well, regardless of the device profile issue, it's not clear why it is > >>> segfaulting. In theory, it should work but you should only get a > >>> single input available instead of being able to pick between composite > >>> and s-video. > >>> > >>> I think with this device you should be able to set a modprobe option > >>> for "debug=1" which might provide a bit more insight. > >>> > >>> Try this. Unplug the device, run "make unload", and then "modprobe > >>> em28xx". Then plug the device in. You should start seeing more info > >>> in the dmesg output. Then start the app that segfaults and report the > >>> dmesg contents. > >>> > >>> Devin > >>> > >>> -- > >>> Devin J. Heitmueller > >>> http://www.devinheitmueller.com > >>> AIM: devinheitmueller > >>> > >> > >> Thanks CityK. I was able to enable core_debug=1. Here is what I have > >> in dmesg after I camstream seg faults: > >> > >> Em28xx: Initialized (Em28xx Audio Extension) extension > >> em28xx #0 em28xx_capture_area_set :em28xx Area Set: (180,72) > >> em28xx #0 em28xx_uninit_isoc :em28xx: called em28xx_uninit_isoc > >> em28xx #0 em28xx_uninit_isoc :em28xx: called em28xx_uninit_isoc > >> em28xx #0 em28xx_set_alternate :minimum isoc packet size: 2888 (alt=6) > >> em28xx #0 em28xx_set_alternate :setting alternate 6 with wMaxPacketSize=2892 > >> em28xx #0 em28xx_accumulator_set :em28xx Scale: (1,1)-(179,71) > >> em28xx #0 em28xx_capture_area_set :em28xx Area Set: (180,72) > >> em28xx #0 em28xx_uninit_isoc :em28xx: called em28xx_uninit_isoc > >> em28xx #0 em28xx_set_alternate :minimum isoc packet size: 2888 (alt=6) > >> em28xx #0 em28xx_set_alternate :setting alternate 6 with wMaxPacketSize=2892 > >> em28xx #0 em28xx_accumulator_set :em28xx Scale: (1,1)-(179,71) > >> em28xx #0 em28xx_capture_area_set :em28xx Area Set: (180,72) > >> em28xx #0 em28xx_init_isoc :em28xx: called em28xx_prepare_isoc > >> em28xx #0 em28xx_uninit_isoc :em28xx: called em28xx_uninit_isoc > >> camstream[18436]: segfault at 0 ip 000000000043ea76 sp > >> 00007fff1ca5d7a8 error 6 in camstream[400000+5a000] > >> em28xx #0 em28xx_uninit_isoc :em28xx: called em28xx_uninit_isoc > >> em28xx #0 em28xx_irq_callback :urb resubmit failed (error=-1) > >> em28xx #0 em28xx_irq_callback :urb resubmit failed (error=-1) > >> em28xx #0 em28xx_irq_callback :urb resubmit failed (error=-1) > >> em28xx #0 em28xx_irq_callback :urb resubmit failed (error=-1) > >> em28xx #0 em28xx_irq_callback :urb resubmit failed (error=-1) > >> > >> thanks, > >> Paul > >> > > > > Here is an update on the programs working with em28xx > > > > Working programs > > Skype > > UCview > > > > Here is the status of the other cam programs that aren't working yet: > > camstream -> seg fault > > gstreamer-properties -> seg fault > > cheese -> uses test input > > fswebcam -> black screen with green stripe > > > > I hope this helps > > > > thanks, > > Paul > > > > OK, I was able to make some more progress. I can use fswebcam on my > x86_64 box if I comment out the input selection section. Now I'm > trying to get fswebcam to work on my embedded arm board > (http://opencircuits.com/Linuxstamp), but when I run it I get a kernel > oops. I've included the oops below. I'm now using this > (git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6.git) > git tree. > > Any ideas? > > thanks, > Paul > linuxstamp:/home/user/fswebcam-20070108# ./fswebcam -v test.jpeg > --- Opening /dev/video0... > Trying source module v4l2... > /dev/video0 opened. > src_v4l2_get_capability,81: /dev/video0 information: > src_v4l2_get_capability,82: cap.driver: "em28xx" > src_v4l2_get_capability,83: cap.card: "PointNix Intra-Oral Camera" > src_v4l2_get_capability,84: cap.bus_info: "1-1.7" > src_v4l2_get_capability,85: cap.capabilities=0x05020041 > src_v4l2_get_capability,86: - VIDEO_CAPTURE > src_v4l2_get_capability,93: - AUDIO > src_v4l2_get_capability,95: - READWRITE > src_v4l2_get_capability,97: - STREAMING > src_v4l2_set_pix_format,530: Device offers the following V4L2 pixel formats: > src_v4l2_set_pix_format,542: 0: YUYV (16bpp YUY2, 4:2:2, packed) > Using palette YUYV > src_v4l2_set_mmap,648: mmap information: > src_v4l2_set_mmap,649: frames=4 > src_v4l2_set_mmap,694: 0 length=221184 > src_v4l2_set_mmap,694: 1 length=221184 > src_v4l2_set_mmap,694: 2 length=221184 > src_v4l2_set_mmap,694: 3 length=221184 > kernel BUG at arch/arm/mm/dma-mapping.c:495! > Unable to handle kernel NULL pointer dereference at virtual address 00000000 > pgd = c13c4000 > [00000000] *pgd=21311031, *pte=00000000, *ppte=00000000 > Internal error: Oops: 817 [#1] PREEMPT > Modules linked in: saa7115 v4l2_common em28xx videodev v4l1_compat > videobuf_vmalloc videobuf_core ir_common tveeprom > CPU: 0 Not tainted (2.6.28-15476-g7d3b56b #2) > PC is at __bug+0x20/0x2c > LR is at vprintk+0x2f0/0x34c > pc : [<c00265c0>] lr : [<c003b078>] psr: 60000013 > sp : c1ff1ba4 ip : c03944fc fp : c1ff1bb0 > r10: 00000028 r9 : c1d78628 r8 : c1d1f000 > r7 : 00000020 r6 : 00000000 r5 : c1d49800 r4 : ffc09000 > r3 : 00000000 r2 : c1ff0000 r1 : 00000002 r0 : 00000030 > Flags: nZCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment user > Control: c000717f Table: 213c4000 DAC: 00000015 > Process fswebcam (pid: 2383, stack limit = 0xc1ff0260) > Stack: (0xc1ff1ba4 to 0xc1ff2000) > 1ba0: c1ff1bc0 c1ff1bb4 c0027504 c00265b0 c1ff1c84 c1ff1bc4 > c01e2a40 > 1bc0: c0027470 c1ff1bf4 c1ff1bd4 c0053810 c003360c 00000000 c037001c > c1c713c0 > 1be0: 00000017 c1ff0000 c1ff1c08 c1ff1c08 c1ff1bfc c02bd9b4 c0033704 > c1ff1c34 > 1c00: c1ff1c0c c02bb9a8 c003360c ffffdd0e c1ff0000 00000002 c1ff1c38 > c0376d64 > 1c20: ffffdd0e c1ff0000 c1ff1c70 c1ff1c38 c02bc0b4 c0043c5c 00000000 > 00200200 > 1c40: ffffdd0e c00443ec c1c713c0 c0398b80 00000001 00000001 c1d78000 > 00000001 > 1c60: c1dd9400 00000020 00000000 00008200 c1d78628 00000028 c1ff1cac > c1ff1c88 > 1c80: c01e4380 c01e2904 c1ff1c94 bf036528 c004464c c1dbd3c0 c1e31400 > c1d78000 > 1ca0: c1ff1cd8 c1ff1cb0 bf036ed0 c01e40ec c1d78000 c1d7cbe0 00000000 > c1d379cc > 1cc0: bf0150a0 bf038098 c1ff1e2c c1ff1cfc c1ff1cdc bf031904 bf036c68 > bf031000 > 1ce0: ffffffea c1d7cbe0 c1d379cc c1ff1e2c c1ff1d20 c1ff1d00 bf011ff8 > bf031850 > 1d00: c1d379c0 c1ff1e2c c044560f c044560f 00000000 c1ff1d38 c1ff1d24 > bf032b98 > 1d20: bf011d44 bf032b68 000223d0 c1ff1e18 c1ff1d3c bf0244c0 bf032b78 00000001 > 1d40: 00000000 60000013 c0398a4c c03989e0 60000013 c1d49000 00000000 c1d490d8 > 1d60: 00000001 00000001 00000000 c1d379c0 c1e0be00 c044560f c1e50ce0 c1ff1d88 > 1d80: c003624c c003360c 00000000 c1d49000 00000000 c0398a70 00000001 00000009 > 1da0: c1ff1dc4 c1ff1db0 c0191088 c0036204 c1ff0000 00000000 c1ff1dd4 c1ff1dc8 > 1dc0: c01a7720 c019103c c1ff1df0 c1ff1df0 c1ff1ddc c003f048 c003360c c1ff0000 > 1de0: 00000102 c1ff1e20 c1ff1df4 c003f150 00000000 000223d0 fffffff2 00000000 > 1e00: 00000000 c044560f 00000000 c1ff1ed4 c1ff1e1c bf026b68 bf023128 00000003 > 1e20: 00000000 c1ff1e2c c1e50ce0 00000000 00000001 00000000 00000000 00000000 > 1e40: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000001 > 1e60: 00000000 00000000 00000000 00000000 c1ff1e7c c01a76b4 c01aac20 c1ff1ea0 > 1e80: c1ff1e8c c01a76f0 c003360c c1ff1eb0 c1ff1e9c c004f4ac c003360c 00000004 > 1ea0: c1d49000 c1ff1f10 c0385478 c044560f 000223d0 c1e50ce0 c044560f c0022fe4 > 1ec0: c1ff0000 00018d94 c1ff1ef0 c1ff1ed8 bf0222e4 bf0269c4 c1e50ce0 ffffffe7 > 1ee0: 000223d0 c1ff1f10 c1ff1ef4 c00993dc bf0222ac c1e50ce0 c1f235a0 00000003 > 1f00: 000223d0 c1ff1f84 c1ff1f14 c0099d18 c009936c 00000000 c1ff1f34 c1ff1f28 > 1f20: c01a7720 c019103c c1ff1f50 c1ff1f50 c1ff1f3c c003f048 c003360c c1ff0000 > 1f40: 00000102 c1ff1f80 c1ff1f54 c003f150 c003efc4 00000000 00000001 c1e50ce0 > 1f60: fffffff7 c044560f 00000036 c0022fe4 c1ff0000 00018d94 c1ff1fa4 c1ff1f88 > 1f80: c0099d80 c0099858 00000000 00000000 00000004 00022280 00000000 c1ff1fa8 > 1fa0: c0022e40 c0099d50 00000000 00000004 00000003 c044560f 000223d0 00022414 > 1fc0: 00000000 00000004 00022280 000223d0 00000001 0000000c 00018d94 000220a0 > 1fe0: 00021540 be81e728 00013e68 40129424 80000010 00000003 00000000 00000000 > Backtrace: > [<c00265a0>] (__bug+0x0/0x2c) from [<c0027504>] (dma_cache_maint+0xa4/0xb8) > [<c0027460>] (dma_cache_maint+0x0/0xb8) from [<c01e2a40>] > (usb_hcd_submit_urb+0x14c/0x890) > [<c01e28f4>] (usb_hcd_submit_urb+0x0/0x890) from [<c01e4380>] > (usb_submit_urb+0x2a4/0x2ac) > [<c01e40dc>] (usb_submit_urb+0x0/0x2ac) from [<bf036ed0>] > (em28xx_init_isoc+0x278/0x2c4 [em28xx]) > r6:c1d78000 r5:c1e31400 r4:c1dbd3c0 > [<bf036c58>] (em28xx_init_isoc+0x0/0x2c4 [em28xx]) from [<bf031904>] > (buffer_prepare+0xc4/0xf4 [em28xx]) > [<bf031840>] (buffer_prepare+0x0/0xf4 [em28xx]) from [<bf011ff8>] > (videobuf_qbuf+0x2c4/0x400 [videobuf_core]) > r7:c1ff1e2c r6:c1d379cc r5:c1d7cbe0 r4:ffffffea > [<bf011d34>] (videobuf_qbuf+0x0/0x400 [videobuf_core]) from > [<bf032b98>] (vidioc_qbuf+0x30/0x3c [em28xx]) > r8:00000000 r7:c044560f r6:c044560f r5:c1ff1e2c r4:c1d379c0 > [<bf032b68>] (vidioc_qbuf+0x0/0x3c [em28xx]) from [<bf0244c0>] > (__video_do_ioctl+0x13a8/0x389c [videodev]) > r5:000223d0 r4:bf032b68 > [<bf023118>] (__video_do_ioctl+0x0/0x389c [videodev]) from > [<bf026b68>] (video_ioctl2+0x1b4/0x2a4 [videodev]) > [<bf0269b4>] (video_ioctl2+0x0/0x2a4 [videodev]) from [<bf0222e4>] > (v4l2_ioctl+0x48/0x54 [videodev]) > [<bf02229c>] (v4l2_ioctl+0x0/0x54 [videodev]) from [<c00993dc>] > (vfs_ioctl+0x80/0x94) > r6:000223d0 r5:ffffffe7 r4:c1e50ce0 > [<c009935c>] (vfs_ioctl+0x0/0x94) from [<c0099d18>] (do_vfs_ioctl+0x4d0/0x4f8) > r7:000223d0 r6:00000003 r5:c1f235a0 r4:c1e50ce0 > [<c0099848>] (do_vfs_ioctl+0x0/0x4f8) from [<c0099d80>] (sys_ioctl+0x40/0x5c) > [<c0099d40>] (sys_ioctl+0x0/0x5c) from [<c0022e40>] (ret_fast_syscall+0x0/0x2c) > r6:00022280 r5:00000004 r4:00000000 > Code: e1a01000 e59f000c eb0052c5 e3a03000 (e5833000) > ---[ end trace 68fb0b4324720f98 ]--- Well, I don't have kernel 2.6.28 code lying around, but it looks like a BUG() that was being emitted Oops'ed instead of completing. The ARMv5te disassmbly of the code bytes show this: 0: e1a01000 mov r1, r0 4: e59f000c ldr r0, [pc, #12] ; 0x18 8: eb0052c5 bl 0x14b24 c: e3a03000 mov r3, #0 ; 0x0 10: e5833000 str r3, [r3] <=== Ooops here r3 is 0/NULL in the Oops dump, but that just means there was a problem with the BUG() call (I think). That doesn't help much. Without the 2.6.28 ARM kernel source at hand, I can't say much more aside from the em82xx_init_isoc() is the first v4l-dvb driver function encountered going through the backtrace and that it looks like the chain of events was spurred by the memory mapping activity: > ... >src_v4l2_set_mmap,694: 3 length=221184 Regards, Andy -- video4linux-list mailing list Unsubscribe mailto:video4linux-list-request@xxxxxxxxxx?subject=unsubscribe https://www.redhat.com/mailman/listinfo/video4linux-list
[Linux Media] [Older V4L] [Linux DVB] [Video Disk Recorder] [Video Technology] [Asterisk] [Photo] [DCCP] [Netdev] [Plasma TVs] [Video Projectors] [PDAs] [Xorg] [Util Linux NG] [Xfree86] [Devices] [Big List of Linux Books] [Free Photo Albums] [LCD TVs] [Fedora Users] [Webcams] [Fedora Women] [HDTV] [ALSA Users] [ALSA Devel] [Stuff] [SSH] [DVB Maintainers] [Linux USB]
![]() |
![]() |