You are not logged in.
I decided to buy a new printer after getting fed up with my LaserJet usblp + cups 1.4 issues. I've seen good reviews for the Brother 2170W, and it seems like it works well on Arch, but the HL-2270DW is newer and (for some reason) cheaper on Amazon. Does anyone have experience with getting this to play nicely with Arch? A google search didn't turn up anything.
Last edited by guga31bb (2010-12-09 06:55:54)
Offline
I cannot see there would be a problem as Brother released a Linux driver for that printer on Oct 4th this year:
Philosophy is looking for a black cat in a dark room. Metaphysics is looking for a black cat in a dark room that isn't there. Religion is looking for a black cat in a dark room that isn't there and shouting "I found it!". Science is looking for a black cat in a dark room with a flashlight.
Offline
Thanks for this. It looks like there are drivers packaged with either rpm or deb -- should I unpack the rpm and try using that? The closest thing I could find was this page (https://wiki.archlinux.org/index.php/Brother_HL-2030) which talks about extracting and editing rpm files (cupswrapper) for use on Arch, since lines like "/etc/init.d/cupsys restart" will obviously not work. I plan on buying the printer tomorrow and will post my experience.
Last edited by guga31bb (2010-12-05 07:05:43)
Offline
EDIT -- the steps below don't work for me. I now use the Foomatic/hl1250 drivers and it works.
Driver: Brother DCP-1200 Foomatic/hl1250 (recommended) (grayscale, 2-sided printing)
Connection: http://192.168.1.222:80
-------------
UPDATE -- working printer! Here's how I did it: (inspired mostly by https://wiki.archlinux.org/index.php/Brother_HL-2030)
1. Go to the Brother site and download both .rpm files (LPR and cupswrapper)
2. Extract the .rpm files (you'll need rpmextract) -- I put them in my ~
3. Go into ~/usr/local/Brother/Printer/HL2270DW/cupswrapper/cupswrapperHL2270DW-2.0.4 and change all instances of "init.d" to "rc.d".
4. Go into ~/usr/local/Brother/Printer/HL2270DW/inf/setupPrintcap2 and change "printcap.local" to "printcap" -- I think there was only 1 instance of this.
5. sudo cp -r ~/tmp/usr/* /usr && sudo cp -r ~/tmp/var/* /var
6. Go to /usr/local/Brother/Printer/HL2270DW/cupswrapper/ and run cupswrapperHL2270DW-2.0.4 . If you are using a USB connection it might work (I have no idea, printer is connected to router by ethernet).
HOWEVER, the file only works for usb connections -- the very end of the file goes as follows:
port2=`lpinfo -v | grep -i 'usb://Brother/HL2270DW' | head -1`
if [ "$port2" = '' ];then
port2=`lpinfo -v | grep -i 'usb://Brother/' | head -1`
if [ "$port2" = '' ];then
port2=`lpinfo -v | grep 'ipp' | head -1`
fi
fi
port=`echo $port2| sed s/network//g`
if [ "$port" = '' ];then
port=usb:/dev/usb/lp0
fi
lpadmin -p HL2270DW -E -v $port -P $ppd_file_name
exit 0
So no matter what, it adds a usb printer. This gave me 'printer not found' errors, for good reason. Here's the easy workaround:
7. Immediately after runnings the cupswrapper, give 2 commands:
i -- sudo lpadmin -x HL2270DW
ii -- sudo lpadmin -p HL2270DW -E -v dnssd://Brother%20HL-2270DW%20series._pdl-datastream._tcp.local/ -P /usr/share/cups/model/HL2270DW.ppd
This removes the printer and then adds it back with the correct URI. I found the URI by using 'lpinfo -v' and playing around with the different outputs until one worked.
I printed a test page and 2 pages from my document (duplex even works!)
Last edited by guga31bb (2011-06-24 01:29:00)
Offline
I was only able to print a test page from the cups web admin interface with the official driver. I had to use the foomatic driver to be able to print from applications. I am also printing wirelessly.
Last edited by mrman (2011-02-19 09:37:37)
Offline
Just picked this printer up, but I'm having problems with the steps you outlined. I get an unable to locate printer error in cups. There doesn't appear to be a compatible driver in foomatic either. mrman if you could elaborate on what you did, I'd appreciate it. Or if you could elaborate on the URI changing you're doing guga31bb, that'd be cool too. My primary goal is to get the wireless working.
Thanks in advance.
Last edited by airencracken (2011-04-15 23:54:02)
Offline
UPDATE -- working printer! Here's how I did it: (inspired mostly by
It would be great if you could add a wiki page with your info!
Philosophy is looking for a black cat in a dark room. Metaphysics is looking for a black cat in a dark room that isn't there. Religion is looking for a black cat in a dark room that isn't there and shouting "I found it!". Science is looking for a black cat in a dark room with a flashlight.
Offline
UPDATE -- working printer! Here's how I did it: (inspired mostly by
It would be great if you could add a wiki page with your info!
Philosophy is looking for a black cat in a dark room. Metaphysics is looking for a black cat in a dark room that isn't there. Religion is looking for a black cat in a dark room that isn't there and shouting "I found it!". Science is looking for a black cat in a dark room with a flashlight.
Offline
to use brother's driver's:
with cups running, save and run as root:
#!/bin/bash
# https://bbs.archlinux.org/viewtopic.php?id=109570
# thx https://bugs.gentoo.org/show_bug.cgi?id=285166#c12
[[ $UID -ne 0 ]] && echo "run as root." && exit 1
STARTDIR=$(pwd)
mkdir br_tmp && cd br_tmp
wget http://www.brother.com/pub/bsc/linux/dlf/hl2270dwlpr-2.1.0-1.i386.rpm
wget http://www.brother.com/pub/bsc/linux/dlf/cupswrapperHL2270DW-2.0.4-2.i386.rpm
if [ ! -f hl2270dwlpr-2.1.0-1.i386.rpm ] || [ ! -f cupswrapperHL2270DW-2.0.4-2.i386.rpm ]; then
echo -e "One or both files not found: \n hl2270dwlpr-2.1.0-1.i386.rpm \n cupswrapperHL2270DW-2.0.4-2.i386.rpm \n\n Was there a problem with the download?"
exit 1;
fi
bsdtar -xf hl2270dwlpr-2.1.0-1.i386.rpm && bsdtar -xf cupswrapperHL2270DW-2.0.4-2.i386.rpm
cd usr/local/Brother/Printer/HL2270DW/inf/ || exit 1
perl -pi -e 's/printcap.local/printcap/g' setupPrintcap2
cd ../cupswrapper/ || exit 1
perl -pi -e 's/init.d/rc.d/g' cupswrapperHL2270DW-2.0.4
cd "$STARTDIR"/br_tmp/
cp -r usr/* /usr/ && cp -r var/* /var/
cd ../ && rm -rf br_tmp
echo "If I hang here, be patient...."
/usr/local/Brother/Printer/HL2270DW/cupswrapper/cupswrapperHL2270DW-2.0.4 || exit 1
is printer is now in cups config? http://127.0.0.1:631
Then edit /etc/cups/printers.conf and change the DeviceURI from ‘usb:xxxxx’ to ‘file:///dev/usb/lp1′ (or usb/lp0 or whatever exists, no quotes).
/etc/rc.d/cupsd restart
UPDATE: added root UID check. I've reinstalled arch a few times on different computers and this script still works for me.
Last edited by nk1eto (2012-03-04 21:56:44)
Offline
I just gave up and use an XP vm to print. Ugly, but it works.
Offline
The method I used above stopped working for me. Sorry, I should have updated that post earlier. It's updated now.
Drivers I now use:
Brother DCP-1200 Foomatic/hl1250 (recommended)
Offline
Have you tried downgrading the file package?
I had a similar problem, you may want to have a look at https://bbs.archlinux.org/viewtopic.php?pid=967337
Offline
EDIT -- the steps below don't work for me. I now use the Foomatic/hl1250 drivers and it works.
Driver: Brother DCP-1200 Foomatic/hl1250 (recommended) (grayscale, 2-sided printing)
Connection: http://192.168.1.222:80-------------
UPDATE -- working printer! Here's how I did it: (inspired mostly by https://wiki.archlinux.org/index.php/Brother_HL-2030)
1. Go to the Brother site and download both .rpm files (LPR and cupswrapper)
2. Extract the .rpm files (you'll need rpmextract) -- I put them in my ~
3. Go into ~/usr/local/Brother/Printer/HL2270DW/cupswrapper/cupswrapperHL2270DW-2.0.4 and change all instances of "init.d" to "rc.d".
4. Go into ~/usr/local/Brother/Printer/HL2270DW/inf/setupPrintcap2 and change "printcap.local" to "printcap" -- I think there was only 1 instance of this.
5. sudo cp -r ~/tmp/usr/* /usr && sudo cp -r ~/tmp/var/* /var
6. Go to /usr/local/Brother/Printer/HL2270DW/cupswrapper/ and run cupswrapperHL2270DW-2.0.4 . If you are using a USB connection it might work (I have no idea, printer is connected to router by ethernet).
HOWEVER, the file only works for usb connections -- the very end of the file goes as follows:
port2=`lpinfo -v | grep -i 'usb://Brother/HL2270DW' | head -1`
if [ "$port2" = '' ];then
port2=`lpinfo -v | grep -i 'usb://Brother/' | head -1`
if [ "$port2" = '' ];then
port2=`lpinfo -v | grep 'ipp' | head -1`
fi
fi
port=`echo $port2| sed s/network//g`
if [ "$port" = '' ];then
port=usb:/dev/usb/lp0
fi
lpadmin -p HL2270DW -E -v $port -P $ppd_file_name
exit 0So no matter what, it adds a usb printer. This gave me 'printer not found' errors, for good reason. Here's the easy workaround:
7. Immediately after runnings the cupswrapper, give 2 commands:
i -- sudo lpadmin -x HL2270DW
ii -- sudo lpadmin -p HL2270DW -E -v dnssd://Brother%20HL-2270DW%20series._pdl-datastream._tcp.local/ -P /usr/share/cups/model/HL2270DW.ppdThis removes the printer and then adds it back with the correct URI. I found the URI by using 'lpinfo -v' and playing around with the different outputs until one worked.
I printed a test page and 2 pages from my document (duplex even works!)
Solution mostly worked except for the URI. I had to use the following command instead:
lpadmin -p HL2270DW -E -v socket://192.168.0.7 -P /usr/share/cups/model/HL2270DW.ppd
EDIT: Discovered I had to start the avahi daemon for the dnssd URI to work. Added avahi-daemon to the DAEMONS line of /etc/rc.conf I prefer using dnssd to socket in case the IP address of the printer happened to change.
Last edited by David Batson (2011-10-23 13:53:07)
Offline
These instructions no longer work.
I'm on a new Arch installation with cups 1.6.1-5, and I have a Brother HL-2270DW printer.
There seems to be an issue with the the file package and the Brother drivers as discussed in this thread . I'm unsure, however, if this is what's causing the problems. I'm getting slanted, large unreadable text (doesn't even look like text). Not postscript.
I'm currently using 2170W's foomatic drivers with success, but I prefer to use Brother's version and also not rollback file.
Does anybody have up-to-date cups and file packages with a working HL-2270DW printer that's using Brother's drivers?
Offline
These instructions are almost a year old. I'm not surprised they don't work. That's one reason why necro-bumping is discouraged. The thread you referenced is even older.
Why do you need an official Brother driver if the foomatic driver works?
Last edited by 2ManyDogs (2012-08-29 01:22:49)
Offline
I have seen newer threads and HL2270DW threads pointing to this one, but you're right, I should have started a new thread.
It's not as urgent so I chose to use this thread.
Well, the reasons for using the official Brother drivers are:
(1) I can't control duplex printing from any application with the foomatic drivers whereas I could with the Brother drivers.
(2) The quality has not been as good for me with the foomatic drivers (also mentioned in an Ubuntu forum and I can verify)
Offline
Thank you for the clarification. You said you were using the 2170 foomatic driver with success, so I wondered why you needed something else. Now I know.
Offline
AFAIK, my Brother 2270DW is still working in Arch. Haven't printed from it lately, and I am not at the printers location atm to verify.
You might be affected by the libtiff issue mentioned in this Gentoo thread. I already had an older version of libtiff installed for my Canon printer, so that might be why I haven't seen any new problems to date.
http://forums.gentoo.org/viewtopic-t-92 … art-0.html
See also: https://bbs.archlinux.org/viewtopic.php?id=136415
Finally, its possible you may need a2ps and/or ghostscript installed as well.
Last edited by David Batson (2012-08-29 06:38:58)
Offline
AFAIK, my Brother 2270DW is still working in Arch. Haven't printed from it lately, and I am not at the printers location atm to verify.
You might be affected by the libtiff issue mentioned in this Gentoo thread. I already had an older version of libtiff installed for my Canon printer, so that might be why I haven't seen any new problems to date.
http://forums.gentoo.org/viewtopic-t-92 … art-0.html
See also: https://bbs.archlinux.org/viewtopic.php?id=136415
Finally, its possible you may need a2ps and/or ghostscript installed as well.
Thanks David. My previous efforts were with a2ps and ghostscript installed so they seem to play no role in the problems that I'm experiencing.
Did you downgrade your file package by any chance too?
Offline
No, I haven't downgraded the 'file' package, but it's possible that I haven't tried printing from the Brother printer after 'file' was last updated with a system update. It will be 2 or 3 weeks before I am at the Brother 2270DW printer location again to test.
Offline
I just got home last night. Fully updated arch. Found that neither my Canon MG8102 nor my Brother HL2270DW printers would work.
Found I had some issues with the systemd update (regarding cups). Had to work through those issues by following the wiki and some other forum posts. Printers still did not work.
Found the issue with the Canon printer had to do with /usr/lib/libpng12.so [Wrong ELF Class]. Got that straightened out and the Canon printer now works.
Found the problem with the Brother printer was the URI. The dnssd URI no longer works - not sure why. Maybe I'll figure that out later. However the following URI works (on my system with the printer ip address set to 192.168.0.10): lpd://192.168.0.10/BINARY_P1
Offline
I just got home last night. Fully updated arch. Found that neither my Canon MG8102 nor my Brother HL2270DW printers would work.
Found I had some issues with the systemd update (regarding cups). Had to work through those issues by following the wiki and some other forum posts. Printers still did not work.
Found the issue with the Canon printer had to do with /usr/lib/libpng12.so [Wrong ELF Class]. Got that straightened out and the Canon printer now works.
Found the problem with the Brother printer was the URI. The dnssd URI no longer works - not sure why. Maybe I'll figure that out later. However the following URI works (on my system with the printer ip address set to 192.168.0.10): lpd://192.168.0.10/BINARY_P1
Still not working for me. I tried the URI (adjusted for my printer's IP of course) that you used.
Note that in the cupswrapper script, there are many instances of restarting the cups daemon via "/etc/init.d/cups restart" which doesn't apply to a pure systemd installation. I tried the default script first (with no luck) and also a modified script where the restarts were replaced by the corresponding systemd commands (also did not work). Would the restarts really influence the installation?
From what I gather, I think it's the `file` problem that was brought up earlier, but it's strange you are not having the same issues.
Could you verify your version of file David?
Offline
From what I gather, I think it's the `file` problem that was brought up earlier, but it's strange you are not having the same issues.
Could you verify your version of file David?
[root@myhost ~]# pacman -Q file
file 5.11-1
I had edited cupswrapper when I initially installed the driver (see my first post in this thread). Currently all references to init.d were changed as follows:
if [ -e /etc/rc.d/cups ]; then
/etc/rc.d/cups restart
fi
if [ -e /etc/rc.d/cupsys ]; then
/etc/rc.d/cupsys restart
fi
I also created a symbolic link for lpr as per (but edited): http://welcome.solutions.brother.com/bs … e.html#003
edited to /etc/rc.d/cupsd
Last edited by David Batson (2012-09-18 20:11:47)
Offline