Archive for the ‘scanning’ Category
About a month ago I purchased a MFC aka. an AIO printer/scanner/copier/fax device which was networkable via ethernet. I chose the Brother MFC-8480DN and I’ve been very pleased with it. It replaced another Brother laser printer, a HL-1440 which I never had a single problem with; but our aging SCSI (yes a SCSI) HP scanner had recently given up the ghost. Rather than buy another single purpose scanner, I thought I could consolidate some space in our home office by buying an All-in-One device.
I’ve been extremely satisfied with our choice, except for the lack of drivers available for scanning under Linux. I wasn’t really overly concerned given this particular device was just released as a new product in Q1/2009. My previous Brother printer, which I had since 2002, was supported under Linux from day 1 and looking at the Brother website, pretty much all of their products are too.
Just to be on the safe side I decided to contact customer support just to see if one of the existing devices could be substituted in for my model number. I quickly received an email in which the customer rep. said it wasn’t currently available, but to check back at their website in about 1-2 months and it would be. So I did tonight (June/2009) and was pleasantly surprised to find that indeed, new drivers were available for my device. So I downloaded the new drivers and installed them into one of my OpenVZ VEs as follows.
Before I get started I just wanted to mention that I’ve really grown to liking OpenVZ and have pretty much converted most of my SOHO infrastructure to using it. It really gives me tremendous flexibility in quickly creating containered instances of OSes so that I can play around with things without trashing any of my existing systems.
For this particular setup I already had a devoted instance of OpenVZ just for CUPS, so I opted to use this VE to setup both the printing and scanning capabilities. NOTE: In this howto, I’m only going to focus on what Brother calls Scanning to a file.
1 2 3 4 5 6 7 8 9 10 11
# requires sane backend yum install sane-backends # install the brother drivers rpm -ivh --nodeps brscan3-0.2.6-1.i386.rpm # configure the scanner brsaneconfig3 -a name=mfc8480dn model=MFC-8480DN ip=192.168.1.14 # setup the server daemon (scans to a file) brscan-skey-0.2.1-3.i386.rpm
Scanning to a File
This is where there is a small server daemon (brscan-skey), which is able to talk to the scanner, and receive scanned files as either JPG or PNG files (I think it supports other formats too). You can launch it like this:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
# brscan-skey's usage # % brscan-skey -h USAGE: brscan-skey [option] This tool enables you to scan a document by using the Scan key on the Brother MFC through the network. no option :register all network MFCs -t :terminate this tool -p PASSWD :set the password -u USERNAME :set the user name --diagnosis :print diagnosis data -h :help # Here I am starting up the server daemon! # % brscan-skey
NOTE: Eventually I’ll want to throw together a start/stop script for brscan-skey and incorporate it into this VE as a full fledged service. For now, every time this system reboots I’ll have to manually start it!
These files are then stored on the system that is running brscan-skey. When this is working I can basically walk up to the MFC-8480DN, stick a piece of paper on the glass, press the scan button, and have the JPG/PNG file get automatically dumped to my server.
- Initial screen on MFC-8480DN LCD after pressing the Scan button
- Next screen on MFC-8480DN LCD, asking which method to use for scanned output
- Final screen asking which system on the network to direct the scanned file to
The daemon brscan-skey will put the files into a directory like so:
1 2 3 4
# console chatter from brscan-skey scan from mfc8480dn(brother3:net1;dev0) to /root/brscan/brscan.Pj8088 scanimage: rounded value of br-x from 215.9 to 215.88 scanimage: rounded value of br-y from 355.6 to 355.567
Windows vs. Linux Differences
Notice that the files are getting dumped into the directory /root/brscan/. This is because I started brscan-skey as root. Also this is why in the 3rd screenshot, the choice is root. The other 2 choices in this screenshot are windows PCs whose names are mrx and scully. This is one minor difference between the PC version of this software and the Linux version. Not a huge difference but something to consider. Eventually I will go through the Brother scripts located under /usr/local/Brother, to see if I can change/override the name that is being passed to the scanner, but I’m going to leave that for another day.
1 2 3 4 5 6 7 8
# ...here... % ls /usr/local/Brother/ cupswrapper fax filter inf lpd sane # ...and here... % ls /usr/local/Brother/sane/ Brsane3.ini brscan_mail.config brscan-skey-0.2.1-3.cfg setupSaneScan3 brsaneconfig3 brscan_mailmessage.txt brscan-skey-0.2.1-3.sh brsanenetdevice3.cfg brscan-skey-0.2.1-3 script
Now given the MFC-8480DN is just a standard laser printer I was able to find a suitable driver that allowed me to initially do basic printing from CUPS, so I didn’t bother waiting for the true native CUPS driver to be released from Brother.
Once a native driver did become available I took the opportunity to install it as well. First off I needed to install some RPMs.
1 2 3 4 5
# CUPS wrappers rpm -ihv --nodeps cupswrapperMFC8480DN-2.0.3-1.i386.rpm # mfc8480dn driver rpm -ivh --nodeps mfc8480dnlpr-2.0.3-1.i386.rpm
Once these were installed I went through the web interface of CUPS, and modified my existing printer setup to use these new drivers. The interface is usually located at port 631 of the CUPS server.
Here are some screenshots of how I went about re-configuring the MFC-8480DN printer in CUPS.
- Initial screen in CUPS’ web interface, showing the existing printer
- Next screen after clicking “modify printer”
- Select the IPP Protocol for communication between cups and the printer
- Specify the device URI
- Select the Maker
- Select the Model
Click the modify button and you’re all set. The final piece to all this is setting up the fax. But this is already a really long post, so I’m going to leave that for another day too.
I have a flatbed scanner (part of my printer). I had no idea it was possible to scan a multipage document in Xsane. For a pull-through, sure, maybe, those can go through a stack of pages on their own. But a flatbed? Every time I've tried this before, I scanned individual pages, saved them as images, put them into an Open Office Writer document with one image per page, then saved that as a PDF. There's a better way!
So here's what you do. In the XSane window where you choose color/greyscale, gamma, brightness, etc, at the top there's a dropdown that defaults to Viewer. Change that to Multipage. A new window will open called "xsane multipage project." Choose the "New Project" button. Back to that first window, hit the Scan button. The scanner will do its part, and a page will be listed in the project window. Swap in a new sheet of paper and hit the Scan button again. Repeat until you've scanned all you need. If you scanned them out of order, use the arrow buttons on the project window to rearrange them. You can also delete any pages you don't need. The Show Image button lets you preview an individual page. The default output format is PDF, so just click the "Save multipage file" button at the bottom of the Project window when you're done.
This makes things so much easier.