Microsoft Webcam on BeagleBoard

Hello,

I am trying to use my webcam on Beagle. I will use it with OpenCV. But, I can’t see its device in /dev folder. Should I install a module or driver?

It’s model is Microsoft LifeCam Cinema. Here is the dmesg output when I connect it.

[ 2686.627441] usb 2-2.3.3: new high speed USB device using ehci-omap and address 8
[ 2686.760894] usb 2-2.3.3: New USB device found, idVendor=045e, idProduct=075d
[ 2686.760925] usb 2-2.3.3: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 2686.760925] usb 2-2.3.3: Product: Microsoft�� LifeCam Cinema™
[ 2686.760955] usb 2-2.3.3: Manufacturer: Microsoft
[ 2687.884826] 8:3:1: cannot get freq at ep 0x82

best wishes,
Mustafa

2011/10/27 Mustafa Aldemir <mustafa@aldemir.net>

Hello,

I am trying to use my webcam on Beagle. I will use it with OpenCV. But, I can’t see its device in /dev folder. Should I install a module or driver?

It’s model is Microsoft LifeCam Cinema. Here is the dmesg output when I connect it.

[ 2686.627441] usb 2-2.3.3: new high speed USB device using ehci-omap and address 8
[ 2686.760894] usb 2-2.3.3: New USB device found, idVendor=045e, idProduct=075d
[ 2686.760925] usb 2-2.3.3: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 2686.760925] usb 2-2.3.3: Product: Microsoft�� LifeCam Cinema™
[ 2686.760955] usb 2-2.3.3: Manufacturer: Microsoft
[ 2687.884826] 8:3:1: cannot get freq at ep 0x82

best wishes,
Mustafa

by the way, I am connecting the webcam through a USB hub since it crashes BeagleBoard without an additional power supply.

Hi,

In order to use webcam you have to install appropriate modules of your webcam.

Thanks,
Jyothi
Tenet Technetronics

Hello,
I am trying to use my webcam on Beagle. I will use it with OpenCV. But, I
can't see its device in /dev folder. Should I install a module or driver?
It's model is Microsoft LifeCam Cinema. Here is the dmesg output when I
connect it.
[ 2686.627441] usb 2-2.3.3: new high speed USB device using ehci-omap and
address 8
[ 2686.760894] usb 2-2.3.3: New USB device found, idVendor=045e,
idProduct=075d
[ 2686.760925] usb 2-2.3.3: New USB device strings: Mfr=1, Product=2,
SerialNumber=0
[ 2686.760925] usb 2-2.3.3: Product: Microsoft�� LifeCam Cinema(TM)
[ 2686.760955] usb 2-2.3.3: Manufacturer: Microsoft
[ 2687.884826] 8:3:1: cannot get freq at ep 0x82

A quick web search turned up an issue that seems to agree with that last line:
http://www.ideasonboard.org/uvc/#footnote-13

"Despite being able to work with lower USB bandwidths, this device
always requests the maximum possible bandwidth, even for the MJPEG
format. Using one of those cameras in conjunction with another USB
device (including the camera internal microphone) will likely fail.
You can tell the uvcvideo driver to estimate the required bandwidth
instead of trusting the camera by setting the FIX_BANDWIDTH quirk.
This will only affect uncompressed formats, and even there there's no
guarantee of success."

Based on the above messages, I'd figure you already have the required module:
http://www.angstrom-distribution.org/repo/?pkgname=kernel-module-uvcvideo

I took a quick look at the driver:
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=blob_plain;f=drivers/media/video/uvc/uvc_video.c;hb=HEAD

It seems that particular device isn't listed, so it doesn't have the
UVC_QUIRK_FIX_BANDWIDTH set. There might be some way to set it using
modprobe, so I suggest you check there.

2011/10/27 Jason Kridner <jkridner@beagleboard.org>

A quick web search turned up an issue that seems to agree with that last line:

http://www.ideasonboard.org/uvc/#footnote-13

“Despite being able to work with lower USB bandwidths, this device
always requests the maximum possible bandwidth, even for the MJPEG
format. Using one of those cameras in conjunction with another USB
device (including the camera internal microphone) will likely fail.
You can tell the uvcvideo driver to estimate the required bandwidth
instead of trusting the camera by setting the FIX_BANDWIDTH quirk.
This will only affect uncompressed formats, and even there there’s no
guarantee of success.”

Based on the above messages, I’d figure you already have the required module:
http://www.angstrom-distribution.org/repo/?pkgname=kernel-module-uvcvideo

I took a quick look at the driver:
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=blob_plain;f=drivers/media/video/uvc/uvc_video.c;hb=HEAD

It seems that particular device isn’t listed, so it doesn’t have the
UVC_QUIRK_FIX_BANDWIDTH set. There might be some way to set it using
modprobe, so I suggest you check there.

