Difference between revisions of "Brother DCP-7020"

From ArchWiki
Jump to navigation Jump to search
(Redirected to CUPS/Printer-specific problems, since this page is now redundant.)
(29 intermediate revisions by 10 users not shown)
Line 1: Line 1:
#Redirect[[CUPS/Printer-specific problems]]
[[Category:Tutorials (English)]]
This is a brief tutorial to make the Brother DCP-7020 printer/scanner work on Arch.  It is largely a duplicate of the tutorial for the Brother HL-2030, with changes specific to the Brother DCP-7020.<br/><br/>If you previously tried to install the printer in CUPS, remove it.
==Download Printer drivers==
First create a temporary directory.
Then you must download the official LPR drivers from the Brother website into that directory. Click [http://www.brother.com/cgi-bin/agreement/agreement.cgi?dlfile=http://solutions.brother.com/Library/sol/printer/linux/rpmfiles/lpr_others/brdcp7020lpr-2.0.1-1.i386.rpm&lang=English_lpr here] (and agree to their terms). This is an RPM archive.
You have to download the cupswrapper file [http://www.brother.com/cgi-bin/agreement/agreement.cgi?dlfile=http://solutions.brother.com/Library/sol/printer/linux/rpmfiles/cups_wrapper/cupswrapperDCP7020-2.0.1-1.i386.rpm&lang=English_gpl here] (and agree to their terms). This script creates the filters and PPD file for CUPS automatically. It's an RPM archive too.
==Extracting the RPM files==
Now you need a small script called rpmextract which allows you to get the files included in the RPM you've just downloaded.
Log in as root and execute :
# pacman -S rpmextract
Extract both RPM files :
$ rpmextract.sh brdcp7020lpr-2.0.1-1.i386.rpm
$ rpmextract.sh cupswrapperDCP7020-2.0.1-1.i386.rpm
It should give you two directories : usr and var.
==Editing files to make it work with Arch==
ArchLinux uses its own file system organisation, so you have to edit some files.
Use your text editor (i.e. vi) to open the file named cupswrapperHL2030-2.0.1
If you created the temporary directory "tmp" in your home, this file will be in /home/(your user)/tmp/usr/local/Brother/ .
In this file, you must replace all the <i>/etc/init.d/</i> occurences by <i>/etc/rc.d/</i>.
Once you've finished this step, copy all of the files to their corresponding directories in your file system :
# cp -r /home/user/tmp/usr/* /usr
# cp -r /home/user/tmp/var/* /var
==Installing the driver and printer==
Last step !
Go into /usr/local/Brother/cupswrapper/ and run the cupswrapper file :
# cd /usr/local/Brother/cupswrapper/
# ./cupswrapperDCP7020-2.0.1
It will stop the cups daemon if it's running, and restart it.<br/><br/>
Now go to the CUPS page : http://localhost:631/ <br/><br/>
Under the Printers tab you should see a DCP7020 printer <b>automatically</b> installed and configured.
This default installation seems to be optimized for a USB connected printer, which in the case of the DCP-7020 is incorrect.  Click <i>Delete Printer</i>.  Now you can add the printer using the CUPS browser interface and selecting your Brother DCP-7020 which didn't exist before.  To do this :<br/><br/>
1. Click on the Administration tab<br/>
2. Add Printer<br/>
3. Name it, Continue<br/>
4. Select LPT #1 (unless you have more than one LPT port, in which case trial and error should serve you)<br/>
5. Select Brother, Continue<br/>
6. And there's your "Brother DCP7020 for CUPS (en)" - select it and Add Printer<br/>
7. Now under the Printers tab, click to print the test page, and  you can hear the sweet sound of your printer.<br/><br/>
Thanks to the creator of the HL-2030 page for making this much easier than I expected it would be!
First, make sure you [http://wiki.archlinux.org/index.php/Scanner_setup_%26_configure set up SANE].
This scanner works with Brother's [http://solutions.brother.com/linux/sol/printer/linux/sane_drivers.html brscan2] driver.  ([http://www.brother.com/cgi-bin/agreement/agreement.cgi?dlfile=http://solutions.brother.com/Library/sol/printer/linux/rpmfiles/sane_others/brscan2-0.2.3-0.i386.rpm&lang=English_sane 32 bit] | [http://www.brother.com/cgi-bin/agreement/agreement.cgi?dlfile=http://solutions.brother.com/Library/sol/printer/linux/rpmfiles/sane_others/64bit/brscan2-0.2.3-0.x86_64.rpm&lang=English_sane 64 bit])
You'll need to extract the files to a temp path:
$ rpmextract brscan2-0.2.3-0.i386.rpm
or, for 64 bit:
$ rpmextract brscan2-0.2.3-0.x86_64.rpm
Now copy the files to their corresponding directories in your file system:
# cp -r /path/to/brscan/usr/* /usr
Now you'll need to add "brother2" to the end of /etc/sane.d/dll.conf<br />
Brother felt it necessary to include a script to do that, so you can also run:
# /usr/local/Brother/sane/setupSaneScan2 -i
===I can scan as root, but not as a normal user===
Make sure your user is in the scanner group:
# gpasswd -a username scanner
then log out and back in.
If you still can't scan as a normal user, check that /usr/lib/sane (or /usr/lib64/sane for 64 bit) are readable and executable for your user/group.
===64 bit caveat===
The 64 bit RPM has two files in /usr/lib64/, along with two symlinks to each file. However, the Arch64 Sane package will probably look in  /usr/lib/ rather than /usr/lib64/, so we'll need to create some more symlinks.  And since the symlinks reference the absolute path, not the relative path, ie:
linkedfile -> /usr/lib64/originalfile
rather than
linkedfile -> ./originalfile
a simple cp -r /path/to/brscan/usr/lib64/* /usr/lib/ won't do.
# ln -s /usr/lib64/libbrcolm2.so.1.0.1 /usr/lib/
# ln -s /usr/lib64/libbrscandec2.so.1.0.0 /usr/lib/
# ln -s /usr/lib64/sane/libsane-brother2.so.1.0.7 /usr/lib/sane/
# cd /usr/lib
# ln -s libbrcolm2.so.1.0.1 libbrcolm2.so.1
# ln -s libbrcolm2.so.1 libbrcolm2.so
# ln -s libbrscandec2.so.1.0.0 libbrscandec2.so.1
# ln -s libbrscandec2.so.1 libbrscandec2.so
# cd sane
# ln -s libsane-brother2.so.1.0.7 libsane-brother2.so.1
# ln -s libsane-brother2.so.1 libsane-brother2.so
Here's all of that in a nice bash friendly string:
ln -s /usr/lib64/libbrcolm2.so.1.0.1 /usr/lib/; ln -s /usr/lib64/libbrscandec2.so.1.0.0 /usr/lib/; ln -s /usr/lib64/sane/libsane-brother2.so.1.0.7 /usr/lib/sane/; cd /usr/lib; ln -s libbrcolm2.so.1.0.1 libbrcolm2.so.1; ln -s libbrcolm2.so.1 libbrcolm2.so; ln -s libbrscandec2.so.1.0.0 libbrscandec2.so.1; ln -s libbrscandec2.so.1 libbrscandec2.so; cd sane; ln -s libsane-brother2.so.1.0.7 libsane-brother2.so.1; ln -s libsane-brother2.so.1 libsane-brother2.so

Latest revision as of 23:51, 26 October 2015