Linux Install

Linux Installation logs

Linux Debian on a DELL M4800

0) the configuration

  • Disk: SSD 256Gb LITEONIT
  • Processor: Intel Core i7 4900MQ
  • RAM: 16 Gb
  • Graphics: Quadro K2100M
  • Screen: 3200x1800
  • OS: Linux Debian Testing (Jessie), Kernel 3.13-1
  • BIOS: A05 updated to A07 (see below how to do that under Linux)


  • What does not work: SDCard reader (issues a message during boot), going from graphics mode to a console in text mode (screen remains black, looks like an ACPI issue)
  • What works: everything else

1) disk partitioning and basic installation

  • Use the Debian disk just to boot the system and obtain a shell (I do not remember the exact option)
  • I created a big partition in the whole disk, starting at block 4096 (default).
  • I could not find the information on erase block size for the LITEONIT SSD anywhere,so I'm using the default parameters ( hdparm -I /dev/sda reports model type, i.e. LITEONIT LCS-256M6S 2.5 7mm 256GB but I did not find erase block size information on the internet for this model)
  • Create the filesystem

mkfs.ext4 -b 4096 /dev/sda1

  • Restart installation, select manual partitioning, edit partition, set use as ext4 , mount point: / , additional flags: discard, noatime

these flags are useful for SSDs, discard uses block erase capabilities of SSDs, and noatime prevents the system for recording last access time in every files.

  • First boot: edit booting options, remove load_video and add flags: nomodeset text

nomodeset means that the console remains in text mode, and text means that the system will not attempt to start X11 graphics mode (it seems that the shipped drivers cannot drive the ultra HD screen)

  • edit /etc/default/grub , find the line GRUB_CMDLINE_LINUX_DEFAULT="quiet" and replace it with GRUB_CMDLINE_LINUX_DEFAULT="quiet nomodeset
  • add blacklist nouveau in /etc/modprobe.d/blacklist.conf (create the file if it does not exist)
  • update-grub
  • rmmod nouveau
  • aptitude install build-essential linux-headers-amd64 linux-headers-amd64-all
  • Install NVIDIA driver (load it from NVIDIA's website)
  • dpkg-reconfigure linux-image-3.13-1-amd64 (this re-creates the ramdisk that contains the device drivers, including the new NVidia driver, and re-initializes the grub boot loader)
  • restart the system shutdown -r

Normally, it will boot in graphics mode (and you will see tiny tiny icons, there are far too many pixels in this screen !!)

2) Fine tuning

  • RAMDISK for /tmp: edit /etc/fstab and add the following line:

none /tmp tmpfs defaults,nosuid,nodev 0 0 This puts /tmp in a RAMDISK (important for a SSD)

  • Remove NVidia logo: edit /etc/X11/xorg.conf , in the Section Screen , add the following line: Option "NoLogo" "yes"
  • Have a standard font during boot: edit /etc/default/console-setup , replace FONTFACE="Fixed" with FONTFACE="VGA"
  • Make screen contrast hotkeys work: edit etc/default/grub , find the line GRUB_CMDLINE_LINUX_DEFAULT="quiet nomodeset" and replace it with GRUB_CMDLINE_LINUX_DEFAULT="quiet acpi_osi=\"!Windows 2012\" acpi_backlight=vendor" then do update-grub , then hotkeys will work at the next boot (but they are not very reactive though).
  • Paper size (for French folks): edit /etc/papersize -> A4 and in .bashrc : export LC_PAPER=A4

Linux Debian on a DELL M4600

First impressions about the machine:

  • [+] It looks robust and nice.
  • [-] Gosh ! it is significantly bigger and heavier than the M4400 (no longer fits in my backpack).
  • [+] There is a numeric keypad, nice ! (using 'blender' will be much easier).
  • [+] Colors look excellent on the screen.
  • [-] The disk is from Seagate
  • [+] Performance is excellent
  • [+] Opening the machine is very easy (e.g. to cleanup the fans)
  • [-] The pageup/pagedown keys are very near the arrow keys (I press them accidently too often when editing text files)