Hello,

thanks a lot, Jason.

I installed kernel-module-uvcvideo with the command “opkg install kernel-module-uvcvideo”

Unfortunately, after a reboot Beagle is not starting again :frowning: The welcome screen shows up, but when the progress bar is in the middle it restarts again. Do you think it may be because of the module?

The output is:

Texas Instruments X-Loader 1.5.1 (Jul 20 2011 - 09:50:57)
Beagle xM
Reading boot sector
Loading u-boot.bin from mmc

U-Boot 2011.06-dirty (Jul 19 2011 - 17:30:34)

OMAP3630/3730-GP ES2.0, CPU-OPP2, L3-165MHz, Max CPU Clock 1 Ghz
OMAP3 Beagle board + LPDDR/NAND
I2C: ready
DRAM: 512 MiB
NAND: 0 MiB
MMC: OMAP SD/MMC: 0
*** Warning - readenv() failed, using default environment

In: serial
Out: serial
Err: serial
Beagle xM Rev A
No EEPROM on expansion board
Die ID #21d400219ff80000015eeaa10200c02c
Net: Net Initialization Skipped
No ethernet found.
Hit any key to stop autoboot: 0
SD/MMC found on device 0
reading uEnv.txt

64 bytes read
Importing environment from mmc …
Running uenvcmd …
Loading file “/boot/uImage” from mmc device 0:2 (xxa2)
3195484 bytes read
Booting from mmc …

Booting kernel from Legacy Image at 82000000 …

Image Name: Angstrom/2.6.32/beagleboard
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 3195420 Bytes = 3 MiB
Load Address: 80008000
Entry Point: 80008000
Verifying Checksum … OK
Loading Kernel Image … OK
OK

Starting kernel …

Uncompressing Linux…

… done, booti
ng the kernel.

Beagle xM
Reading boot sector
Loading u-boot.bin from mmc

U-Boot 2011.06-dirty (Jul 19 2011 - 17:30:34)

OMAP3630/3730-GP ES2.0, CPU-OPP2, L3-165MHz, Max CPU Clock 1 Ghz
OMAP3 Beagle board + LPDDR/NAND
I2C: ready
DRAM: 512 MiB
NAND: 0 MiB
MMC: OMAP SD/MMC: 0
*** Warning - readenv() failed, using default environment

In: serial
Out: serial
Err: serial
Beagle xM Rev A
No EEPROM on expansion board
Die ID #21d400219ff80000015eeaa10200c02c
Net: Net Initialization Skipped
No ethernet found.
Hit any key to stop autoboot: 2

A quick web search turned up an issue that seems to agree with that last
line:
Linux UVC driver & tools

"Despite being able to work with lower USB bandwidths, this device
always requests the maximum possible bandwidth, even for the MJPEG
format. Using one of those cameras in conjunction with another USB
device (including the camera internal microphone) will likely fail.
You can tell the uvcvideo driver to estimate the required bandwidth
instead of trusting the camera by setting the FIX_BANDWIDTH quirk.
This will only affect uncompressed formats, and even there there's no
guarantee of success."

Based on the above messages, I'd figure you already have the required
module:
http://www.angstrom-distribution.org/repo/?pkgname=kernel-module-uvcvideo

I took a quick look at the driver:

http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=blob_plain;f=drivers/media/video/uvc/uvc_video.c;hb=HEAD

It seems that particular device isn't listed, so it doesn't have the
UVC_QUIRK_FIX_BANDWIDTH set. There might be some way to set it using
modprobe, so I suggest you check there.

Hello,
thanks a lot, Jason.
I installed kernel-module-uvcvideo with the command "opkg install
kernel-module-uvcvideo"
Unfortunately, after a reboot Beagle is not starting again :frowning: The welcome
screen shows up, but when the progress bar is in the middle it restarts
again. Do you think it may be because of the module?

I know you said you are powering the camera off of a hub, but how are
you powering the BeagleBoard-xM? Do you have a 5V supply to the
barrel jack or are you using the USB to supply power? You might try
using a 500mA 5V power supply over the barrel jack if you aren't
already.

This reboot cycle makes me think that the voltage regulators are
detecting a low voltage and triggering a reboot.

2011/10/27 Jason Kridner <jason.kridner@hangerhead.com>

I know you said you are powering the camera off of a hub, but how are
you powering the BeagleBoard-xM? Do you have a 5V supply to the
barrel jack or are you using the USB to supply power? You might try
using a 500mA 5V power supply over the barrel jack if you aren’t
already.

This reboot cycle makes me think that the voltage regulators are
detecting a low voltage and triggering a reboot.

