I bought refillable ink cartridges for my Canon MP550 and generic ink bottles from a Chinese store.
I have so far managed to manually adjust the color options in the printer dialog to match the result that I got from original Canon cartridges and have gotten almost the same look.

Printer dialog: http://pic.useful.fi/9893b70af285a19c6d0daea230380277.png
However, the ink bottles are running out and the next batch is more likely going to need the same manual adjustment that takes for ages and wastes ink and paper.
Is there a cheap way to calibrate the printer without having to print tens of pages trying to manually tweak the colors?
I've seen some applications that use a test image that can be scanned with a regular scanner to generate an ICC profile, but the ones I found only work with really old Windows (98) and Photoshop. I'm trying to do this with OS X, Ubuntu or if no other option, Windows 8 virtual machine.