Scheduled Maintenance: We are aware of an issue with Google, AOL, and Yahoo services as email providers which are blocking new registrations. We are trying to fix the issue and we have several internal and external support tickets in process to resolve the issue. Please see: viewtopic.php?t=158230

 

 

 

Brother HL-3040CN printer on Squeeze amd64

Linux Kernel, Network, and Services configuration.
Post Reply
Message
Author
User avatar
vortis
Posts: 74
Joined: 2009-03-11 00:40
Location: New Zealand

Brother HL-3040CN printer on Squeeze amd64

#1 Post by vortis »

Anyone successfully running a Brother HL-3040CN printer on Squeeze amd64?

Following what I could find on the Web, downloaded from Brother site and installed packages 'hl3040cnlpr' and 'hl3040cncupswrapper'. Slightly concerned by the package descriptions, which state 'Inkjet printer definitions', but assumed that was just somebody's lazy copy-n-pasting. Used dpkg '--force architecture' flag as the drivers are 32-bit. Added the printer under CUPS. No driver for this model was offered in the list, so used the PPD file from /usr/share/cups/model/Brother/brother_hl3040cn_printer_en.ppd

Now when I print a test page, or a 'real' document, the print is totally mangled. The text is visible, but slanted to the right about 45 degrees, lines overlaying each other, and all crammed into the top half of the page; the bottom half is solid black. Have tried connecting by USB and by the network interface; both give the same results. Have just upgraded to latest CUPS; no change.

Have installed the printer on a 64-bit notebook running Windows 7, and it prints perfectly (galling though it is to admit that MS does something better than GNU/Linux!)

Grateful for any insights ...

User avatar
vortis
Posts: 74
Joined: 2009-03-11 00:40
Location: New Zealand

Re: Brother HL-3040CN printer on Squeeze amd64

#2 Post by vortis »

A broader question then - is anyone successfully running any Brother printer (with an lpr-type driver) on any 64-bit Debian system?

kedaha
Posts: 3521
Joined: 2008-05-24 12:26
Has thanked: 33 times
Been thanked: 77 times

Re: Brother HL-3040CN printer on Squeeze amd64

#3 Post by kedaha »

I don't know because I don't have such a printer but this post looks useful:
http://www.debianuserforums.org/viewtop ... f=9&t=1491
DebianStable

Code: Select all

$ vrms

No non-free or contrib packages installed on debian!  rms would be proud.

User avatar
mslinux
Posts: 942
Joined: 2010-12-24 05:14

Re: Brother HL-3040CN printer on Squeeze amd64

#4 Post by mslinux »

MsLinux-

forums.debian.net - where facepalm is the default answer :D

© 2012
║▌║│█║▌│█│║▌║█║▌│█│║▌║│

User avatar
vortis
Posts: 74
Joined: 2009-03-11 00:40
Location: New Zealand

Re: Brother HL-3040CN printer on Squeeze amd64

#5 Post by vortis »

kedaha wrote:I don't know because I don't have such a printer but this post looks useful:
http://www.debianuserforums.org/viewtop ... f=9&t=1491
Thanks for that. It's a fair summary of what I did to install my printer. :(

User avatar
vortis
Posts: 74
Joined: 2009-03-11 00:40
Location: New Zealand

Re: Brother HL-3040CN printer on Squeeze amd64

#6 Post by vortis »

mslinux wrote:Have you read this http://welcome.solutions.brother.com/bs ... #HL-3040CN? no?
Yes, I have; it contains most of what's needed, apart from how to set up CUPS, which is not really Brother's concern I guess.

Also found this http://ubuntuforums.org/showthread.php?t=1602075 very helpful, as it points out the lack of HL-3040CN driver in the CUPS selection list and hence the need to supply a PPD file instead; also mentions the slightly unusual IP address for the printer. I was wondering where CUPS gets the list of drivers from, and why the HL-3040CN one is missing from it. I really don't know enough about how CUPS works. Does it do anything different if you pick the driver from the list and/or don't give a PPD file? Is it possible that it is somehow ignoring the driver and using a generic one? How can I test this by printing directly to the printer without using CUPS at all?