0) the configuration

  • Disk 1 (sda): 500 GB ST9500423AS
  • Disk 2 (sdb): SAMSUNG SSD PM810 mSATA 128GB
  • Processor: CORE i7 2720QM 2.20 GHz
  • RAM: 8 GB
  • Graphics: NVidia Quadro 2000M
  • Screen: 1920x1080 RGB led
  • OS: Linux Debian testing (Wheezy), kernel 3.1.0-1-amd64 [edit: updated to 3.2.0-3-amd64]
  • BIOS: version A08 updated to A13 (see below how to do that under Linux)


  • What does not work: SDCard reader, suspend to RAM (sometimes work, sometimes fails, due probably to some ACPI issues) [edited 09/09/2012: I just updated the BIOS to A13, and will test whether this fixed the issues)]
  • What works: everything else

This is a nice opportunity to do some experiments with SSDs (put the system on it) and keeping a plain old HDD for the data, to avoid risks (however, this is a STxxxx from Seagate, I had a couple of bad experiences with Seagate, we will see...). Edited: I was further worried when taking a look at the S.M.A.R.T. status of the seagate drive (in Accessories/Disk utility), but in fact high 'seek error rate' is perfectly normal since seagate S.M.A.R.T. data contains the total number of seeks in the least significant bits (in addition to the seek errors in the most significant bits), see this link.

For now, it's great, the machine boots in 15-20 seconds, and is very reactive. Nearly everything works (network, wifi, graphics with proprietary NVidia driver, webcam, suspend to disk). Note: since my swap partition is on the HDD, cold booting is (a bit) faster than re-starting after suspend to disk (but it is still good to have it for avoiding loosing all your work when you run out of battery).

Note: rebooting (e.g., using shutdown -r ) needs a special kernel flag ( reboot=pci in /etc/defaults/grub , GRUB_CMDLINE_LINUX_DEFAULT ), this is because there are some problems with ACPI (used by default for rebooting).

There are two error messages at boot time:

  • can't evaluate _CRS: 12311

(this is probably related with ACPI rebooting that does not work).

  • 0b:00.01 invalid iomem size, you may experience problems

It comes for the SD card reader (so I deactivated it from the BIOS)

Sometimes ACPI driver / daemon fail to initialize properly (then acpi -V displays nothing and the icon that shows the level of the battery is not displayed). I uncommented the line MODULES="all" in /etc/default/acpid, we will see whether this fixes the problem...

1) disk partitioning and basic installation

Note before starting: optimus (dual graphics card) needs to be deactivated in the BIOS (optimus is not supported by Linux).

The system is installed on the SSD, /home and /var on the HDD and /tmp in RAM as follows:

   /dev/sdb1    /      128 GB (whole disk)
   /dev/sda1    /var   5   GB (its probably too much...)
   /dev/sda2    swap   8   GB (I need that for 'suspend to RAM')
   /dev/sda3    /home         (all the rest)

Partitions of the HDD (sda):

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1            2048    10487807     5242880   83  Linux
/dev/sda2        10487808    27265023     8388608   82  Linux swap / Solaris
/dev/sda3        27265024   976773167   474754072   83  Linux

Partitions of the SSD (sdb):

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1   *         256   250060799   125030272   83  Linux

(it is advised to start at 256, for making sure the partition is aligned. It cannot start at 0 since the partition table uses some space).

The file system on the SSD needs to be created with special flags: mkfs.ext4 -b 4096 -E stride=32 /dev/sdb1 This can be done from the Debian net install CD, in expert mode, by using the 'start shell' entry in the menu. Then when selecting the mount point of the partitions, make sure that /dev/sdb1 is marked as 'keep data' (and not 'format this partition'). Add the 'noatime' option in the mount flags for /dev/sdb1 (advised for SSD, avoids some unnecessary writes to the file system). The 'discard' option (TRIM mode for SSD) can be added afterwards, by editing /etc/fstab directly.

GRUB needs to be installed in the MBR of /dev/sdb (if you keep the default BIOS setting for boot order, i.e. SSD first).

1.1) Tuning

Partitions and mount flags

After the installation and reboot (note: you may need to hold the power button, ACPI reboot does not seem to work), some adjustments can be made in /etc/fstab as follows:

# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc            /proc           proc    defaults        0       0
# / was on /dev/sdb1 during installation
UUID=a246ef69-9587-4086-9151-xxxxxxxxxxxx /               ext4    errors=remount-ro,noatime,discard 0       1
# /home was on /dev/sda3 during installation
UUID=3ffbfe88-41f4-4d8a-8dbc-xxxxxxxxxxxx /home           ext4    defaults        0       2
# /var was on /dev/sda1 during installation
UUID=b49b6d46-259b-48dc-a143-xxxxxxxxxxxx /var            ext4    defaults        0       2
# swap was on /dev/sda2 during installation
UUID=e6eabe09-66c5-490d-91c6-xxxxxxxxxxxx none            swap    sw              0       0
/dev/sr0        /media/cdrom0   udf,iso9660 user,noauto     0       0
none            /tmp            tmpfs       defaults,nosuid,nodev 0  0

UUIDs are just like /dev/sdxy, but more robust to configuration changes (use blkid /dev/sdxy to find them). I have added the 'discard' option to /dev/sdb1 (TRIM mode for SSD). Note also that /tmp is mounted in RAM.

TRIM is supported by this SSD (as reported by hdparm -I /dev/sdb . I also checked that the blocks corresponding to a file are zeroed when deleting the file.

Disk IO scheduler

I have read somewhere that the disk scheduler of ext4 is not optimum for SSDs, and I have read somewhere else that the problem is fixed in recent kernels (so I kept the default disk scheduler). To display the used disk scheduler: cat /sys/block/sdb/queue/scheduler

This will display something like noop deadline [cfq] saying that among (noop, deadline, cfq), cfq is used.

Now check whether the system knows that it is a SSD: cat /sys/block/sdb/queue/rotational If it says 0, then it is OK (and you do not need to change the scheduler).

1.2) Other stuff to install

Install the firmware for the WIFI: aptitude install firmware-iwlwifi

2) NVidia driver installation

There is in the kernel a NVidia driver called "nouveau" that changes the video mode in the console. It's slick, but it has a major drawback: it is incompatible with NVidia's kernel module. To disable it:

  • In /etc/default/grub , find the line:

and replace it with

   GRUB_CMDLINE_LINUX_DEFAULT="quiet nomodeset reboot=pci"
(if /etc/default/grub does not exist, do update-grub , it will create it).
  • add blacklist nouveau in /etc/modprobe.d/blacklist.conf (create the file if its not there)
  • then:
  • Reboot the machine (graphics mode will use lower resolution but do not worry, fullres will come back when the NVidia driver is installed), and make sure 'nouveau' is not there:

lsmod | grep nouveau should display nothing.

  • Install minimal development tools and kernel header files (needed to build the NVidia kernel module):

aptitude install build-essential linux-headers-3.1.0-1-amd64

  • Download the NVidia installer from NVidia website, use Linux x86_64/AMD64/EM64T. In case you need a Beta driver, they are here. See also NVidia's BBS (but unless you have a specific need, I recommend to use the standard version).
  • Stop session manager and X server. From a text console:

/etc/init.d/gdm3 stop

  • Install NVidia driver

export CC=gcc-4.6 (kernel modules need to use the same compiler as the kernel) sh -f (you can let it generate /etc/X11/xorg.conf for you)

  • Re-generate initrd (ram disk image with all the drivers)

dpkg-reconfigure linux-image-3.1.0-1-amd64

  • Make sure the X server works

startx If it is OK, you can logout from the graphics environment

  • Restart session manager and X server

/etc/init.d/gdm3 start

Command-line tool for mode change

You know this situation: You are supposed to give a presentation, and you only got a couple of seconds to setup the configuration. With nvidia-settings you need to click here and there before displaying anything, very stressful. There is a very nice line command tool that makes it much easier, it is called 'disper'. Install it with aptitude install disper. Then:

  • cloning: disper -c
  • cloning with specified resolution: disper -c -r 1024x768
  • send only to beamer (if cloning does not work): disper -S -r 1024x768
  • back to single screen: disper -s
  • dual screen, extended desktop: disper -e
  • dual screen, extended desktop with second screen on top of the first one: disper -e -t top

Note: the same thing can be done with the standard xrandr command, and there is also a 'nv-control-dpy' command line utility in the sources of nvidia-settings, in the samples/ subdirectory (but both are more difficult to use than disper).

With the NVidia driver, I experienced some problems with some videoprojectors (it was only able to do 640x480). This is because the driver is too restrictive about what it considers to be a "valid" mode. This can be fixed by disabling "mode validity checks" for what is plugged on VGA (referred to as "CRT-0" by the driver):

