How to get an iPod Nano 6th Gen working in Linux

Apple-iPodNano_2Technically this iPod is not supported, and i did a ton of hunting aound on google before i found the following post

The fix is simple, just download the zip file, and run the installer which copies the libraries over. I have libhashab_mod_14-04-13.tar.gz mirrored so you don’t need a login on the ubuntu site.

tar zvxf libhashab_mod_14-04-13.tar.gz
sudo ./ # or sudo ./ if you are 32bit

Then you just need to open your favourite media application, I found it worked nicely with Banshee, but clementine still had an error (possibly cached or other).

How to make an animated gif from an video in Linux

First you will want to trip your video to the length you need, best to do this in openshot or something. More than a few seconds of video will end up being much larger gif than most will watch 🙂


# Make sure the right tools are installed
apt-get install ffmpeg imagemagick gifsicle # or the equivalent yum/etc
# make a temp directory/folder
mkdir /tmp/gifconvert
# dump 10 frames a second to a temp folder (you can change the size output here too)
ffmpeg -i toycars.mp4  -r 10  /tmp/gifconvert/out%04d.gif 
# Recombine them into a gif
gifsicle --delay=10 --loop /tmp/gifconvert/*.gif > animation.gif

animated gif
If you want to have it go forwards, then reverse, so it appears to be continuous you can change the gifsicle line to go like this (ignore the black border, exported the video wrong from openshot :))

ls -v /tmp/gifconvert/*.gif >/tmp/gif-list
ls -vr /tmp/gifconvert/*.gif >>/tmp/gif-list
gifsicle --delay=10 --loop `cat /tmp/gif-list` >testani.gif

shortanirev gif

All images and the original video come from this amazingly awesome vine video

New Camera – Canon EOS 650D (aka Kiss X6i) – Linux and pink ufraw fun!

I was super happy to recently upgrade to the new Canon 650D. Waited for them to arrive in the country, and the right deal before the purchase.
I happily snapped pics and video all the way home, boy was i impressed. The shutter speed was almost twice the speed of my old 450D, and the video spectacular.
I got home, plugged in the SD card to my laptop, and …..AHHHHHHHHHHHHHHHHHHHHHHHHHH PINK!

A Quick google shoes that the pink overlay created by dcraw and ufraw . I the latest version of dcraw easily compiled and had the problems fixed, no major deal. It was a single and easily compiled.

However, in saying that, i generally use ufraw due to ufraw-batch due to more options and previously posted HDR script, so i was a bit disappointed that there was no patch.
So i downloaded the code for ufraw-0.18 , grepped for strings, found some entries for similar cameras, duplicated the settings. I then checked images for unique identifiers and updated with the correct values. A Couple of compiles later and i have a working ufraw !

Anyway, after all that, i found the cvs version of ufraw now has it patched already, so bit of wasted time, but in case anyone else wants a working copy here is my one
This is compiled on/for 64bit machine, so if you are using otherwise you will need to recompile. If you are running debian you will need to run this to compile

apt-get install libgtk2.0-dev liblcms-dev libgimp2.0-dev libtiff-dev libjpeg62-dev libpng12-dev libexiv2-dev zlib1g-dev libbz2-dev libgtkimageview-dev

Untar, cd ufraw-18-650D/ ; ./configure && make ; ./ufraw file.CR2 . Once that is going just replace the system copy (or make install?)

More instructions at


In case you have a Canon camera and need to add support, its fairly easy. Basically it needs to be told to decode it as a CR2 and what default settings.
Grab a copy of the source, and edit . Search for a string for a camera similar to your own, i used the Canon 550D, so searched for 550D. You will find code that looks like this

{ "Canon EOS 550D", 0, 0x3dd7,
{ 6941,-1164,-857,-3825,11597,2534,-416,1540,6039 } },

This is the default make/model/and a few other settings shown from above it. Copy/paste the lines changing the model (you can tweak them later if you think they are vastly wrong)

Further down you will see

} else if (is_canon && raw_width == 5344) {
top_margin = 51;
left_margin = 142;
if (unique_id == 0x80000270)
adobe_coeff ("Canon","EOS 550D");
goto canon_cr2;
} else if ....

Again, copy/paste a new else if statement, change the model number. The raw_width/margins/unique_id are in a photo you can get off your camera. Use exiftool to grab the exif data from an image and replace it with the correct items. The main thing to get right is the unique_id .

Save and exit that file now and open up wb_presets.c . Again search for the model similar to your own and you will find something similar to this
{ "Canon", "EOS 550D", Daylight, 0, { 2.1426, 1, 1.5488, 0 } },
{ "Canon", "EOS 550D", Shade, 0, { 2.4619, 1, 1.3193, 0 } },
{ "Canon", "EOS 550D", Cloudy, 0, { 2.3066, 1, 1.4258, 0 } },
{ "Canon", "EOS 550D", Tungsten, 0, { 1.5264, 1, 2.3428, 0 } },
{ "Canon", "EOS 550D", WhiteFluorescent, 0, { 1.9072, 1, 2.1973, 0 } },
{ "Canon", "EOS 550D", Flash, 0, { 2.3701, 1, 1.4141, 0 } },

These are just the white balance for different settings based on the camera, feel free to adjust or use them however you want, it may take a recompile or two to get it right. Make sure you change the model name!
Once that is done, compile! that was all there was too it.