User avatar
vortis
Posts: 74
Joined: 2009-03-11 00:40
Location: New Zealand

Re: Brother HL-3040CN printer on Squeeze amd64

#7 Post by vortis »

Progress! Of a sort ...

I decided to try sending a file directly to the printer, bypassing lpr and/or CUPS. That turned out to be a non-trivial mission, but the gist of it is, you have to pipe the file through one of the scripts installed by the Brother driver package: /opt/brother/Printers/hl3040cn/lpd/filterhl3040cn which translates from ASCI to Postscript if need be, then from Postscript to 'Brother-speak'. The output from that script then has to be sent to the printer device, /dev/usb/lp0.

Now, the filter script produced lots of output, but also came up with an error message:

Code: Select all

INFO: Open LUT file /opt/brother/Printers//inf/lut/capt-k_cache08.bin failed!
which looked to me as if it had tried to build a path but had a component missing. It turned out that the missing info (the printer name) should have come from the printer rc file, /opt/brother/Printers/hl3040cn/inf/brhl3040cnrc which, however, was of zero length. I restored it from the Brother driver package, and - mirabile dictu! - the file then printed correctly.

Then tried a print the normal way, via lpr, using

Code: Select all

lpr -P Brother_HL-3040CN the-file-to-be-printed
and it printed garbage as before. Interestingly, though, the rc file /opt/brother/Printers/hl3040cn/inf/brhl3040cnrc was then of zero length again. So it looks as if lpr/CUPS is trashing that rc file, and also ignoring the error message that then results from the filter script, and thus creating the garbage print.

Any CUPS wizards out there who might be able to give a clue as to how/why this is happening?

User avatar
vortis
Posts: 74
Joined: 2009-03-11 00:40
Location: New Zealand

[SOLVED] Brother HL-3040CN printer on Squeeze amd64

#8 Post by vortis »

Trying to pick my way through the CUPS mechanism, I found in the Brother driver package a script called brlpdwrapperhl3040cn. Running it piecemeal, I saw that the rc file was OK before the call to /opt/brother/Printers/hl3040cn/cupswrapper/brcupsconfpt1 but was trashed afterward. No error messages were displayed. The brcupsconfpt1 program is a binary; the source package includes brcupsconfig.c, which writes log output similar to that from brcupsconfpt1, so I guessed that might be the program. If so, it in turn calls brprintconf_hl3040cn, which I was able to run from the command line. That updated the rc file with reasonable-looking printer settings:

Code: Select all

[hl3040cn]
MediaType=Plain
PageSize=A4
InputSlot=Manual
and so forth. The odd thing I found was that it worked when run from the command line as root, but when run as an 'average Joe' user, it truncated the rc file. The file and directory permissions were all good, so I was a bit mystified. I tried to write to the rc file directly; again OK as root, but as an ordinary user, at last! an error message: "No space on device". Light bulb went on. There must be a 'reserve tank' of disk space on the / filesystem (where /opt lives) that's available only to root.

The fix was simple after that - copied all of /opt to a different partition and symlinked it back to /opt. Printing is all working fine now.

ITechGuy
Posts: 2
Joined: 2013-08-14 14:14

Re: Brother HL-3040CN printer on Squeeze amd64

#9 Post by ITechGuy »

do you have instruction of how this as done have spent hours on google and other sites and installed so many different versions on the sd card please help

ITechGuy
Posts: 2
Joined: 2013-08-14 14:14

Re: Brother HL-3040CN printer on Squeeze amd64

#10 Post by ITechGuy »

Code: Select all

