P910nd USB printing problem

Try adding these 2 lines on Startup

I had this problem with an old Brother MFC-9880 printer ( very old printer )
everything is configured well but the printer does not receive data
I never understood why but it's probably the Windows driver which is from 2006

With also a Asrock G10 i cannot use

Hi, I reinstalled everything and gave another try.

This time, I caught Canon CAPT Printer interface while seing the printer for one or two seconds before falling back again into Incorrect Port or Communication Error.

Alhough it seems not that difficult, no clue to resume. Thanks to all helpers hoping community will come up a non-magical simple solution.

Thank you and regards.
Safak Kayhan

This is a long run for a short slide, but you could build cups and follow the Arch Wiki Canon_CAPT guide to configure it with the router as host

For the workstations, configure the default printers to be the remote printer on the router and send the print job "raw".

Personally, I would try to upgrade the printer to a common printer language (PCL5, PCL5E, PCL6 or best Postscript) and a hardwired ethernet port.

Hi, thank you for your reply and suggestion.

As you rightfully underline this is a huge job for a small award. So for instance I will keep working topology, I guess.

So, I think that Linksys router has a printer daemon embedded which communicates with it's own print client software on Windows (USB Control Center). In this case, I just wonder if CUPS is flexible enough to be adjusted for Canon's special packet communication (TCP port 59787 or 59687).

PS: Another concern about not to invest time on CUPS for instance might be that TP-LINK TL-MR3020 Ver 3.20 doesn't offer a standart USB 2.0 but limited to Ver 1.1. This may also be an issue even CUPS successfully installed and adjusted. There is a detailled section about USB powering / connection / data transfer limits at device's page:
(https://openwrt.org/toh/tp-link/tl-mr3020_v3)

Thank you. Regards.
Safak Kayhan

Besides that, we all have to consider that Printer drivers and raw queues are deprecated and will stop working in a future version of cups., as you can easily find surfing the web... For instance, my Linux Mint PC started warning a few months ago, just in the middle of the battle with my old printer...

I'm using the term "filter" to describe converting postscript into CAPT.
I believe the topology would be that the router (essentially an embedded computer) would host cups and perform the postscript -> CAPT filtering. This would benefit from a multicore, fast router cpu and copious ram. You would tell the cups on the router to "share" the printer at port 631 at the router IP, in your case 192.168.1.2:631. The clients on the network send the printjob "raw" (unfiltered) and let the router do the work.

Hi, thank you both for your replies.

I didn't know about legacy printers / drivers and raw queues issue and nice to learn to resume collecting / keeping legacy drivers etc.

CAPT in fact works fine locally. On the other hand, USB Control Centre of Linksys and Printer Utility of Asus realize communication when a printer is attached to router. TP-Link also has a similar printer utiliy named USB_Printer_Controller_Utility. All three and alike, I guess just collect Router-Printer requests from local computer and redirect router eliminating port mismatches (kinda NAT ?). Without a secondary utility (USB Control Centre), Canon driver can't communicate with the router-printer.

Thank you. Regards.
Safak Kayhan

Many websites, specifically openprinting.org refer to *ppd files as drivers. Technically, this is incorrect. I wrote up a howto posted on the FreeBSD forum that can be referenced. The post shows the code line that actually references the true driver and how to pull printer commands (manual feed tray, #10 envelope page size, resolution, etc) from the ppd and send them directly to the printer

In the example ppd the actual driver is specified in this stanza:

*% driver option access with all supported printer drivers and printing
*driverName ljet4: "

ljet4 is supplied by ghostscript and converts postscript to PCL5. If your printer uses PCL6 (increased resolution over PCL5) the driverName would be pxlmono.

The actual driver is ljet4/pxlmono and not the *ppd.

PPDs function by translating user commands to something your particular model of printer understands. I cannot fathom how a method that translates commands to thousands of different makes/models of printers can be summarily removed.

There is one way around this and that is to use a PostScript capable printer. Adobe use to license postscript to various printer manufacturers who flashed it on to their more expensive printers. The printer could process a industry standard *.ps file directly - no PPD/Driver needed. Adobe patents on postscript expired and most Printer manufacturers have a functional equivalent. For example Brother's postscript is BrScript3.