OpenPrinting / system-config-printer

Graphical user interface for CUPS administration
GNU General Public License v2.0
160 stars 88 forks source link

system-config-printer defaults to wrong driver for Brother printer #164

Closed mb720 closed 4 years ago

mb720 commented 4 years ago

Hi and thanks a lot for system-config-printer!

I had some trouble adding my Brother DCP-L3550CDW printer with the correct driver on Arch Linux because system-config-printer uses the wrong driver per default.

What I did was:

What eventually worked (I got the crucial tip from this comment):

I tried to use system-config-printer instead of the CUPS web interface to add the printer using this IPP URL and the "{current_make_and_model} - IPP Everywhere ™" driver but system-config-printer doesn't give me that option and chooses the incorrect "Brother DCP-L3550CDW CUPS (en)" driver instead.

Now, I don't know if system-config-printer is at fault here, if the driver package is somehow misbehaving, or if it's something else entirely. I was just wondering whether there's a way to avoid having people get stuck in this trap.

Thanks!

Englishman100 commented 4 years ago

Other option is to delete the system-config-printer package and just configure/manage printers through the CUPS web interface. That is what I did to 'solve' https://github.com/OpenPrinting/system-config-printer/issues/161 and https://bugs.archlinux.org/task/65618. Not ideal as both Arch and Cinnamon recommend this package, but its a word-around.

tillkamppeter commented 4 years ago

@mb720, before following this "Last Mean" suggestion of @Englishman100, look for an entry "{current_make_and_model} - driverless, cups-filters {version}", this should have a similar effect as the "Everywhere" entry. The "driverless" entry is from the driverless utility of cups-filters, to retrofit driverless printing into driver-based printer setup tools. @zdohnal, you should add support for the IPP Everywhere driver entry (equivalent of lpadmin ... -m everywhere"), which is a special case like the raw queue (lpadmin ... -m raw`). It is probably of help to have a look into the source code of CUPS' web interface.

zdohnal commented 4 years ago

Hi Matthias,

I see there are two issues:

1) The driver actually exists and it seems s-c-p assigns it correctly (assuming by the name) - would you mind attaching ppd file of not working print queue here as .txt file? IMO I do not see as s-c-p issue if the driver, which says its support the device, does not support the device... 2) what you experience in CUPS web interface is (as Till said) - IPP everywhere - cupsd presents it as 'everywhere' model. When you choose the model, it creates a new ppd based on communication with the device. This feature is not implemented in s-c-p - see #125 .

@tillkamppeter I looked into CUPS source in the past - cups uses non public function _ppdCreateFromIPP for it, so the only option is to use the library function from cups-filters -> use it in python-cups implementation -> use new pycups methods in s-c-p.

I'm sorry I do not have the capacity for adding the feature to pycups and system-config-printer. If anyone is willing to implement that, you are welcome to create pull request and help developing s-c-p.

mb720 commented 4 years ago
1. would you mind attaching ppd file of not working print queue here as .txt file

Sure thing. Do you think it's a good idea to contact Brother support regarding the issue?

I've attached the PPD file in /etc/cups/ppd/ from the driver that's not working:

New_Brother_DCP-L3550CDW_series.txt

zdohnal commented 4 years ago

Regarding the driver, I would try someone who packed the driver in ArchLinux, maybe they will know more about the issue. From PPD - s-c-p correctly finds the driver for your printer by its name - there's not much more s-c-p can do :( .

Missing IPP everywhere support is other issue, tracked in #125 .

mb720 commented 4 years ago

No worries, thanks for having a look!

I already brought up the issue in the comments section of the driver on AUR.