E [14/Aug/2013:15:38:18 +0000] Unable to open listen socket for address [v1.::1]:631 - Address family not supported by protocol.
E [14/Aug/2013:15:39:48 +0000] Avahi client failed, closing client to allow a clean restart
E [14/Aug/2013:15:41:30 +0000] Unable to open listen socket for address [v1.::1]:631 - Address family not supported by protocol.
E [14/Aug/2013:15:17:29 +0000] Unable to open listen socket for address [v1.::]:631 - Address family not supported by protocol.
E [14/Aug/2013:15:57:28 +0000] Unable to encrypt connection from 192.168.0.10 - A TLS packet with unexpected length was received.
E [14/Aug/2013:15:57:50 +0000] Returning HTTP Forbidden for CUPS-Get-Devices (no URI) from localhost
E [14/Aug/2013:15:57:50 +0000] [CGI] CUPS-Get-Devices request failed with status 401: Forbidden
E [14/Aug/2013:15:59:51 +0000] [cups-deviced] PID 2337 (snmp) stopped with status 1!
E [14/Aug/2013:16:01:12 +0000] [cups-deviced] PID 2360 (snmp) stopped with status 1!
E [14/Aug/2013:16:24:12 +0000] Unable to open listen socket for address [v1.::]:631 - Address family not supported by protocol.
E [14/Aug/2013:16:24:14 +0000] [cups-deviced] PID 3043 (snmp) stopped with status 1!
E [14/Aug/2013:16:24:30 +0000] [cups-deviced] PID 3066 (snmp) stopped with status 1!
W [14/Aug/2013:16:24:46 +0000] failed to CreateProfile: org.freedesktop.ColorManager.AlreadyExists:profile id 'HL3040CN-Gray..' already exists
W [14/Aug/2013:16:24:46 +0000] failed to CreateProfile: org.freedesktop.ColorManager.AlreadyExists:profile id 'HL3040CN-RGB..' already exists
W [14/Aug/2013:16:24:46 +0000] failed to CreateDevice: org.freedesktop.ColorManager.AlreadyExists:device id 'cups-HL3040CN' already exists
E [14/Aug/2013:16:24:46 +0000] Failed to update TXT record for HL3040CN @ raspberrypi: -2
E [14/Aug/2013:16:17:23 +0000] Unable to open listen socket for address [v1.::]:631 - Address family not supported by protocol.
E [14/Aug/2013:16:46:34 +0000] [cups-deviced] PID 2341 (snmp) stopped with status 1!
E [14/Aug/2013:16:47:37 +0000] SSL shutdown failed: Error in the push function.
W [14/Aug/2013:16:49:42 +0000] failed to CreateProfile: org.freedesktop.ColorManager.AlreadyExists:profile id 'HL3040CN-Gray..' already exists
W [14/Aug/2013:16:49:42 +0000] failed to CreateProfile: org.freedesktop.ColorManager.AlreadyExists:profile id 'HL3040CN-RGB..' already exists
W [14/Aug/2013:16:49:42 +0000] failed to CreateDevice: org.freedesktop.ColorManager.AlreadyExists:device id 'cups-HL3040CN' already exists
W [14/Aug/2013:16:49:43 +0000] failed to CreateProfile: org.freedesktop.ColorManager.AlreadyExists:profile id 'HL3040CN-Gray..' already exists
W [14/Aug/2013:16:49:43 +0000] failed to CreateProfile: org.freedesktop.ColorManager.AlreadyExists:profile id 'HL3040CN-RGB..' already exists
W [14/Aug/2013:16:49:43 +0000] failed to CreateDevice: org.freedesktop.ColorManager.AlreadyExists:device id 'cups-HL3040CN' already exists
E [14/Aug/2013:16:50:51 +0000] [cups-deviced] PID 2502 (snmp) stopped with status 1!
W [14/Aug/2013:16:52:14 +0000] failed to CreateProfile: org.freedesktop.ColorManager.AlreadyExists:profile id 'Brother_HL-3040CN_series-Gray..' already exists
W [14/Aug/2013:16:52:14 +0000] failed to CreateProfile: org.freedesktop.ColorManager.AlreadyExists:profile id 'Brother_HL-3040CN_series-RGB..' already exists
W [14/Aug/2013:16:52:14 +0000] failed to CreateDevice: org.freedesktop.ColorManager.AlreadyExists:device id 'cups-Brother_HL-3040CN_series' already exists
W [14/Aug/2013:16:52:21 +0000] failed to CreateProfile: org.freedesktop.ColorManager.AlreadyExists:profile id 'Brother_HL-3040CN_series-Gray..' already exists
W [14/Aug/2013:16:52:21 +0000] failed to CreateProfile: org.freedesktop.ColorManager.AlreadyExists:profile id 'Brother_HL-3040CN_series-RGB..' already exists
W [14/Aug/2013:16:52:21 +0000] failed to CreateDevice: org.freedesktop.ColorManager.AlreadyExists:device id 'cups-Brother_HL-3040CN_series' already exists
W [14/Aug/2013:16:52:21 +0000] failed to CreateProfile: org.freedesktop.ColorManager.AlreadyExists:profile id 'Brother_HL-3040CN_series-Gray..' already exists
W [14/Aug/2013:16:52:21 +0000] failed to CreateProfile: org.freedesktop.ColorManager.AlreadyExists:profile id 'Brother_HL-3040CN_series-RGB..' already exists
W [14/Aug/2013:16:52:21 +0000] failed to CreateDevice: org.freedesktop.ColorManager.AlreadyExists:device id 'cups-Brother_HL-3040CN_series' already exists
E [14/Aug/2013:16:53:46 +0000] [cups-deviced] PID 2575 (snmp) stopped with status 1!

