Wednesday, March 27, 2013

Leap Motion in Gentoo Linux

Great news for those of you with Leap Motion developer kits, today's 0.7.6 release of the SDK adds linux support. Their package targets ubuntu specifically but I was able to get it working on a gentoo system as well. Here's a preliminary write up of what I did:
  1. Download the 0.7.6 SDK (if you're a Leap developer you know how to get it)
  2. move the developer kit tarball to a convenient temp directory
  3. tar xvzf Leap_Developer_Kit_0.7.6_3012_Linux.tar.gz
  4. this will extract the debian packages- for gentoo we can convert to tarball in the next step using alien.
  5. alien -t Leap-0.7.6-x64.deb
  6. Note: if you're on a 32-bit system use Leap-0.7.6-x86.deb
  7. tar xvzf leap-0.7.6.tgz
  8. the previous step extracted usr and etc directories so now we copy the files from these directories into place:
    sudo cp -ir usr/local/* /usr/local/
    Note that I use -i flag to avoid accidentally overwriting existing files. I wound up just copying all the files into place rather than just the leap-specific ones because the Leap installer has bundled versions of QT libraries and trying to use my system QT libraries was causing a segfault.
  9. sudo cp -ir etc/udev/rules.d/* /etc/udev/rules.d/
    Copying those udev rules should in theory allow you to run the Leap application without superuser privileges, but that did not work for me- I will try to figure this out later.
  10. I'm not sure if these next 3 steps are necessary on gentoo, but just in case- they create the plugdev group if it does not exist, add you to that group, and then reload your session so your group membership is updated without having to logout/login.
  11. groupadd plugdev
  12. sudo usermod -a -G plugdev $USER
  13. exec su-l $USER #refresh group membership
  14. sudo Leap

  15. Assuming that /usr/local/bin/ is in your path- you should just be able to run the Leap command in your shell. You need the Leap application running in the background for any other interactions with the leap device to work. Notice that I had to run the command as root even though I copied in the udev rules. In my case, running LeapPipeline(ostensibly the command line alternative to Leap) without root privileges will give an error like: [00:54:08] [Critical] [EC_NO_DEVICE] Please make sure your Leap device is plugged in.
    Running LeapPipeline with root privileges does not give me any error message, just some debug output and then it quits without doing anything. Running Leap without without root privileges in my case will not give any error messages- everything will simply fail silently, i.e. if you run the visualizer you will get no tracking data.
  16. Visualizer
    Test the cool new gesture features with the visualizer by running the Visualizer command and pressing the letter 'o' to enable drawing gestures. In this screenshot I have traced out a counter-clockwise circle with my finger- which is one of the supported gestures so it is drawn as light blue circular arrow. You can do multi-finger swipes, taps, and circles. See this part of the documentation for more details:

Play with the samples

At the top level of the directory where you unpacked Leap_Developer_Kit_0.7.6_3012_Linux.tar.gz you will see an examples directory. Here is what they look like.

FingerVisualizer

MotionVisualizer

UnitySandbox

Some caveats

At some point a .Leap Motion directory needs to be created in your home directory (note the space between the two words and the leading "."). I'm not sure if this is done by the installer or by the first run of the Leap application. In my case I actually copied the contents of the .Leap Motion folder on my ubuntu system to my gentoo system. In particular, there should be two files in this folder a leapid file and a file that is named something like DEV-12345 (yours will be different). The Leap application is actually a GUI app which resides in your dock/panel, if you use one, but it's not necessary- Leap will run without a panel. I've confirmed that it works with xfce4-panel if you want to see it, but you can access almost all the executables directly from the commandline anyway:
  • /usr/local/bin/Visualizer
  • /usr/local/bin/ScreenLocator
  • /usr/local/bin/Recalibrate
  • /usr/local/bin/LeapPipeline
  • /usr/local/bin/Leap
Post questions if you have any problems.

19 comments:

  1. Definitely helpful. I kept getting frustrated by Device not found error messages when starting 'Leap', and I couldn't seem to understand why. It works perfectly on a Ubuntu install.

    So thanks! Your post clarified the using of root privileges is needed.

    By the way, your instructions work perfectly on Fedora as well. Its more or less how I got mine set up as well, except that I never (and still have not) completed your steps 8, 9 and 10, but thats mainly just personal preference. And I wasn't so careful with the copying of files, but again, personal preference.

    ReplyDelete
  2. If you use Alien to convert the .deb to a .rpm you can just install that and avoid manual copying:

    http://content.hccfl.edu/pollock/AUnix1/alien/

    However, you do have to force the rpm install as a directory is included that is already owned by a base rpm.

    The plugdev group is an Ubuntu hack, but I have not figured out how to run as a non-root user so far...

    ReplyDelete
  3. Hi,

    if you heard of layman you could install leapmotion normally via emerge from my repository http://git.icetruck.de/gitweb/?p=icedev.git;a=summary - the package may be in the main tree soon.^^

    ReplyDelete
  4. Great - One try and it works!
    Gentoo 64bit (Kernel 3.16.5) with Gnome 3.12 on ThinkPad T500

    ReplyDelete
  5. This blog is so nice to me. I will continue to come here again and again. Visit my link as well. Good luck
    obat aborsi
    cara menggugurkan kandungan
    obat telat datang bulan
    obat penggugur kandungan

    ReplyDelete

  6. If some one needs expert view about blogging then i recommend him/her to pay a visit this weblog, Keep up the fastidious work. gmail log in

    ReplyDelete
  7. Hi there, everything is going fine here and ofcourse every one is sharing facts, that's actually fine, keep up writing. itunes sign in

    ReplyDelete
  8. Coach Outlet Store Online is one of the best fashion bags in the world. Coach Outlet Online is known for its best quality bags that are usually used by actresses and also rich people. If you are a person who cares about fashion, I think that you should buy a Coach Factory Outlet Online. If you want to buy this awesome bag, you should find a Coach Outlet Online Store in our online store. Antonio Brown Color Rush Jersey can often be found here for pennies on the dollar. For sports fans out there nothing is better than watching a game and wearing your favorite Detroit Red Wings Standings. Many of the special throwback or Pittsburgh Penguins Standings cost way too much money for each one. Often times we have may players we love so getting all their Chicago Blackhawks Standings would cost way too much money. Many of the popular Cheap NBA Basketball Jerseys sell out quickly. Cheap NHL Jerseys could be truly expensive, most especially if they are authentic and come from real sports stars. Nonetheless if you are opting for affordable ones then there are Wholesale NFL Jerseys then there are actually then you can actually buy some that are good quality. Still you can purchase Cheap Authentic Nfl Jerseys which are in reasonable rates if you try to search for it. You can look around the house or ask permission to roam their closets and you may find one or two Cheap Nfl Nike Elite Jerseys. Well, this could be a nice way for you to get Salute To Service Jersey for free. Also you can purchase Nba Quiz Playbuzz located at salvation army shops which sells Chicago Bears Bleacher Report at dropout price. Maglie Calcio A Poco Prezzo,Maillot Pas Cher Foot,Camisetas De Futbol Comprar,Camisetas De Futbol Baratas

    ReplyDelete