ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Can't find Point Grey Camera in a new virtual machine

asked 2013-01-08 17:44:41 -0500

AdrianPeng gravatar image

updated 2014-01-28 17:14:46 -0500

ngrennan gravatar image


I have used POINT GREY FIREFLY MV FMVU-13S2C digital camera to work on Ubuntu 10.04 and ros electric(I am gonna call it VM1) and it worked very well. But when I install another virtual machine (Ubuntu 10.4 and ros electric also)(I am gonna call it VM2), the camera cannot be found.

I remember the steps that I got the camera worked in VM1 are:

  1. install camera drivers by "sudo apt-get install ros-electric-camera-drivers"
  2. Create an udev rule for usb adapter to recognize Grey Firefly MV USB camera by "sudo gedit /etc/udev/rules.d/40-pgr.rules" and add the following text into it.

ATTRS{idVendor}=="1e10", ATTRS{idProduct}=="2000", MODE="0664", GROUP="pgrimaging"
ATTRS{idVendor}=="1e10", ATTRS{idProduct}=="2001", MODE="0664", GROUP="pgrimaging"
ATTRS{idVendor}=="1e10", ATTRS{idProduct}=="2002", MODE="0664", GROUP="pgrimaging"
ATTRS{idVendor}=="1e10", ATTRS{idProduct}=="2003", MODE="0664", GROUP="pgrimaging"
ATTRS{idVendor}=="1e10", ATTRS{idProduct}=="2004", MODE="0664", GROUP="pgrimaging"
ATTRS{idVendor}=="1e10", ATTRS{idProduct}=="2005", MODE="0664", GROUP="pgrimaging"
ATTRS{idVendor}=="1e10", ATTRS{idProduct}=="3000", MODE="0664", GROUP="pgrimaging"
ATTRS{idVendor}=="1e10", ATTRS{idProduct}=="3001", MODE="0664", GROUP="pgrimaging"
ATTRS{idVendor}=="1e10", ATTRS{idProduct}=="3002", MODE="0664", GROUP="pgrimaging"
ATTRS{idVendor}=="1e10", ATTRS{idProduct}=="3003", MODE="0664", GROUP="pgrimaging"
ATTRS{idVendor}=="1e10", ATTRS{idProduct}=="3004", MODE="0664", GROUP="pgrimaging"
ATTRS{idVendor}=="1e10", ATTRS{idProduct}=="3005", MODE="0664", GROUP="pgrimaging"
KERNEL=="raw1394", MODE="0664", GROUP="pgrimaging"
KERNEL=="video1394*", MODE="0664", GROUP="pgrimaging"
SUBSYSTEM=="firewire", GROUP="pgrimaging"

  1. then I follow

Install the modules

modprobe ohci1394
modprobe video1394
modprobe ieee1394
modprobe raw1394

Create proper 1394 devices

cd /dev
mknod raw1394 c 171 0
chmod 666 /dev/raw1394
mkdir video1394
cd video1394
mknod 0 c 171 16
mknod 1 c 171 17
chmod 666 /dev/video1394/*

Set user paths

su user

Check for the LD_LIBRARY_PATH. It should contain /usr/local/lib. This is necessary to run the applications with the help of the shared object file.

I applied exactly same steps to VM2. however, when I run "rosrun camera1394 camera1394_node", camera cannot be found.

Following are some outputs of VM1 and VM2 for your information.

terminal: lsusb -t

1-1:1.0: No such file or directory
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
    |__ Port 1: Dev 2, If 0, Class=HID, Driver=usbhid, 12M
    |__ Port 1: Dev 2, If 1, Class=HID, Driver=usbhid, 12M
    |__ Port 2: Dev 3, If 0, Class=hub, Driver=hub/7p, 12M
        |__ Port 1: Dev 4, If 0, Class='bInterfaceClass 0xe0 not yet handled', Driver=btusb, 12M
        |__ Port 1: Dev 4, If 1, Class='bInterfaceClass 0xe0 not yet handled', Driver=btusb, 12M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci_hcd/6p, 480M
    |__ Port 1: Dev 6, If 0, Class=vend., Driver=, 480M
    |__ Port 2: Dev 3, If 0, Class='bInterfaceClass 0x0e not yet handled', Driver=uvcvideo, 480M
    |__ Port 2: Dev 3, If 1, Class='bInterfaceClass 0x0e not yet handled', Driver=uvcvideo ...
edit retag flag offensive close merge delete


Are you running both VM's at the same time on the same real machine? It is probably not possible for both to connect to a single USB device. Even back-to-back tests might encounter problems with device allocation between the virtual machines.

joq gravatar image joq  ( 2013-01-09 05:07:27 -0500 )edit

I restart the computer and only open one VM, but it still doesn't work. I noticed that raw1394, ohci1394, video1394, ieee1394 have been removed once I restart the computer. Is there a way to permanently install these modules?

AdrianPeng gravatar image AdrianPeng  ( 2013-01-09 16:25:53 -0500 )edit

They should get loaded automatically when a 1394 device is detected. The modprobe command can load them manually. You can put those commands in /etc/rc.local, but it should not be necessary.

joq gravatar image joq  ( 2013-01-09 16:33:26 -0500 )edit

But in VM2, the modules are not automatically loaded when I plug in the camera. And in VM1, even I didn't plug in the camera, the modules are still there and they won't be removed after restart the VM.

AdrianPeng gravatar image AdrianPeng  ( 2013-01-10 08:21:19 -0500 )edit

And I list the devices of VM1 and VM2. I found VM1 has devices raw1394, v4l and video0 which VM2 doesn't have. I guess video0 is my webcam, I don't know why I even cannot recognize webcam.

AdrianPeng gravatar image AdrianPeng  ( 2013-01-10 08:23:55 -0500 )edit

Ok, I just forgot to connect my webcam to VM2. So it's only raw1394 that VM2 doens't have but VM1 does have.

AdrianPeng gravatar image AdrianPeng  ( 2013-01-10 08:37:33 -0500 )edit

I suspect that it is the "host adapter" that gets allocated to VM1 and triggers those loads. I don't believe that hardware interface can be shared between multiple VM's.

joq gravatar image joq  ( 2013-01-10 09:55:31 -0500 )edit

I reinstalled the ubuntu on real machine (not virtual). But the problem still exists, there is no raw1394 after I plug in the firewire camera.

AdrianPeng gravatar image AdrianPeng  ( 2013-01-10 16:19:55 -0500 )edit

1 Answer

Sort by ยป oldest newest most voted

answered 2013-01-10 17:38:22 -0500

AdrianPeng gravatar image

updated 2015-03-22 04:04:39 -0500

130s gravatar image

Solution can be found in the answer to another question.

edit flag offensive delete link more


Better consolidate resource and avoid duplicate (for better maintenance). I've replaced all the text with just a link to your answer in another thread.

130s gravatar image 130s  ( 2015-03-22 04:06:04 -0500 )edit

Question Tools


Asked: 2013-01-08 17:44:41 -0500

Seen: 2,402 times

Last updated: Mar 22 '15