Edit /etc/X11/xorg.conf and add the following line in the "Screen" section: Option "ModeValidation" "CRT-0: NoHorizSyncCheck, NoVertRefreshCheck"

Edited (06/24/2012): this no longer works with the latest release of NVidia driver (302.17), that has this new 'ViewportIn/ViewportOut' system for fine-tuning scaling/panning etc... (good but annoying that they did not keep this 'just choose for me and rescale to whole screen'). So for now I keep the 'long-lived branch' 295.59 (I do not want to get stuck when I am supposed to give a presentation...)

Edited (09/09/2012): It seems this is because the new driver is (even more) picky about mode validation. I added the following line in /etc/X11/xorg.conf: Option "ModeValidation" "DFP-0: AllowNonEdidModes" and the 1024x768 resolution (together with all the VESA mode) came back for the internal flat panel (without that, you can only get the native resolution of 1920x1080). I was able to figure out what was going on by doing startx -- -verbose 6 -logverbose 6 in order to see the results of mode validation (and it was rejecting the standard resolutions as follows:)

[   835.622] (II) NVIDIA(GPU-0):   Validating Mode "1024x768":
[   835.622] (II) NVIDIA(GPU-0):     1024 x 768 @ 60 Hz
[   835.622] (II) NVIDIA(GPU-0):     Mode Source: X Server
[   835.622] (II) NVIDIA(GPU-0):       Pixel Clock      : 65.00 MHz
[   835.622] (II) NVIDIA(GPU-0):       HRes, HSyncStart : 1024, 1048
[   835.622] (II) NVIDIA(GPU-0):       HSyncEnd, HTotal : 1184, 1344
[   835.622] (II) NVIDIA(GPU-0):       VRes, VSyncStart :  768,  771
[   835.622] (II) NVIDIA(GPU-0):       VSyncEnd, VTotal :  777,  806
[   835.622] (II) NVIDIA(GPU-0):       H/V Polarity     : -/-
[   835.622] (WW) NVIDIA(GPU-0):     Mode is rejected: Only EDID-provided modes are allowed on
[   835.622] (WW) NVIDIA(GPU-0):     LGD (DFP-0) (continuous frequence modes not allowed).

However, disper does not seem to operate properly anymore. When I give a presentation, I am now using: nvidia-settings --assign CurrentMetaMode="DFP-0: nvidia-auto-select @1024x768 +0+0 {ViewPortIn=1024x768}, CRT-0: 1024x768 @1024x768 +0+0"

3) Dammit ! gnome3 !

Argh ! I do not like gnome3 ! (it's slick, but for me it's completely unusable, if I wanted that, I'd buy a mac !) Fortunately they got a 'gnome-fallback' mode that behaves nearly like the previous version. Once logged as a user, do: gsettings set org.gnome.desktop.session session-name gnome-fallback then logout, login and you'll have something more "reasonable", at least from my point of view.

If you want compiz, do: aptitude install fusion-icon compiz compiz-core compiz-fusion-bcop compiz-fusion-plugins-main compiz-fusion-plugins-extra compiz-gnome compiz-gtk compiz-plugins compizconfig-backend-gconf compizconfig-settings-manager and add fusion-icon in the startup programs (use gnome-session-properties , add an entry named 'Fusion icon' with a command fusion-icon). I am using the 'Desktop wall','Zoom Desktop', 'Window Decoration', 'Fading Windows' plugins.

Note: due to a weird thing in gnome3, you cannot modify the status bar (previously left click, now <Alt> left click) when compiz is running, so you need to switch back to 'metacity' (select window manager in the menu of fusion-icon) to do changes in the configuration of the status bar.

To be able to do some tweaking: aptitude install gnome-tweak-tool gnome-themes gnome-themes-extra metacity-themes

Edit (07/02/2012): To give it a try, I switched back to gnome3. List of things to know:

  • virtual desktops are stacked vertically! (<ctrl><alt><up>/<down> to switch), I am unsure I can get used to that
  • <alt><F2> allows to quicly launch a command
  • Other key bindings can be created in preferences/keyboard (I like to bind <ctrl><alt><spacebar> to gnome-terminal)
  • To replace the Windows theme with a simpler one: aptitude install gnome-tweak-tool
  • Many extensions can be very easily installed and configured from

4) Shut-up !!