User avatar
vortis
Posts: 74
Joined: 2009-03-11 00:40
Location: New Zealand

Re: Brother HL-3040CN printer on Squeeze amd64

#11 Post by vortis »

Not sure exactly what you are trying to achieve or what problems you are having. Please describe in more detail.

User avatar
Job
Posts: 813
Joined: 2006-12-30 20:20
Location: no clue
Contact:

Re: Brother HL-3040CN printer on Squeeze amd64

#12 Post by Job »

vortis wrote:A broader question then - is anyone successfully running any Brother printer (with an lpr-type driver) on any 64-bit Debian system?
I once successfully ran Wheezy 64 with a Brother MFC-7360N printer then I changed my HDD which led me to a new installation of Jessie. I found this thread because for the last two days I am unable to do what I previously did in five minutes. I am suspecting we are having issues with these printers because ia32-libs is not installable.
"ia32-libs or lib32stdc++ is required to be installed." I was able to installed lib32stdc++ but it's a no go.
http://welcome.solutions.brother.com/bs ... _prn3.html
#aptitude install life
--------------------------------------------------------------------------------------------------------------
Debian 12 - FreeBSD

User avatar
uBaLd
Posts: 58
Joined: 2008-02-25 23:13

Re: Brother HL-3040CN printer on Squeeze amd64

#13 Post by uBaLd »

It is the 4 time that I install this printer and I'm looking forward to see a real 64bit package !

Debian Jessie (currently testing) the process is this one:

Code: Select all

aptitude install lpr lib32stdc++6
Add 32bit architecture

Code: Select all

dpkg --add-architecture i386
download and install Brother pakage

Code: Select all

dpkg -i hl3040cnlpr-1.1.2-1.i386.deb
dpkg -i hl3040cncupswrapper-1.1.2-2.i386.deb
change your printer setting in cups (localhost:631), chose LPD/LPR and chose your ip (lpd://yourprinterip//binary_p1)

Code: Select all

lpd://169.0.0.5/binary_p1
i got the "binary_p1" trick by calling Brother I thought at that time that it was a shame for them that it was not writing anywhere and that it was so complicated to get work specially considering the fact that it said on the box that it supported linux !!

Hope this can help someone.
Debian is the best !
Debian Jessie / Gnome3
Workstation / 2 Xeon E5-2620 / 32GB RAM

robertvandenbrink
Posts: 1
Joined: 2014-05-12 18:35

Re: Brother HL-3040CN printer on Squeeze amd64

#14 Post by robertvandenbrink »

Thanks uBaLd,

Installing the lib32stdc++6 and --add-architecture i386 commands did the trick for me (Linux Mint 16, now 64 bit, used 32 bit distros before).
Printer is connected via USB so last step wasn't needed.

Post Reply