Those libraries will keep being available as libc6-i386 and lib32gcc1.
So in theory that driver should still be installable and working even without an i386 archive.
That said, does anyone know how those drivers are working today? Is system-config-printer setting multiarch for the user to be able to install/use those? Does cups has some multiarch glue to load i386 drivers?
These drivers are exclusively proprietary, closed-source drivers, provided by printer manufacturers (like Brother here) on their own web sites. system-config-printer has no mechanism of installing such drivers automatically as a reaction on an appropriate printer being detected.
The only type of closed-source drivers system-config-printer was able to install automatically were LSB driver packages from OpenPrinting, but those always were available in both 32- and 64-bit. Epson was the only producer of such packages.
Therefore system-config-printer has no explicit mechanism to install 32-bit binary printer drivers and/or to prepare the system for such drivers.
CUPS also has no explicit support for 32-bit printer drivers on 64-bit systems, as there is no linking between CUPS or any component of it with the printer drivers. printer drivers run as stand-alone executables CUPS filters) called by CUPS and with data exchange via pipes.
I do not know which proprietary, manufacturer-supplied printer driver packages are in use nowadays and which 32-bit library requirements they have, as there was no complaint/bug report about them for years. Probably the modern technology of driverless IPP printing has vastly reduced the need of proprietary drivers.
From my understanding, a lot of printers require filters to convert postscript output to whatever raster format the printer requires. Some printers accept postscript directly, some work well with open source filters and others need proprietary filter blobs to talk to their hardware.
I have a Samsung and a Brother printer. Neither produces useful output without the blobs. The unified Samsung driver packs 64 and 32 bit binaries, which is fine. The Brother one only has 32 bit.
As youāll know, many printer manufacturers donāt support Linux at all. From my limited experience, I havenāt seen a printer driver filter with complex dependencies, so a limited i386 runtime may well be enough to keep them going. I wouldnāt be optimistic that new 64 bit drivers would be released for old hardware, but Canonical might have the clout to swing this.
Of course, for many years it has been convenient for hardware manufacturers to release i386 binaries for their userland, as these would run on 64 bit and 32 bit installations. As that hardware dies, hopefully the next generation will come with proper 64 bit support. But some stuff like those Brother printers are robust, cheap to run and work well. I think theyāll be around for many years to come.
Thanks for the reply, itās not clear to me though. What printer model do you own?
Looking at the DCP-110C example, the deb provides some script, a 32 bits library and a 32 bits binary ābrprintconfij2ā. Nothing in the deb reference to that binary though, the cups stack doesnāt know about that name either.
Iām unsure how/by what those are being used, do you have any idea?
If I understand correctly, your printer doesnāt work out of the box on Ubuntu today? How does it fail?
To get it working you need to enable the i386 arch and install the Brother provided .deb then things start working?
Do you have an idea if thatās the script provided by the deb it needs or something else? (like if you try to delete the binaries, does it keep working)?
Hi @seb128. Iām currently 180 miles away from my printer but Iāll try to answer as best I can from memory!
Iām fairly sure my model is the HL-1110. It is certainly the āsmall cheap oneā which was on sale on ebuyer for 30 quid a couple of years ago. Iāve also used one of the big, ancient office-class ones at work, but I canāt remember the model number.
There are 2 debs. One sets up cups and the other has the binary filters plus some wrapper scripts for lpr. AFAIK, cups just calls lpr to do the printing. Youāll see from the lpr wrapper scripts that input gets filtered through ghostscript and then sent to the binaries like rawtobr3 (which, I assume, is what converts the output into whatever the printer can understand).
I have a printer that I bought 2 years ago, a Canon PIXMA iP2700, while there is a driver for it available in CUPS, the local driver is very limited in features, like printing in Fast Mode isnāt available, I ended up wasting lots of ink when I used the local driver.
The Linux driver that Canon provides has a print in Fast Mode feature, however, their driver is only available in 32-bit and in order to install and run my printer with their driver, I had to enable 32-bit support.