Monthly Archives: April 2011

Installing Dropbox in Debian/Sid

A few months ago dropbox was a Debian packge in non-free. Recently I noticed that there are several new versions available and tried to notifiy the maintainer and ask him to update the package. But unfortunately it looks like the package is not available any more (Here’s why).

However getting Dropbox is quite easy if you know what to do.

The obvious choice would be to go to dropbox.com and download either the source package and compile it yourself or try to install the precompiled Ubuntu packages. The first option is not really an option for most users and the second one does currently not work on Debian/Sid (aka unstable).

However, there is an easy solution: on the download page search for the CLI script (currently it is named dropbox.py) Download that and run it with python dropbox.py start -i. That will download the propritary binaries into ~/.dropbox-dist. Now go into that folder and start dropboxd. There you go, you have a fully working systray app for dropbox.

Depending on your desktop environment you might want to put dropboxd in your “autostart”. So you don’t have to start the daemon every time you login. And that’s it.

It is not really ideal, since a Debian package would be much better for updates, security, yada yada, but it’s still better than nothing.

Introducing python-ardrone

Flying AR.Drone

The last weeks I spend quite a lot of time hacking on a Python library for the AR.Drone. The AR.Drone is a nice toy for nerds. You connect to it via WIFI and soon you’ll realize that it has 4 ports open. Reading the specs you’ll find, that on one port it listens for AT-Commands with which you can remote control the drone, on the other two ports it waits for an incoming package which will trigger the drone to send the navdata (speed, angles, battery status, etc) and the video stream. Heck, you can even telnet into the drone…

Unfortunately it comes without a proper software to control the drone, only an iPhone app (w/o iPhone of course). But given the documentation, it should be easy to write your own. While getting the beast to fly was relatively easy, decoding the “almost”-jpg-video-stream was not. Almost-jpg, since the images the drone sends are more or less jpg with a small difference which makes it impossible to decode them using standard multi-media libraries. Anyways, the format is documented and implementing a decoder was not that hard. The tricky part was to get the framerates from unacceptable 0.5 FPS to 12-22 FPS — the whole decoder is written in Python. I’m cheating a bit by using psyco, but the code in arvideo.py is heavily optimized to minimize calculations and to please psyco.

In the code is also a small demo app which uses Pygame to display the video stream and allows to control the AR.Drone with the keyboard. It should be ready-to-use as soon as you are connected to the drone via WIFI.

The git repository is here, the license is MIT. Suggestions and patches are welcome.

Here is a video of the drone flying through the office.

Dear Lazyweb

After todays or yesterdays daily package update (Sid) several kernel modules, namely thinkpad_acpi, snd-hda-intel and probably others are not loaded automatically anymore. So my Thinkpad T500 had no support for audio and several power management functions anymore. Once I found out that the missing kernel modules where the problem, the fix was easy: just add the corresponding module names to /etc/modules to enforce loading of the modules. But I wonder what caused the sudden change? Why are the modules not loaded automatically anymore? I usually update my Sid packages every morning so some package update from yesterday or today might have caused this. Looking at the packages which where updated, I found nothing suspicious. Has anyone an idea at which package I should look?

Update: Looks like the problem was related to the recent update of base-files to version 6.2 which introduced the new /run directory in combination with udev. Downgrading base-files to version 6.1 (via snapshot.debian.org) fixed the problem.