[SOLVED] Brother rpm driver fails to install. How do I trick it?
SlackwareThis Forum is for the discussion of Slackware Linux.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
You have not yet told us how you are connecting to the printer (network, USB?). That may be important.
You are right, I didn't. Sorry about that. The network cable is plugged in and the printer found updates to install that way. But since then I chose wireless connection and it disregards the physical cable.
Quote:
As I mentioned earlier, I had issues getting a Brother MFC-L8900CDW working. Here are a few things from my notes:
[*]CUPS expects printer filter information in directory /usr/lib/cups/filter.[*]The Brother installation placed these files in /opt/brother/Printers/mfcl8900cdw/cupswrapper.[*]I created links in /usr/lib/cups/filter for the three files:
[*]This still didn't work, so I turned on debugging log using “cupsctl –debug-logging” and restarted cups using “/etc/rc.d/rc.cuip restart”.
This was copied from the forum
# cupsctl –debug-logging
cupsctl: Unknown option "-�"
Usage: cupsctl [options] [param=value ... paramN=valueN]
I copied this from the error message
# cupsctl --debug-logging
Quote:
[*]When I tried printing again, I found an error log entry saying /opt/brother/Printers/mfcl8900cdw/lpd/brmfcl8900cdwfilter: No such file or directory.[*]The file (plus one other) did exist one directory down:[*]--- /opt/brother/Printers/mfcl8900cdw/lpd/x86_64[*]I created two more links:[*]--- brmfcl8900cdwfilter -> x86_64/brmfcl8900cdwfilter[*]--- brprintconf_mfcl8900cdw -> x86_64/brprintconf_mfcl8900cdw
The files under x86_64 are already linked to the upper directory lpd.
I still created all your links to /usr/lib64/cups/filter, figuring it wouldn't damage anything.
Quote:
...and then I could print.
The files you need will have names matching your printer model (not mine). Try searching for relevant files and making those links. Turn on CUPS debugging and check the log for additional details on where it fails. That will help identify where it is looking, and for what files. Find where Brother placed those files and create links where CUPS is expecting them.
XFCE4 puts up a flag saying "Not connected?"
From the error log:
Code:
D [10/Mar/2024:19:09:54 +0100] [Client 118] cupsdWriteClient error=0, used=0, state=HTTP_STATE_GET_SEND, data_encoding=HTTP_ENCODING_CHUNKED, data_remaining=0, response=(nil)(), pipe_pid=20682, file=16
D [10/Mar/2024:19:09:54 +0100] [Client 118] Waiting for CGI data.
D [10/Mar/2024:19:09:54 +0100] [Client 118] con->http=0x5613827f73b0
D [10/Mar/2024:19:09:54 +0100] [Client 118] cupsdWriteClient error=0, used=0, state=HTTP_STATE_GET_SEND, data_encoding=HTTP_ENCODING_CHUNKED, data_remaining=0, response=(nil)(), pipe_pid=20682, file=16
D [10/Mar/2024:19:09:54 +0100] [Client 118] Waiting for CGI data.
D [10/Mar/2024:19:09:54 +0100] [Client 119] HTTP_STATE_WAITING Closing for error 32 (Broken pipe)
D [10/Mar/2024:19:09:54 +0100] [Client 119] Closing connection.
D [10/Mar/2024:19:09:54 +0100] cupsdSetBusyState: newbusy="Active clients", busy="Active clients"
D [10/Mar/2024:19:09:54 +0100] [Client 118] CGI data ready to be sent.
D [10/Mar/2024:19:09:54 +0100] [Client 118] con->http=0x5613827f73b0
D [10/Mar/2024:19:09:54 +0100] [Client 118] cupsdWriteClient error=0, used=0, state=HTTP_STATE_GET_SEND, data_encoding=HTTP_ENCODING_CHUNKED, data_remaining=0, response=(nil)(), pipe_pid=20682, file=16
D [10/Mar/2024:19:09:54 +0100] [Client 118] Waiting for CGI data.
D [10/Mar/2024:19:09:54 +0100] [Client 118] Sending 0-length chunk.
D [10/Mar/2024:19:09:54 +0100] [Client 118] Flushing write buffer.
D [10/Mar/2024:19:09:54 +0100] [Client 118] New state is HTTP_STATE_WAITING
D [10/Mar/2024:19:09:54 +0100] [Client 118] Waiting for request.
D [10/Mar/2024:19:09:54 +0100] cupsdSetBusyState: newbusy="Not busy", busy="Active clients"
D [10/Mar/2024:19:09:54 +0100] PID 20682 (/usr/lib64/cups/cgi-bin/printers.cgi) exited with no errors.
D [10/Mar/2024:19:09:55 +0100] Expiring subscriptions...
D [10/Mar/2024:19:09:58 +0100] [Job 11] Unable to locate printer \"BRWC894023D1294\".
D [10/Mar/2024:19:09:58 +0100] Expiring subscriptions...
D [10/Mar/2024:19:09:58 +0100] Report: clients=3
D [10/Mar/2024:19:09:58 +0100] Report: jobs=11
D [10/Mar/2024:19:09:58 +0100] Report: jobs-active=1
D [10/Mar/2024:19:09:58 +0100] Report: printers=2
D [10/Mar/2024:19:09:58 +0100] Report: stringpool-string-count=1540
D [10/Mar/2024:19:09:58 +0100] Report: stringpool-alloc-bytes=12600
D [10/Mar/2024:19:09:58 +0100] Report: stringpool-total-bytes=25536
D [10/Mar/2024:19:09:59 +0100] Expiring subscriptions...
D [10/Mar/2024:19:10:04 +0100] [Client 118] HTTP_STATE_WAITING Closing for error 32 (Broken pipe)
:
OK. So the error log you post shows no signs (to me) that it can't find the appropriate driver files. I do see one thing that looks odd:
Quote:
Unable to locate printer "BRWC894023D1294".
The position of the quotes looks peculiar to me, and URLs usually use /, not \. (Edit. Hmmm. The two back-slash characters that appear in your text disappeared in my quote. I think that perhaps they are escape sequences to force the double-quotes to be used as double-quotes, not something else. The back-slashes appear before each ".)
When I look in XFCE4's "Printer Settings" dialog, the properties for my MFCL8900CDW list this as Device URL:
Quote:
lpd://BRNB42200705537/BINARY_P1
I also have the same printer installed as a generic IPP protocol printer. (An issue with some features not working with the Brother driver). For that printer, the Device URL is:
Quote:
ipp://192.168.192.86
Do you know the IP address of the printer? Can you ping it, to confirm that it is available on the network?
As this is a network connection, perhaps you can add the printer using a generic driver? This can be done via the CUPS web interface, IIRC. If the printer is not listed as a "discovered network printer", you can choose the Internet Printing Protocol option (there seems to be both an http and an https option), and go from there. I got mine to work with the driver labelled Generic, PCL Color Laser – CUPS+Gutenprint v5.3.4 [en], but there are several generic options, I think.
(If the CUPS dialog finds the printer as a "discovered" printer, you may be able to point it to the PPD file for your driver.)
Last edited by dhalliwe; 03-10-2024 at 08:11 PM.
Reason: Added explanation of disappearing backslashes in quote.
I have a Brother DCP-L3560CDW printer. Drivers are published in rpm and deb format.
The local specs for that printer say that it supports IPP... which means you're in luck! It doesn't need any drivers to work with CUPS.
In the CUPS 'Add Printer' dialog, choose 'Internet Printing Protocol (ipp)' and click Continue.
In the Connection: box, enter: ipp://192.168.x.x/BINARY_P1 (substituting the printer's IP address, and leave the port as "/BINARY_P1" for now... this seems to be the default for Brother printers)
On the next screen, enter a name, model number, location and click continue.
On the next screen, highlight Brother and click continue.
For model, highlight IPP Everywhere and click on "Add Printer."
That should be it.
Note: you can find out the correct port number (the bit which says BINARY_P1) in the "running services" section of the printer's web-based management.
You should try using IPP, as shown in my previous post.
My notes are incomplete, and over a year old, but my recollection is that I did go through the IPP option in CUPS, and still had to choose from a printer driver (or it did it automagically for me).
In any event, there are ways for the OP to try paths to printing that bypass the installation of the Brother drivers.
The info for the op's printer/scanner says it supports scanning to ftp. So for the scanning side of things, the op needs only to setup ftpd on some linux machine and then point the device's scanning to it. Sane drivers not required.
It supports "br-script" which is Brother's postscript clone, which is pretty much a universal output language for *nix printing. And given the high likelyhood that it supports ftp printing, by transferring files to the printer's internal ftp server, even Cups is not required for printing. A shell script can be used to ftp-print the jobs, and the printer can handle the queuing?
^ You're over-thinking it, but yes, all should work. The scanner function will also connect to a SAMBA file share if you like.
IME, the best scanning software for Linux is actually a commercial product called VueScan. It'll auto-detect every scanner on your LAN, and it works with the scanners in Brother MFCs. High-res, duplex scan works well.
Yes, my Brother MFC does support scanning (PDF format) sent to an ftp server (I do this for my personal account) or a network share set up in my Samba config (where household shares live).
The local specs for that printer say that it supports IPP... which means you're in luck! It doesn't need any drivers to work with CUPS.
In the CUPS 'Add Printer' dialog, choose 'Internet Printing Protocol (ipp)' and click Continue.
Done
Quote:
In the Connection: box, enter: ipp://192.168.x.x/BINARY_P1 (substituting the printer's IP address, and leave the port as "/BINARY_P1" for now... this seems to be the default for Brother printers)
Done
Quote:
On the next screen, enter a name, model number, location and click continue.
Done
Quote:
On the next screen, highlight Brother and click continue.
Done
Quote:
For model, highlight IPP Everywhere and click on "Add Printer."
At first I missed the Everywhere part, and failed. Then I went back and corrected the setting.
Quote:
That should be it.
It was! I haven't checked all the bells and whistles. But it prints and scans.
In my girlfriends computer (32-bit, Slackware 14.2) IPP Everywhere doesn't show up. Still, it does work. At least rudimentary. However, it shows the message "Printer error" as it prints ...
Quote:
Note: you can find out the correct port number (the bit which says BINARY_P1) in the "running services" section of the printer's web-based management.
I may just look at that. Happy to be able to print anything right now.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.