There is a terribly annoying 'beep' when shutting down the computer. Many forums suggest to blacklist the pcspkr module, but it does not work (it seems that the 'beep' is now managed by something else). Here is a method that works (at least for me)...

  • invoke alsamixer from a terminal window
  • press F6, select HDA Intel PCH from the menu
  • Select the <Beep> slider, and mute it by pressing M

Rem1: depending on your hardware, it may be different...

Rem2: the 'beep' sound is emitted by the wall command, therefore another solution (if the first one does not work) may be to edit the script that sends the message to all the consoles (probably somewhere in /etc/init.d ...)

Edited: it seems to be there (in /proc/bus/input/devices):

I: Bus=0001 Vendor=111d Product=76e7 Version=0001
N: Name="HDA Digital PCBeep"
P: Phys=card0/codec#0/beep0
S: Sysfs=/devices/pci0000:00/0000:00:1b.0/input/input7
U: Uniq=
H: Handlers=kbd event7 
B: EV=40001
B: SND=6

Edited: Argh ! after an update, the rebooting sound came back (but it is now a little two-tones melody, more discrete than the previous 'BEEP')...

5) Microsoft Office (and other Windows application)

See the page about wine

Why installing Microsoft Office ? Because even if Windows is far from Linux, I think the situation is inversed when comparing OpenOffice and Microsoft Office. In particular I like using PowerPoint to design presentations. Now this "wine" thingy (the "not-an-emulator" for Windows) works quite well.

6) xvidcap (video capture tool)

xvidcap is available in the debian-multimedia repository, but there may be some compatibility problems with some libraries (e.g. libavformat) that conflict with the ones installed in Debian wheezy (but the one for Debian squeeze seems to be OK with Debian wheezy !!!)

  • 1) add deb squeeze main non-free in /etc/apt/sources.list
  • 2) aptitude update
  • 3) apt-get install debian-multimedia-keyring
  • 4) aptitude install xvidcap
  • and aptitude install libdvdcss if you need it
  • 5) remove from /etc/apt/sources.list
  • 6) aptitude update

7) Panic ! what to do if you mess-up your BIOS settings

I wanted to experiment with SATA mode in the Bios setting, and switched from Raid to AHCI, then my Grub could not see the hard drive anymore. I switched to ATA (do not ask me why), and it was even worse: not only the machine could not boot, but I had no longer access to the BIOS setup (tryed pressing F2 or F12, nothing worked), this is probably because ATA mode is incompatible with the miniSSD.

I was able to fix that by

  • remove the hard drive, see this link to see how to do that
  • start the machine (without the HDD), press F2, change the bios setting (SATA mode to Raid)
  • reassemble everything
  • restart, press F2, in "boot order", move the miniSSD as the first device to boot
  • reboot, pfiuuuuu, everything is back now !!!

Besides a stressful experience, it was a good opportunity to see how to open the machine, it is useful to do that once a year to cleanup the fans.

Note: BTW, I do not know where this miniSSD is (and it does not seems to be mentioned in DELL's website above)

8) Misc

  • The console font looks very thin, I prefer the standard VGA one. The console font is specified in /etc/default/console-setup, replace FONTFACE="Fixed" with FONTFACE="VGA" (and invoke /etc/init.d/console-setup restart to see the effect).

9) Updating the bios

Note1: updating the bios may be a risky operation. If something goes wrong, then your system may become completely unusable, without any possibility of repairing it, you have been warned !!

Note2: in what follows, M4600A13.exe is the BIOS update that I downloaded from, it may be a different name depending on your machine (M4600 for me) and BIOS version (A13 here).

There is a standard way of updating the bios under Linux, see how to upgrade DELL BIOS under Linux. Unfortunately, this only works if you have a .HDR file for your BIOS, and DELL's repository of HDR files is now deprecated. There is normally a way of extracting a HDR file from an EXEcutable BIOS update, using M4600A13.exe /writehdrfile but it did not work for me (I tryed both under WINE and on a Windows machine). Therefore I used the following protocol:

  • 1: Download freedos USB disk image from:


  • 2: copy the disk image to /boot/dosdisk.img
  • 3:
   mkdir /mnt
   mount -o loop -t vfat /boot/dosdisk.img /mnt

(if it says 'Could not find any loop device', modprobe loop then try again)

  • 4:
   cp M4800A09.exe /mnt
  • 5:
   umount /mnt
  • 6 edit /etc/grub.d/40_custom and add:
