This can be auto-detected and slow GIMP drivers installed.
I much preferTurboPrint. I use YaST to find the printer's `address'. /dev/usb/lp0 does not work well, YaST auto-detected my S800 at `usb://Canon/S800'. Using the address `usb://Canon/S800' in `xtpsetup' works well.
Sadly, my Canon S800 is not consistently found at usb://Canon/S800, and is sometimes `lost' in some great unknown. I wish Linux USB printer handling was as sophisticated as the USB input device handling has become. Correct handling probably requires modification of `udev' settings.
The best utility to find out what is going on with the printer is the CUPS `Manage Printing' program. This can be found in the menus under Utilities--Printing, or alternatively at http://localhost:631/printers/.