Dogmeat
September 2nd, 2008, 07:03 PM
This howto describes the steps necessary to use the Epson Stylus CX5600 all-in-one with Ubuntu 8.04 (Hardy Heron) as of September 2008. The used kernel versions are 2.6.24-19. The other Epson all-in-ones in the title should work in a similar way.
The scanner was relatively easy to set-up, and the printer is auto-detected, however there is a nasty bug, at least on the CX5600: when the printer enters stand-by mode (after an hour or so), the next time you try to print the printer will stop working and shut down. The next time you turn it on, it wastes a lot of ink. I created a workaround this bug which is covered in this howto.
Another issue is the scanner and printer permissions. On similar howtos, authors either suggest chmodding the printer 777 or having sane change the printer group from 'lp' to 'scanner'. The first suggestion is clumsy as you have to do it every time you restart your computer, and is also a security risk. The second one creates another problem: after you scan something, you get permission denied because sane changes the printer group to 'scanner', and you have to change the printer back to group 'lp' to be able to print again. After this howto you should be able to scan and print at will, no chmodding involved. We may need some packages, so start by typing the following:
sudo apt-get install sane-utils sane xsane alienThe all-in-one drivers are available on the Japanese vendor's site (http://www.avasys.jp/lx-bin2/linux_e/spc/DL1.do). Scroll down until you see Image Scan! for Linux & Photo Image Print System.
Choose Epson Stylus CX4300/CX4400/CX4450/CX5500/CX5600/DX4400/DX4450.
In distribution, select Other and distribution version Other.
Fill out the small questionnaire and submit the form. You are directed to a download page. You should download these files: iscan-2.10.0-1.i386.rpm and iscan-plugin-cx4400-2.0.0-0.c2.i386.rpm.
Now you need to convert the packages to the .deb format in order to install them:
Open a terminal and go to the folder where you downloaded the iscan rpms. Then type:
sudo alien --scripts iscan-2.10.0-1.i386.rpmYou should see: iscan_2.10.0-2_i386.deb generated
sudo alien --scripts iscan-plugin-cx4400-2.0.0-0.c2.i386.rpmYou should see: iscan-plugin-cx4400_2.0.0-1_i386.deb generated
To install the generated .deb packages we use dpkg:
sudo dpkg -i iscan_2.10.0-2_i386.deb
sudo dpkg -i iscan-plugin-cx4400_2.0.0-1_i386.deb
Now plug in and switch on the all-in-one. lsusb must show the scanner:
lsusbMy CX5600 shows the following:
[...]
Bus 002 Device 002: ID 04b8:083f Seiko Epson Corp.
[...]
Now it is necessary to edit a file, and search for a line starting with epson.
sudo gedit /etc/sane.d/dll.confComment epson and enable epkowa, it should look like this:
[...]
epkowa
#epson
#epson2
[...]Using sane-find-scanner you can check whether Sane finds the device. At the moment only root has access to the scanner, so we're using sudo for now.
sudo sane-find-scanner -qMy CX5600 shows the following:
found USB scanner (vendor=0x04b8 [Language Error], product=0x083f [Language Error]) at libusb:002:002
Write down the vendor id (in my case, 0x04b8 and product id (again in my case, 0x083f). We'll need them later. Don't worry about the language errors.
With scanimage -L you can find out if the driver is properly installed.
sudo scanimage -LI get:
device `epkowa:libusb:002:002' is a Epson Stylus CX4300/CX4400/CX5500/CX5600/DX4400 flatbed scanner
To allow ordinary users to access the scanner, they must be members of the scanner group. You also need to restart the udev daemon. Obviously replace your_username with your username:
sudo adduser your_username scannerShould output:
Adding user `your_username' to group `scanner' ...
Adding user your_username to group scanner
Done.
Now you should logout of your account and login again to make the altered group membership effective.
After this, if you type:
groupsYou should see scanner among the groups. If not, restart your computer and it should work.
Now we'll make the all-in-one avaliable to both the user 'lp' (responsible for printing) and users in the group 'scanner' (users that may scan)
sudo gedit /etc/udev/rules.d/45-libsane.rules
Rembember I told you to write down the vendor and product ids? Now it's the time to use them. Replace your_vendor_id and your_product_id below with the numbers you wrote down. Replace your_model with your printer model. If you have a similiar entry on that file, delete it, and add this instead:
# Epson your_model
SYSFS{idVendor}=="your_vendor_id", SYSFS{idProduct}=="your_product_id", MODE="664", OWNER="lp", GROUP="scanner"My file looks like this:
# Epson CX5600
SYSFS{idVendor}=="04b8", SYSFS{idProduct}=="083f", MODE="664", OWNER="lp", GROUP="scanner"Save and exit. Now udev should be restarted:
sudo /etc/init.d/udev restart
You should see this:
* Loading additional hardware drivers... [ OK ]
You should now be able to scan images with xsane.
Type
xsaneTo try it out!
Now lets fix the printer standby problem. I assume Ubuntu autodetected your printer and you're using the Stylus CX5600 (or your own printer's) Gutenprint driver. If not, you can add it in System->Administration->Printers.
If you turn the printer on and the green led is not blinking, you should be able to print normally. However, at least on the CX5600, after the printer enters standby mode it will stop working, and you have to turn it on again, which wastes ink and is inconvenient. I fixed this by 'pinging' the printer constantly with a scanner command so it never enters standby mode. For me it was more important to have the printer working all the time than saving a little power, and if you read this far I assume you share the same opinion. So here's how to do it:
sudo gedit /etc/crontabAppend the following to the end of the file, replacing your_model with your printer model (mine is CX5600):
# Keep Epson Stylus your_model awake
*/5 * * * * root scanimage -nAccording to scanimage's manual, scanimage -n only sets the options provided by the user but doesn’t actually perform a scan. It is repeated every 5 minutes to keep the printer always on.
Credits go to these howtos:
http://uellue.de/blog/single.php?date=1192278660
http://www.ubuntu-es.org/index.php?q=node/69308
http://ubuntuforums.org/showthread.php?t=627471&highlight=cx5600
Please share any thoughts or improvements and i'll update this howto.
The scanner was relatively easy to set-up, and the printer is auto-detected, however there is a nasty bug, at least on the CX5600: when the printer enters stand-by mode (after an hour or so), the next time you try to print the printer will stop working and shut down. The next time you turn it on, it wastes a lot of ink. I created a workaround this bug which is covered in this howto.
Another issue is the scanner and printer permissions. On similar howtos, authors either suggest chmodding the printer 777 or having sane change the printer group from 'lp' to 'scanner'. The first suggestion is clumsy as you have to do it every time you restart your computer, and is also a security risk. The second one creates another problem: after you scan something, you get permission denied because sane changes the printer group to 'scanner', and you have to change the printer back to group 'lp' to be able to print again. After this howto you should be able to scan and print at will, no chmodding involved. We may need some packages, so start by typing the following:
sudo apt-get install sane-utils sane xsane alienThe all-in-one drivers are available on the Japanese vendor's site (http://www.avasys.jp/lx-bin2/linux_e/spc/DL1.do). Scroll down until you see Image Scan! for Linux & Photo Image Print System.
Choose Epson Stylus CX4300/CX4400/CX4450/CX5500/CX5600/DX4400/DX4450.
In distribution, select Other and distribution version Other.
Fill out the small questionnaire and submit the form. You are directed to a download page. You should download these files: iscan-2.10.0-1.i386.rpm and iscan-plugin-cx4400-2.0.0-0.c2.i386.rpm.
Now you need to convert the packages to the .deb format in order to install them:
Open a terminal and go to the folder where you downloaded the iscan rpms. Then type:
sudo alien --scripts iscan-2.10.0-1.i386.rpmYou should see: iscan_2.10.0-2_i386.deb generated
sudo alien --scripts iscan-plugin-cx4400-2.0.0-0.c2.i386.rpmYou should see: iscan-plugin-cx4400_2.0.0-1_i386.deb generated
To install the generated .deb packages we use dpkg:
sudo dpkg -i iscan_2.10.0-2_i386.deb
sudo dpkg -i iscan-plugin-cx4400_2.0.0-1_i386.deb
Now plug in and switch on the all-in-one. lsusb must show the scanner:
lsusbMy CX5600 shows the following:
[...]
Bus 002 Device 002: ID 04b8:083f Seiko Epson Corp.
[...]
Now it is necessary to edit a file, and search for a line starting with epson.
sudo gedit /etc/sane.d/dll.confComment epson and enable epkowa, it should look like this:
[...]
epkowa
#epson
#epson2
[...]Using sane-find-scanner you can check whether Sane finds the device. At the moment only root has access to the scanner, so we're using sudo for now.
sudo sane-find-scanner -qMy CX5600 shows the following:
found USB scanner (vendor=0x04b8 [Language Error], product=0x083f [Language Error]) at libusb:002:002
Write down the vendor id (in my case, 0x04b8 and product id (again in my case, 0x083f). We'll need them later. Don't worry about the language errors.
With scanimage -L you can find out if the driver is properly installed.
sudo scanimage -LI get:
device `epkowa:libusb:002:002' is a Epson Stylus CX4300/CX4400/CX5500/CX5600/DX4400 flatbed scanner
To allow ordinary users to access the scanner, they must be members of the scanner group. You also need to restart the udev daemon. Obviously replace your_username with your username:
sudo adduser your_username scannerShould output:
Adding user `your_username' to group `scanner' ...
Adding user your_username to group scanner
Done.
Now you should logout of your account and login again to make the altered group membership effective.
After this, if you type:
groupsYou should see scanner among the groups. If not, restart your computer and it should work.
Now we'll make the all-in-one avaliable to both the user 'lp' (responsible for printing) and users in the group 'scanner' (users that may scan)
sudo gedit /etc/udev/rules.d/45-libsane.rules
Rembember I told you to write down the vendor and product ids? Now it's the time to use them. Replace your_vendor_id and your_product_id below with the numbers you wrote down. Replace your_model with your printer model. If you have a similiar entry on that file, delete it, and add this instead:
# Epson your_model
SYSFS{idVendor}=="your_vendor_id", SYSFS{idProduct}=="your_product_id", MODE="664", OWNER="lp", GROUP="scanner"My file looks like this:
# Epson CX5600
SYSFS{idVendor}=="04b8", SYSFS{idProduct}=="083f", MODE="664", OWNER="lp", GROUP="scanner"Save and exit. Now udev should be restarted:
sudo /etc/init.d/udev restart
You should see this:
* Loading additional hardware drivers... [ OK ]
You should now be able to scan images with xsane.
Type
xsaneTo try it out!
Now lets fix the printer standby problem. I assume Ubuntu autodetected your printer and you're using the Stylus CX5600 (or your own printer's) Gutenprint driver. If not, you can add it in System->Administration->Printers.
If you turn the printer on and the green led is not blinking, you should be able to print normally. However, at least on the CX5600, after the printer enters standby mode it will stop working, and you have to turn it on again, which wastes ink and is inconvenient. I fixed this by 'pinging' the printer constantly with a scanner command so it never enters standby mode. For me it was more important to have the printer working all the time than saving a little power, and if you read this far I assume you share the same opinion. So here's how to do it:
sudo gedit /etc/crontabAppend the following to the end of the file, replacing your_model with your printer model (mine is CX5600):
# Keep Epson Stylus your_model awake
*/5 * * * * root scanimage -nAccording to scanimage's manual, scanimage -n only sets the options provided by the user but doesn’t actually perform a scan. It is repeated every 5 minutes to keep the printer always on.
Credits go to these howtos:
http://uellue.de/blog/single.php?date=1192278660
http://www.ubuntu-es.org/index.php?q=node/69308
http://ubuntuforums.org/showthread.php?t=627471&highlight=cx5600
Please share any thoughts or improvements and i'll update this howto.