I had the same problem when I was connecting the webcam directly to Beagle. That’s why I bought a USB hub with external power supply.

I am powering BeagleBoard with a 600mA 5V power supply. Beagle is restarting even without any USB devices.

I just tried the SD card that came with Beagle. It’s working.

Do you think it may be because of the latest module I installed or the upgrades I did with opkg? Can I remove them on my laptop?

I know you said you are powering the camera off of a hub, but how are
you powering the BeagleBoard-xM? Do you have a 5V supply to the
barrel jack or are you using the USB to supply power? You might try
using a 500mA 5V power supply over the barrel jack if you aren't
already.

This reboot cycle makes me think that the voltage regulators are
detecting a low voltage and triggering a reboot.

I had the same problem when I was connecting the webcam directly to Beagle.
That's why I bought a USB hub with external power supply.
I am powering BeagleBoard with a 600mA 5V power supply. Beagle is restarting
even without any USB devices.
I just tried the SD card that came with Beagle. It's working.
Do you think it may be because of the latest module I installed or the
upgrades I did with opkg?

I'm not sure what other upgrades you did, but I doubt that adding the
uvc module would cause this when a USB webcam isn't connected. It
would more likely be due to some other upgrades you might have made.

Can I remove them on my laptop?

I'd need to have an idea what other changes you made. It would be
much easier if your laptop was running Linux and could view the ext3
filesystem on the SD card. It is possible to manipulate the packages
on the card in this manner, though it isn't the best documented.

2011/10/27 Jason Kridner <jkridner@beagleboard.org>

I’d need to have an idea what other changes you made. It would be
much easier if your laptop was running Linux and could view the ext3
filesystem on the SD card. It is possible to manipulate the packages
on the card in this manner, though it isn’t the best documented.

Hello,

I decided to set up the SD card again. I get an error about the partition when I call omap3-mkcard.sh. Is it possible to fix this card? Or is it dead?

bye,
Mustafa

$ sudo ./omap3-mkcard.sh /dev/mmcblk0

1024+0 records in
1024+0 records out
1048576 bytes (1.0 MB) copied, 1.10337 s, 950 kB/s
Disk /dev/mmcblk0 doesn’t contain a valid partition table
DISK SIZE - 2002780160 bytes
CYLINDERS - 243
Checking that no-one is using this disk right now …
OK

Disk /dev/mmcblk0: 243 cylinders, 255 heads, 63 sectors/track

sfdisk: ERROR: sector 0 does not have an msdos signature
/dev/mmcblk0: unrecognized partition table type
Old situation:
No partitions found
New situation:
Units = cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0

Device Boot Start End #cyls #blocks Id System
/dev/mmcblk0p1 * 0+ 8 9- 72261 c W95 FAT32 (LBA)
/dev/mmcblk0p2 9 242 234 1879605 83 Linux
/dev/mmcblk0p3 0 - 0 0 0 Empty
/dev/mmcblk0p4 0 - 0 0 0 Empty
Successfully wrote the new partition table

Re-reading the partition table …

If you created or changed a DOS partition, /dev/foo7, say, then use dd(1)
to zero the first 512 bytes: dd if=/dev/zero of=/dev/foo7 bs=512 count=1
(See fdisk(8).)
./omap3-mkcard.sh: 38: kpartx: not found
umount: /dev/mmcblk0p1: not mounted
mkfs.vfat 3.0.9 (31 Jan 2010)
umount: /dev/mmcblk0p2: not mounted
mke2fs 1.41.14 (22-Dec-2010)
Filesystem label=Angstrom
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
117600 inodes, 469901 blocks
23495 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=482344960
15 block groups
32768 blocks per group, 32768 fragments per group
7840 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912

Warning: could not read block 0: Attempt to read block from filesystem resulted in short read
Writing inode tables: done
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 24 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.

2011/11/1 Mustafa Aldemir <mustafa@aldemir.net>

Hello,

I decided to set up the SD card again. I get an error about the partition when I call omap3-mkcard.sh. Is it possible to fix this card? Or is it dead?

bye,
Mustafa

and dmesg output is here:

[ 3389.597826] mmc0: new SD card at address 0002
[ 3389.598081] mmcblk0: mmc0:0002 00000 1.86 GiB
[ 3389.602089] mmcblk0: p1 p2
[ 3390.819364] EXT3-fs error (device mmcblk0p2): ext3_check_descriptors: Block bitmap for group 1 not in group (block 0)!
[ 3390.827391] EXT3-fs (mmcblk0p2): error: group descriptors corrupted
[ 3437.582880] EXT3-fs error (device mmcblk0p2): ext3_check_descriptors: Block bitmap for group 1 not in group (block 0)!
[ 3437.589340] EXT3-fs (mmcblk0p2): error: group descriptors corrupted