menuentry "FreeDOS" {
    linux16 /boot/memdisk
    initrd16 /boot/dosdisk.img
  • 7 update-grub
  • 8 reboot the machine, select freedos from the GRUB menu and follow the instructions

I grabbed the information from this website (but did not have to do all what they do, the image created with BIOSDISK worked directly, without needing to load another freedos image and patch it).

Older notes and tips

Access to Windows partition

Create a mount point: mkdir /Windows

Add the following line to /etc/fstab :

/dev/sda2 /Windows ntfs ro,defaults,umask=0222 0 0

  • Note1: make sure that /dev/sda2 is your Windows partition first

(check with fdisk /dev/sda )

  • Note2: I think that now read-write is supported, to enable, replace ro with rw in the line to be added to fstab (did not try yet)

More notes

Under dedian, firefox is called iceweasel, and thunderbird is called icedove (did not know that, and had a hard time finding the packages !)

Wacom Intuos 5

It works directly under Linux (I am using debian Wheezy with kernel 3.2.0-3), I did not need to change any configuration, just "plug and play". The driver is shipped with the kernel (version 3.2.0-3) and the package xserver-xorg-input-wacom needs to be installed (but I think this is the case by default since it was already there in my case, else use aptitude install xorg-input-wacom .

Note: it does not work with kernel 3.1.0-1 (shipped initially with debian Wheezy). If you do not have the new kernel yet, you will need to install it with aptitude install linux-image-3.2.0-3 . Do also aptitude install linux-headers-3.2.0-3-amd64 , you will need them to re-install the NVidia driver with the new kernel (see above, do all the steps, including dpkg-reconfigure linux-image-3.2.0-3-amd64 at the end).

If everything goes well, you will be able to move the cursor by draging a finger on the tablet. If it does not work, unplug and replug the tablet, then take a look at the output of dmesg . You should see something like:

[  141.405387] input: Wacom Intuos5 touch M Finger as /devices/pci0000:00/0000:00:1c.3/0000:0a:00.0/usb1/1-1/1-1:1.1/input/input22
[  141.405687] usbcore: registered new interface driver wacom
[  141.405692] wacom: v1.53:USB Wacom tablet driver

(note: there are also many warnings: Stalled endpoint or warning: short transfer on control ep, no idea of what it is).

Take also a look at the output of lsmod | grep wacom , you should see something like:

wacom                  43248  0 
usbcore               128498  7 xhci_hcd,ehci_hcd,usbhid,btusb,uvcvideo,wacom
power_supply           13475  5 ac,battery,dell_laptop,sbs,wacom

If the wacom kernel module is not loaded, then it means something went wrong. You can try (under root) modprobe wacom then take again a look at the output of dmesg to see whether it complains.

Under gimp, to activate feature sensitivity, use the menu edit/preferences/Input Devices/Configure extended input devices, choose mode 'screen' for both pen stylus and pen eraser, then "save" and enjoy !. There is a similar option for inkscape.

How to setup a Canon MP600R multifunction printer

I am currently evaluating "turboprint" (costs $20, but probably worth the prize). What follows is instructions to install free drivers (but they did not work as well as turboprint). The scanner works directly with XSane, without requiring any configuration (but "autodetecting device" takes time, a couple of minutes each time XSane is started).

  • On the printer, select Parameters->Network->Print parameters
  • Lookup the TCP/IP address of the printer there
  • Note1: there are two TCP/IP addresses, one for wireless and one for ethernet, make sure you peek the right one
  • Note2: make sure the TCP/IP address does not change each time you switch the printer on. It can be specified manually, and exluded from the ranges of DHCP addresses allocated by your router.
  • Open CUPS administration in a web browser: https://localhost:631
  • Click on 'Add new printer'
  • Enter the name you want to use for the printer
  • Choose HP JetDirect
  • URI: socket:// (replace with the TCP/IP of your printer)
  • MP600 is not listed, but there is a MP610 (seems to work fine for me)

Note: there is a way of using drivers from canon, see áthis link, but they only provide 32 bits RPM driver. Tryed to convert them into DEB using alien, but this did not work due to 32 bit / 64 bit compatibility (however I know it is possible to use the 32 bit driver on a 64 bits system, I was doing that with a Fedora Core a while ago...)