Guide: Playstation Eye on Jetson TK1

Hey guys,

I got my Playstation Eye webcam to work on the TK1, it’s pretty simple but here’s a basic guide on how to do it.

  1. You’ll need to re-build the Tegra kernel, so pull the source and follow this guide here: https://devtalk.nvidia.com/default/topic/762653/-guide-build-own-kernel-for-jetson-tk1/

  2. Use menuconfig (make menuconfig) and navigate to Device Drivers -> Multimedia Support -> Media USB Adapters -> GSPCA based Webcams. Scroll down to OV534 OV772x USB Camera Driver (this is the driver for the PS Eye) and press M for modularize.

  3. In order for ov534 to build, I needed to turn off ftrace and gcov kernel profiling due to a linking error. To do this, go back to the highest level on menuconfig and navigate to Kernel hacking -> Tracers ->Kernel Function tracer and exclude this by leaving it blank. Do the same for General Setup -> GCOV-based kernel profiling, make sure both are excluded.

  4. Now it should build, you can go back to the tutorial for kernel flashing. Once finished run a simple lsmod and you should see gspca_ov534 and gspca_main modules loaded. If they aren’t you should be able to modprobe them.

  5. When you’re finished you should get this!

Nice! I’ve added it to the Wiki’s list of working webcams (http://elinux.org/Jetson/Cameras#USB_2.0_webcams_known_to_be_working).

Are you able to get the fast framerates? (eg: 640x480 @ 60 FPS, or 320x240 @ 120 FPS)?

awesome :) i added this module to next grinch kernel :)

Is it possible there is a simpler** way?

regards

Jonathan

**I found upgrading to r21 3.10.40-g8c4516e intimidating,
and building a kernel looks even more stressful…

I remembered this from a few years ago:

“Note that the gspca_ov534 driver is included as an option in kernel 2.6.29”
http://wiki.nuigroup.com/PS3_Eye_on_Linux

so in 21.2 this is very simple:

build kernel as instructed,

Use menuconfig (make menuconfig) and navigate to Device Drivers -> Multimedia Support -> Media USB Adapters -> GSPCA based Webcams. Scroll down to OV534 OV772x USB Camera Driver (this is the driver for the PS Eye) and press M for modularize.

copy zImage to /boot

reboot

wfm

~:"

don’t flash, ignore modules, ignore 3: linking errors

Have you tried using two at once? I am trying to see if it is possible to stream two video cameras on the same usb bus, since i have seen a lot of links that there is not enough bandwidth on regular usb 2.0. Since jetson is usb 3.0 compatible and has higher bandwidth, i was wondering if you had any experience with this yet? Thanks

Hi there,
I am trying to use the PS3 camera with a Jetson with the 21.3.4 grinch kernel, linux version 3.10.40. Whenever I connect the camera or any other camera I have like a microsoft hd cam or logitech c920, I keep getting a green screen. I tried to follow the instructions above but the modules don’t compile. Lsmod indicates the drivers are already installed. Does anyone have any suggestions ?
Green Screen problem https://www.dropbox.com/s/kt1inlijxlk40zi/green_screen.jpg?dl=0
Compile error problem https://www.dropbox.com/s/vbjxdg1ix5ysikt/compile_error.jpg?dl=0
lsmod https://www.dropbox.com/s/le4o83rw387cuhl/lsmod.jpg?dl=0

Yours Sincerely,
Rahul

Just verifying, this is a Grinch kernel on what is otherwise L4T R21.4? What did you use for the “.config” of the kernel compile starting point (did it match a running unmodified Grinch kernel)? [I’m looking to reproduce the compile error]

I think I flashed the jetson with L4T R21.3. I used to be running LT 19.3.6 with its grinch kernel but I had the same green screen problem. I thought maybe flashing the jetson to a newer version to let me get the camera working. I installed the corresponding grinch kernel for 21.3 and I then followed the same instructions as in
https://devtalk.nvidia.com/default/topic/762653/-guide-build-own-kernel-for-jetson-tk1/

Should the PS3 camera work with a newly flashed jetson with L4T R21.3 with the grinch kernel out of the box or do we need to change anything else? I tried this but I still got a green screen which is why I started following the tutorial. I can see that OV534 driver is enabled. Do I need to enable/disable something else?

Here’s a general information page on some cameras (PS3 eye is mentioned here, along with extra steps required…I do not personally have one of these so I can’t test):
http://elinux.org/Jetson/Cameras

