IRIScan Mouse Executive 2 on Linux, sort of…
Par Yves le dimanche 23 septembre 2018, 23:04 - Lien permanent
The IRIScan mouse is a neat little device! Its scanning function works really well and fast, for such a little piece of hardware, and the mouse function is surprisingly familiar: no extra weight, no extra bulk. It could be perfect.
For us Linux users, it is just a plain mouse, costly at that, for a mouse that is. Indeed, the Irislink company (part of Canon) does not provide drivers for the scanning function on Linux.
One can only hope this will change soon, as Linux-based operating systems are slowly but surely gaining market share, in particular in the education sector, where this handheld scanner truly shines.
Thankfully, Ubuntu user l4ma was kind enough to share a tip for using this handheld scanner on Linux, through a Windows virtual machine.
Direct application of l4ma’s settings (especially the q35 part) did not work for me, so this article goes into the details of getting the IRIScan Mouse Executive 2 to work on Linux, with the needed adaptations.
Sadly, the first requirement is a Windows 7 (or later?) license key, which adds some more to the cost of the IRIScan mouse…
On the Linux side, you need:
- QEMU (Archlinux package),
- Samba (Archlinux package),
- and CDRecord for mkisofs (Archlinux package), only for the installation.
Windows 7 installation
I had at my disposal a licence key for Windows XP, and another one for Windows 7. Since the former is much smaller in size, I tried it first, but the Windows XP kernel lacks some system functions that the IRIScan driver needs :-( so I went with Windows 7 (Basic) instead.
First download Windows’ ISO file if you don’t already have it. Let’s assume it is stored at ~/Downloads/win7.iso.
You’ll also need extra software: first of all, the IRIScan driver itself, but maybe also some tools you like to have on Windows. Let’s put that in another ISO file, stored at ~/Downloads/addons.iso:
$ mkisofs ~/Downloads/IRIScan_Mouse_Executive_cd17n077_Win.exe \ > /whatever/else/you/want \ > > ~/Downloads/addons.iso
Now, create a QEMU disk for Windows 7, and install Windows as usual (15 GiB is the minimum size, for just Windows and the IRIScan software):
$ mkdir -p ~/.local/share/qemu $ cd ~/.local/share/qemu $ qemu-img create -f qcow2 w7-basic.qcow2 15G $ qemu-system-x86_64 -enable-kvm -cpu host -m 1G \ > -device usb-ehci,id=ehci -device usb-tablet -monitor stdio \ > -name w7-basic -hda w7-basic.qcow2 \ > -cdrom ~/Downloads/win7.iso -boot d
When the installation is done, you can tweak it a bit, for example:
- remove useless (for our purpose) Windows components:
- remote differential compression,
- Windows gadgets framework,
- document print and scan services → internet print client,
- document print and scan services → fax and scan for Windows,
- XPS services,
- XPS viewer (heedless of the warning),
- Windows search (heedless of the warning);
- lower the paging (swap) file to the minimum of 16MB in Configuration panel → System and security → System → Advanced system parameters → Performances parameters → Advanced → Virtual memory;
- change the resolution to the biggest one that fits in your screen;
- disable all automatic updates, security warnings, and such, that would nag at you about what is essentially a network-less virtual appliance.
IRIScan software installation
I chose to create another QEMU disk for the IRIScan software, that “inherits” from the Windows 7 one. This new disk image contains all that relates to the installation and usage of the IRIScan software. It only stores the differences, leaving the original Windows 7 disk in its pristine state.
This is a neat trick, because the Windows 7 disk can later be reused for another software, that would be installed on another “Δ” disk, which would also inherit from the Windows 7 disk. Be aware, though, that such “child-Δ-C:\” drives cannot be bigger in GiB than the size given when creating the Windows disk (but a “D:\” drive can be plugged anytime).
Here is how it is done:
$ qemu-img create -f qcow2 -o backing_file=w7-basic.qcow2 w7-iriscan.qcow2
Next, the IRIScan driver and optional additional software shall be installed:
$ qemu-system-x86_64 -enable-kvm -cpu host -m 1G \ > -device usb-ehci,id=ehci -device usb-tablet -monitor stdio \ > -name w7-iriscan -hda w7-iriscan.qcow2 \ > -cdrom ~/Downloads/addons.iso
Proceed to the installation, using the “CDROM” in Windows.
Using the IRIScan Mouse Executive 2
Whenever you want to scan using the IRIScan mouse, first plug it into an USB port, and then run this:
$ qemu-system-x86_64 -enable-kvm -cpu host -m 1G \ > -device usb-ehci,id=ehci -device usb-tablet -monitor stdio \ > -name w7-iriscan -hda "$HOME"/.local/share/qemu/w7-iriscan.qcow2 \ > -device usb-host,bus=ehci.0,vendorid=0x274f,productid=0xc001 \ > -nic user,restrict=yes,smb="$HOME"/Documents/
Note 1: the 274f and c001 values correspond to the vendor and product identifiers for my IRIScan mouse, and should match yours. This can be checked with the lsusb command.
Note 2: the restrict=yes part of the command line removes all network connectivity from the virtual machine except the link to the Documents directory. This is optional, with the purpose of protecting the virtual machine in case you do not trust it to remain clean, in the absence of any anti-virus or the like.
It is of course advised to create a command-line alias, or a desktop icon corresponding to this command, instead of typing it each time!
The first time you launch this command, you have to set a Windows network drive (eg. Q:) for “\\10.0.2.4\qemu\” (verbatim), which is actually mapped to the directory after smb= in the above command line.
From then on, anything saved under Q:\ can be found in Linux’ ~/Documents/ directory.