./capture -d /dev/video0
select timeout
Any one else had similar experiences?
Thanks,
Dave.
Here's a note I got from Ajay:
Dave,
You can try enabling the DMA and see if this helps. We have tested UVC
camera streaming on AM335x EVM in DMA mode.
Regards,
Ajay
>
>> I have been using the Beagleboard xM for some time for video capture using
>> various USB web-cams. Now I have received my first Beaglebone, and although
>> I appear to be able to set and read camera parameters, no mmap streaming
>> appears to work. I am setting up a select/poll for the fd but the call only
>> times out. I have tried multiple programs including the example capture
>> program from the V4L2 manual. All appear to give similar symptoms. For
>> example, with the V4L2 capture program:
>>
>> ./capture -d /dev/video0
>> select timeout
>>
>> Any one else had similar experiences?
>>
>> Thanks,
>>
>> Dave.
>>
>
> --
> You received this message because you are subscribed to the Google Groups
> "Beagle Board" group.
> To post to this group, send email to beagl...@googlegroups.com.
> To unsubscribe from this group, send email to
> beagleboard...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/beagleboard?hl=en.
>
---------- Forwarded message ----------
From: Gupta, Ajay Kumar <ajay....@ti.com>
Date: Tue, Dec 13, 2011 at 7:12 AM
Subject: RE: [beagleboard] UVC problems with Beaglebone
To: Jason Kridner <jkri...@beagleboard.org>
Jason,
I am not sure which release is used by Dave but we have below fix for
640x480 streaming issue which is pushed to integration branch.
Regards,
Ajay
------------------------------------------------------------------
commit bc4c08dbf211399a2c28a21c7e80c0ea9e9893f5
Author: Ravi B <ravi...@ti.com>
Date: Wed Nov 9 11:26:39 2011 +0530
musb: host: safe to giveback URB without taking spinlock
merge to cc42fb36 (musb: Add workqueue for URB giveback)
the giveback workqueue has only succesfull completed
URBs, it is safe to giveback URBs without taking
musb spinlocks.
Signed-off-by: Ravi B <ravi...@ti.com>
Signed-off-by: Ajay Kumar Gupta <ajay....@ti.com>
diff --git a/drivers/usb/musb/musb_host.c b/drivers/usb/musb/musb_host.c
index 399f144..2f49f1f 100644
--- a/drivers/usb/musb/musb_host.c
+++ b/drivers/usb/musb/musb_host.c
@@ -361,16 +361,10 @@ static inline void musb_save_toggle(struct
musb_qh *qh, int is_in,
void musb_gb_work(struct work_struct *data)
{
struct musb *musb = container_of(data, struct musb, gb_work);
- unsigned long flags;
struct urb *urb;
- while ((urb = pop_queue(musb)) != 0) {
- spin_lock_irqsave(&musb->lock, flags);
- spin_unlock(&musb->lock);
+ while ((urb = pop_queue(musb)) != 0)
musb_giveback(musb, urb, 0);
- spin_lock(&musb->lock);
- spin_unlock_irqrestore(&musb->lock, flags);
- }
}
/*
------------------------------------------------------------------
Dave.
Dave.
> I just updated my kernel to 3.2 and found that UVC video YUYV streaming no longer works as it did in version 3.1h. Any ideas?
I have a new uImage with some more USB fixes, which might fix your issues, can you give these a try?
http://dominion.thruhere.net/koen/angstrom/beaglebone/uImage-3.2.5-r2a+gitr09e9651bcf2ee8d86685f2a8075bc6557b1d3b91-beaglebone-20120210140111.bin
http://dominion.thruhere.net/koen/angstrom/beaglebone/modules-3.2.5+-r2a+gitr09e9651bcf2ee8d86685f2a8075bc6557b1d3b91-beaglebone.tgz
Copy the uImage to the fat partition (after renaming it) and extra the modules to your rootfs, reboot, depmod -a, reboot.
regards,
Koen
>
> Dave.
>
> On 12/15/2011 02:25 PM, David Lambert wrote:
>> Thanks for all the suggestions. I found that "./oebb.sh update followed by bitbake virtual-kernel" produced a kernel that now works!
>>
>> Dave.
>>
>>
>>
>
> --
> To join: http://beagleboard.org/discuss
> To unsubscribe from this group, send email to:
> beagleboard...@googlegroups.com
> Frequently asked questions: http://beagleboard.org/faq
During bootup:
[ 7.192468] musb_g_ep0_irq 720: SetupEnd came in a wrong ep0stage setup
A couple of minutes later:
root@argus2:~# [ 107.383667] usb_process_rx_queue 1463: Invalid PD
popped from Rx completion queue
However, the best I can get is about 7fps at 320x240 and can only use
YUV mode. No 640x480 or greater resolution seems possible. I did find
a post about enabling DMA in musb, but I haven't tried that yet.
http://osdir.com/ml/beagleboard/2011-12/msg00393.html
No luck yet with a non-uvc camera...
--- Wayne
> chance to test them on Angstrom thou. I'll try later if I have time. --
Regards,
Dave.
On 03/16/2012 08:20 AM, vishnu wrote:
> Hi David,
>
> I am facing the same issue? How did u fix it? Please let me know
bone: v3.2-psp5
--
Apologies for any confusion. :-[
Dave.
bone: v3.2-psp5
HTH,
Dave.
A recent commit, [PATCH] Fix OMAP EHCI suspend/resume failure (i693) '354ab856' causes ehci probe to fail on omap3xxx. This exposed bugs in the ehci_hcd_omap_probe error path causing an oops. On the error path, call usb_remove_hcd if usb_add_hcd has been called, and call usb_put_hcd if usb_alloc_hcd has been called. Tested on BB-xM. Signed-off-by: Russ.Dill <at> ti.com --- drivers/usb/host/ehci-omap.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/usb/host/ehci-omap.c b/drivers/usb/host/ehci-omap.c index 17cfb8a..6e15fc8 100644 --- a/drivers/usb/host/ehci-omap.c +++ b/drivers/usb/host/ehci-omap.c @@ -347,7 +347,7 @@ static int ehci_hcd_omap_probe(struct platform_device *pdev) ret = usb_add_hcd(hcd, irq, IRQF_SHARED); if (ret) { dev_err(dev, "failed to add hcd with err %d\n", ret); - goto err_add_hcd; + goto err_pm_runtime; } /* root ports should always stay powered */ @@ -424,8 +424,12 @@ err_utmi_p1_fck: clk_put(utmi_p1_fck); err_add_hcd: + usb_remove_hcd(hcd); + +err_pm_runtime: disable_put_regulator(pdata); pm_runtime_put_sync(dev); + usb_put_hcd(hcd); err_io: iounmap(regs); --
data.c | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/arch/arm/mach-omap2/clock3xxx_data.c b/arch/arm/mach-omap2/clock3xxx_data.c
index 4e1a3b0..59d5315 100644
--- a/arch/arm/mach-omap2/clock3xxx_data.c
+++ b/arch/arm/mach-omap2/clock3xxx_data.c
@@ -3391,15 +3391,15 @@ static struct omap_clk omap3xxx_clks[] = {
CLK(NULL, "usbhost_48m_fck", &usbhost_48m_fck, CK_3430ES2PLUS | CK_AM35XX | CK_36XX),
CLK(NULL, "usbhost_ick", &usbhost_ick, CK_3430ES2PLUS | CK_AM35XX | CK_36XX),
CLK("usbhs_omap", "usbhost_ick", &usbhost_ick, CK_3430ES2PLUS | CK_AM35XX | CK_36XX),
- CLK("usbhs_omap", "utmi_p1_gfclk", &dummy_ck, CK_3XXX),
- CLK("usbhs_omap", "utmi_p2_gfclk", &dummy_ck, CK_3XXX),
- CLK("usbhs_omap", "xclk60mhsp1_ck", &dummy_ck, CK_3XXX),
- CLK("usbhs_omap", "xclk60mhsp2_ck", &dummy_ck, CK_3XXX),
- CLK("usbhs_omap", "usb_host_hs_utmi_p1_clk", &dummy_ck, CK_3XXX),
- CLK("usbhs_omap", "usb_host_hs_utmi_p2_clk", &dummy_ck, CK_3XXX),
+ CLK(NULL, "utmi_p1_gfclk", &dummy_ck, CK_3XXX),
+ CLK(NULL, "utmi_p2_gfclk", &dummy_ck, CK_3XXX),
+ CLK(NULL, "xclk60mhsp1_ck", &dummy_ck, CK_3XXX),
+ CLK(NULL, "xclk60mhsp2_ck", &dummy_ck, CK_3XXX),
+ CLK(NULL, "usb_host_hs_utmi_p1_clk", &dummy_ck, CK_3XXX),
+ CLK(NULL, "usb_host_hs_utmi_p2_clk", &dummy_ck, CK_3XXX),
CLK("usbhs_omap", "usb_tll_hs_usb_ch0_clk", &dummy_ck, CK_3XXX),
CLK("usbhs_omap", "usb_tll_hs_usb_ch1_clk", &dummy_ck, CK_3XXX),
- CLK("usbhs_omap", "init_60m_fclk", &dummy_ck, CK_3XXX),
+ CLK(NULL, "init_60m_fclk", &dummy_ck, CK_3XXX),
CLK(NULL, "usim_fck", &usim_fck, CK_3430ES2PLUS | CK_36XX),
CLK(NULL, "gpt1_fck", &gpt1_fck, CK_3XXX),
CLK(NULL, "wkup_32k_fck", &wkup_32k_fck, CK_3XXX),
--That was my problem, and I solved it, but maybe you have other kind of problem... Good luck!
Hi Krcevina,
Thanks for your reply. I tried to flash downloaded Angstrom to flash and surprisingly it worked. Maybe new version included that fix. Also I experienced if I don't set resolution, I get timeout errors again. 800x600, 1024x768, 2048x1536 worked fine but not 640x480 :)
# CONFIG_USB_EHCI_HCD is not set
CONFIG_USB_MUSB_HDRC=y
CONFIG_MUSB_PIO_ONLY=y
UPDATE 3:In case anyone else who has similar problems is interested:* I noticed mjpg_streamer works perfectly with the higher res: mjpg_streamer -i "./input_uvc.so -d /dev/video0 -r 640x480" -o "./output_http.so -w ./www" (starts streaming to http localhost port 8080)* motion will also work flawlessly if you set v4l2_palette 2 (i.e. MJPEG)* I'm using the demo image at http://elinux.org/BeagleBoardUbuntu (Raring 13.04) probably with the default settings (DMA enabled); no other special settings have been used for the uvcvideo module (so no modprobe uvcvideo custom_setting=val or anything like that was required)
On Friday, June 7, 2013 10:15:06 PM UTC+8, Andrei wrote:UPDATE 2:Managed to get the kernel installed (with CONFIG_MUSB_PIO_ONLY) using the instructions here: http://ferryzhou.wordpress.com/2012/04/24/beaglebone-audio-kworker-noise-solution/ but the problem persists. I can't capture at res. above 320x240 (programs hang).Also, tested uvccapture -x640 -y480 -w -m on the Angstrom Linux which comes on board and it hangs as well. The Angstrom Linux that comes with my Beaglebone Black supposedly already has CONFIG_MUSB_PIO_ONLY=y by default.So no, this will not fix the issue on the Beaglebone Black.Any other ideas?Thanks!
On Thursday, June 6, 2013 11:18:23 PM UTC+8, Andrei wrote:Update: it seems that the consensus is that I should set CONFIG_MUSB_PIO_ONLY=y when compiling the kernel.As such, could someone please assist me in doing either:1.) Recompiling the kernel with CONFIG_MUSB_PIO_ONLY=y; how do I do that for an Ubuntu image taken from here: http://elinux.org/BeagleBoardUbuntu (which is apparently using a base kernel from here: git://github.com/RobertCNelson/stable-kernel.git); I just need a few general pointers, I can manage the details...2.) Disabling DMA (that is, setting CONFIG_MUSB_PIO_ONLY=y) at run time, even though it is enabled in the kernel. This option may be easier to do, if possible.Thanks!
On Thursday, June 6, 2013 9:53:14 PM UTC+8, Andrei wrote:Do you guys have any updates on this issue?
I have a Beaglebone Black, and used Ubuntu 13.04 and 12.10 both with the 3.8 kernel and I can only capture at the maximum resolution of 320x240. Very annoying...Is there a definitive fix for this? I read that some recommended to enable DMA whereas others said that DMA has to be disabled. Others said that it used to work with a 3.2 kernel, but I found no image for my Beaglebone Black with the 3.2 kernel (Arch Linux installed using the manual method doesn't work on my Beaglebone Black; at least with Arch Linux I could have had more freedom to tinker with low level things like the kernel etc.).
--
For more options, visit http://beagleboard.org/discuss
---
You received this message because you are subscribed to a topic in the Google Groups "BeagleBoard" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/beagleboard/sgCwaP5RVUo/unsubscribe?hl=en.
To unsubscribe from this group and all its topics, send an email to beagleboard...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.