You mentioned you have the same issue with the Logitech C920, which is a known working camera, although I’m using it on R21.4. Using “luvcview” on R21.4 default kernel (other support packages are added, but the kernel is unmodified) I’m able to use the C920 without issue. Does the C920 or any other camera have the green screen issue with luvcview? What commands are you using? (I’m concentrating on the C920 because I have one to work with and quite possibly fixing this will fix the PS3 camera)

I haven’t tried it with Luvcview. I got the green screen issue with c920 when running cheese, vlc and mplayer. I can try flashing it with R21.4 and see if it works then. Did you install grinch kernel in that or did it work without any modifications?

This is from the default kernel. Incidentally, before and after connect and use of the C920 I see no change in kernel modules, so the kernel for default R21.4 has whatever it needs built in.

One observation which may be related or maybe not. When I run a remote ssh -Y session from my desktop or directly on Jetson luvcview works as expected. My desktop does not support EGL, although it does support OpenGL…and cheese works as expected run directly from Jetson but does not function remotely (lack of EGL). There may be other dependencies besides kernel driver or the end application which are interfering for your situation.

I flashed it with R21.4 now and I didn’t install the grinch kernel. It recognizes the camera correctly but when I open luvcview, I get a dark screen for 1 second and then it closes with error messages. I implemented the autosuspend feature as well but no luck. The camera was connected to the jetson via a usb hub which also had a keyboard attached. I noticed that you seemed to have a similar dicussion before with some one else. I checked if I had enabled usb3.0 but it is usb2.0 so that is not the problem either.

lsusb:

luvcview errors:

At the stage where yours is failing I see “find DRI”. What it comes down to is that I have additional packages added for support of display. I don’t know which package(s) you are missing, but this particular Jetson has had CUDA and OpenCL added, along with a number of other updates.

In general, here are the steps I’ve used for package additions after flash which may help you (keep in mind you can get the CUDA and OpenCV from R21.4 downloads page; I’d already added several repositories and had access to the internet via forwarding from my desktop…direct access to the internet via dhcp without changing passwords is dangerous):

dpkg -i cuda-repo-l4t-r21.3-6-5-prod_6.5-42_armhf.deb
apt update
apt-get upgrade
apt update

(apt-get install cuda-toolkit-6-5)
        apt-get install cuda-toolkit-6-5 debian-keyring g++-multilib g++-4.8-multilib gcc-4.8-doc libstdc++6-4.8-dbg libice-doc libsm-doc libstdc++-4.8-doc libxcb-doc libxext-doc libxt-doc libsfstdc++6-4.8-dbg libsfstdc++6-4.8-dbg

usermod -a -G video <username>

dpkg -i libopencv4tegra-repo_l4t-r21_2.4.10.1_armhf.deb
apt update

apt-get install libopencv4tegra libopencv4tegra-dev
(apt-get autoremove ...unused...)

For camera, apt-get install luvcview.

Hi Linuxdev,
I installed the other packages you mentioned above. I still get the same error. I then tried changing usb hubs but then I got ‘Protocol errors’. I havent taken any pictures but I can post them tomorrow.
Rahul

Like I said yesterday, the errors are the same with the additional software & drivers installed. Is there anything else you did differently ? I am not using ssh.

same error- after software installed
https://www.dropbox.com/s/ftojnhzexqctbjh/space_error.jpg?dl=0

protocol error- after changing hub
https://www.dropbox.com/s/yodd56ybl196993/different_usb_hub_error.jpg?dl=0

I don’t know what causes it, but other people have seen protocol error, no space left on device, when using multiple cameras…perhaps sending data too fast. But was this even with the Logitech C920 webcam? That particular camera should work fine on USB2. The PS camera is a different story, it can put out USB3 bandwidth. From what I can see this is happening with the C920, and it shouldn’t.

The only thing I did “different” is to install all of the other software first, possibly changing some sort of link order compared to what you have.

Anyone here have any information on what causes the protocol error, no space left on device? He has only one camera, same as the one I’m testing (Logitech C920), and this camera is only USB2. All I can think of right now is either order of installation due to linking, or a hardware issue (even if it is just a cable not seated).

Hi linuxdev,
I got a microusb to usb cable and was able to get the camera working by connecting it to the microusb port on the jetson. Thank you for your help!
Rahul

You’re welcome.

FYI, for those needing to use the micro-USB port as a regular port (not as a device nor for flash), here is a “correct” micro-A to full-size-A cable (these are hard to find, most are micro-B/OTG instead of micro-A):
http://www.digikey.com/product-detail/en/0/839-1105-ND