Deploying Printer - Canon Uniflow printer

MehdiYawari
New Contributor III

Hallo everyone

Need some help with understanding how the printing works on the macos.
Previously I always have set up the printers in our jamf Pro Server and it works all fine. We need only the standard printing(keeping it simple).
Now I have to set up a new canon Uniflow printer available in every office with different models. How do I get the printer driver, which can be different for each printer?
The Printers in our company are configured on a win print server and the driver used on windows devices is: Canon Generic Plus PCL6. How do I get the driver for the printer?

I can access the smb share where the printers are. 

While configuring the printer, I couldn't figure one which ppd file to choose from the list. So I chose the Generic.ppd.
Again the question, which PPD file shoud be chosen for the various printer?

I have been digging for Information on how the printing works on macos. really confusing for something very simple.

Can someone show me the right path for this?

Thanks 
Best regards
Mehdi 

2 ACCEPTED SOLUTIONS

AJPinto
Honored Contributor II

Printing on macOS uses something called CUPS (Common Unix Printing System). However, the basic fundamentals of printing on macOS are the same as printing on Windows. 

 

  1. You need to source the driver. Reach out to the printer manufacture for a MacOS compatible driver if you cannot find one on the internet. 
    1. If the vendor does not make a macOS driver for the printer, that is really it. The printer is not supported on macOS. You can try the generic drivers which are built in to macOS, but milage may very. 
  2. Map the printer directly on a single mac using macOS's GUI. 
    1. Make sure you can print, and that everything works as you expect. This includes installing the driver.
  3. Map the Print Server manually on a MAC.
    1. Make sure you can print, and any authentication works. If authentication does not work, focus on the print server not macOS.

 

If you can get the printer to function locally on the Mac, adding it to JAMF is a simple matter. Managing Printers - Jamf Pro Administrator's Guide | Jamf

  1. On the device you did your testing on open JAMF Admin. There is an option to add a printer, select that and pick the correct printer (or print server mapping) to upload.
  2. Package any drivers you need and add them to JAMF.
    1. You need the exact same driver used in the printer (or print server) mapping that you uploaded. If the driver is not on the Mac you deploy the printer mapping to it wont work.
  3. Push the package and printer mapping however you prefer
    1. you can just blanket deploy the driver, or bundle it as a second payload in the policy that maps the printer. MacOS nor JAMF care how you do it, you just need to get the driver on the Mac.

 

You can get in to the weeds with protocols (LPD, SMB, ext), just use whatever the vendor recommends. Odds are with it being a Windows Print Server it will be SMB. MacOS prefers LPD but that may need extra configuration on the server, and macOS will usually work with SMB.

 

Keep printer nightmare in the back of your mind with this. A LOT has changed in printing encryption and authentication in the past year. Depending on the configuration of your Print Server and what version of macOS you are using it may flat out just not work. I can write a book just on this and its workarounds, I'll save that for if you ask for it.

 

TL;DR:

Start with the driver. Reach out to the vendor to see if they even support their printers or print servers on macOS. If they dont support macOS, you will be finished before you even start.

View solution in original post

AJPinto
Honored Contributor II

Policy looks good to me. So long as those mappings work on the device you grabbed them from, and the drivers are correct this should work like a champ.

 

If you are getting the authentication pop that means the handshake with the printer (or print server) is working and its asking who you are. That is a good thing. Honestly the steps where you are at is really your print teams problem. The Job left the Macs Printer queue, its up to the printer team to figure out if the Job made it to the printer (if it left the Macs printer queue it made it to the printer). The can check the printer queue for jobs with your ID (since you authenticated) or jobs that arrived around the time you printed, I'd let them figure out how they want to find the job. I have seen jobs come through with the SVC Account that mapped printers, that is a setting wrong on the print server if they see this.

 

The next part is if the drivers actually worked. The printer could still not print correctly if the driver you used is not using the correct "language" as the printer. If your job printed right, I'd just leave it. If it not print correctly your printer people need to source a driver to give you. Push sourcing the driver off on the printer team. If there are no drivers for macOS it is on the printer team to say that printing is not supported on macOS and explain why to the higher ups. The Printer team should also be responsible for finding a printing solution for Macs.

 

Things to check.

  • I would monitor the printer queue and see if the Job leaves the Mac's print queue. 
    • If there is an error check the /var/log/cups/error_log (open in text edit)
    • if the print is successful or errored Check /var/log/cups/access_log (open in text edit) if you cant go to the printer to see if it printed.

Once you have logs you can move on from there. This is an example of what a successful print access_log would look like. If you get something like this, you are done. The job is leaving the Macs printer queue. What the job looks like on the other side is your Print teams problem. Focus on the Job leaving the Mac's printer queue.

 

localhost - root [22/Sep/2022:08:28:26 -0500] "POST /admin/ HTTP/1.1" 200 645366 CUPS-Add-Modify-Printer successful-ok
localhost - - [22/Sep/2022:08:31:18 -0500] "POST /printers/iPrint___B_W HTTP/1.1" 200 978 Create-Job successful-ok
localhost - - [22/Sep/2022:08:31:18 -0500] "POST /printers/iPrint___B_W HTTP/1.1" 200 541 Send-Document successful-ok
localhost - - [22/Sep/2022:08:31:19 -0500] "POST / HTTP/1.1" 200 437 CUPS-Get-Document successful-ok

 

 

If you are missing drivers the error_log will look something like this. The log will also have information on why a job failed, though its not the most user friendly logging.

 

E [22/Sep/2022:08:03:20 -0500] iPrint_BW: File “/Library/Printers/Lexmark/filter/CommandFileFilterG2.bundle/Contents/MacOS/CommandFileFilterG2” not available: No such file or directory
E [22/Sep/2022:08:03:20 -0500] iPrint_BW: File “/Library/Printers/Lexmark/filter/rerouteprintoptionG2” not available: No such file or directory
E [22/Sep/2022:08:22:58 -0500] iPrint_BW: File “/Library/Printers/Lexmark/filter/CommandFileFilterG2.bundle/Contents/MacOS/CommandFileFilterG2” not available: No such file or directory
E [22/Sep/2022:08:22:58 -0500] iPrint_BW: File “/Library/Printers/Lexmark/filter/rerouteprintoptionG2” not available: No such file or directory

 

 MacOS should also bark back with an error when you try to print.

AJPinto_0-1663854101696.png

 

View solution in original post

7 REPLIES 7

ljderek
New Contributor II

A quick search on Canon's website indicates that the Uniflow printer doesn't have any macOS driver. Sometimes these drivers are provided by Apple but not always. The only way you could possibly do this is using a Generic driver, but you will get no features. Just a simple point-and-click black and white laser printer that will only really be good for printing basic documents. No duplex, choosing a tray, cover pages, security, etc.

In macOS, the main printing protocol for printing in an office environment is LPR. PPDs most of the time are installed through a manufacturer's installation package but also can be auto-detected and downloaded from Apple when creating a queue (direct-to-printer only).
In the scenario you described, you can either send LPR jobs directly to the printer, or through the print server. In order to go through a Windows Print Server, your sysadmin needs to actually make sure it's enabled/installed as it's an optional part of Windows Server.

Once Windows Server is configured for LPR, you install the print driver on the Mac. set up a queue on macOS using the DNS name of the print server as the printer name and the printer share name as the queue. Then, you will select the appropriate PPD and set up your custom settings, if applicable.

To push out in your environment, use Jamf Admin to capture the queue, and push out the manufacturer's installation package and the queue either through Jamf Remote or a policy.

Good luck.

AJPinto
Honored Contributor II

Printing on macOS uses something called CUPS (Common Unix Printing System). However, the basic fundamentals of printing on macOS are the same as printing on Windows. 

 

  1. You need to source the driver. Reach out to the printer manufacture for a MacOS compatible driver if you cannot find one on the internet. 
    1. If the vendor does not make a macOS driver for the printer, that is really it. The printer is not supported on macOS. You can try the generic drivers which are built in to macOS, but milage may very. 
  2. Map the printer directly on a single mac using macOS's GUI. 
    1. Make sure you can print, and that everything works as you expect. This includes installing the driver.
  3. Map the Print Server manually on a MAC.
    1. Make sure you can print, and any authentication works. If authentication does not work, focus on the print server not macOS.

 

If you can get the printer to function locally on the Mac, adding it to JAMF is a simple matter. Managing Printers - Jamf Pro Administrator's Guide | Jamf

  1. On the device you did your testing on open JAMF Admin. There is an option to add a printer, select that and pick the correct printer (or print server mapping) to upload.
  2. Package any drivers you need and add them to JAMF.
    1. You need the exact same driver used in the printer (or print server) mapping that you uploaded. If the driver is not on the Mac you deploy the printer mapping to it wont work.
  3. Push the package and printer mapping however you prefer
    1. you can just blanket deploy the driver, or bundle it as a second payload in the policy that maps the printer. MacOS nor JAMF care how you do it, you just need to get the driver on the Mac.

 

You can get in to the weeds with protocols (LPD, SMB, ext), just use whatever the vendor recommends. Odds are with it being a Windows Print Server it will be SMB. MacOS prefers LPD but that may need extra configuration on the server, and macOS will usually work with SMB.

 

Keep printer nightmare in the back of your mind with this. A LOT has changed in printing encryption and authentication in the past year. Depending on the configuration of your Print Server and what version of macOS you are using it may flat out just not work. I can write a book just on this and its workarounds, I'll save that for if you ask for it.

 

TL;DR:

Start with the driver. Reach out to the vendor to see if they even support their printers or print servers on macOS. If they dont support macOS, you will be finished before you even start.

MehdiYawari
New Contributor III

Hi AJPinto

Thanks alot for the clarification.
I have added the printer on the jamf server using the smb:
Screenshot 2022-09-22 at 09.20.13.png
Printer Setting are kept simple:
Cupsname: name of the printer Uniflow
Model: Blank (No Model for the canon Uniflow)
Device URL: SMB path
User generic PPD is checked as true.
I have contacted the printing department for the printer driver. As always, they know nothing about mac but they have contact the ventor for the driver, if the printer is supported for the macOS.

Strange enough, I had a Model Name of the old printer and installed the driver with the printer.
when I test to print something, it ask me to authenticate and the authencation is also successfull.
The Document dispears from the queue and sent to printer.
 
Look likes it worked. I dont have any printer near me to check, if the document gets printed. That makes the troubleshooting more defficult and going to try it with user. 

AJPinto
Honored Contributor II

Policy looks good to me. So long as those mappings work on the device you grabbed them from, and the drivers are correct this should work like a champ.

 

If you are getting the authentication pop that means the handshake with the printer (or print server) is working and its asking who you are. That is a good thing. Honestly the steps where you are at is really your print teams problem. The Job left the Macs Printer queue, its up to the printer team to figure out if the Job made it to the printer (if it left the Macs printer queue it made it to the printer). The can check the printer queue for jobs with your ID (since you authenticated) or jobs that arrived around the time you printed, I'd let them figure out how they want to find the job. I have seen jobs come through with the SVC Account that mapped printers, that is a setting wrong on the print server if they see this.

 

The next part is if the drivers actually worked. The printer could still not print correctly if the driver you used is not using the correct "language" as the printer. If your job printed right, I'd just leave it. If it not print correctly your printer people need to source a driver to give you. Push sourcing the driver off on the printer team. If there are no drivers for macOS it is on the printer team to say that printing is not supported on macOS and explain why to the higher ups. The Printer team should also be responsible for finding a printing solution for Macs.

 

Things to check.

  • I would monitor the printer queue and see if the Job leaves the Mac's print queue. 
    • If there is an error check the /var/log/cups/error_log (open in text edit)
    • if the print is successful or errored Check /var/log/cups/access_log (open in text edit) if you cant go to the printer to see if it printed.

Once you have logs you can move on from there. This is an example of what a successful print access_log would look like. If you get something like this, you are done. The job is leaving the Macs printer queue. What the job looks like on the other side is your Print teams problem. Focus on the Job leaving the Mac's printer queue.

 

localhost - root [22/Sep/2022:08:28:26 -0500] "POST /admin/ HTTP/1.1" 200 645366 CUPS-Add-Modify-Printer successful-ok
localhost - - [22/Sep/2022:08:31:18 -0500] "POST /printers/iPrint___B_W HTTP/1.1" 200 978 Create-Job successful-ok
localhost - - [22/Sep/2022:08:31:18 -0500] "POST /printers/iPrint___B_W HTTP/1.1" 200 541 Send-Document successful-ok
localhost - - [22/Sep/2022:08:31:19 -0500] "POST / HTTP/1.1" 200 437 CUPS-Get-Document successful-ok

 

 

If you are missing drivers the error_log will look something like this. The log will also have information on why a job failed, though its not the most user friendly logging.

 

E [22/Sep/2022:08:03:20 -0500] iPrint_BW: File “/Library/Printers/Lexmark/filter/CommandFileFilterG2.bundle/Contents/MacOS/CommandFileFilterG2” not available: No such file or directory
E [22/Sep/2022:08:03:20 -0500] iPrint_BW: File “/Library/Printers/Lexmark/filter/rerouteprintoptionG2” not available: No such file or directory
E [22/Sep/2022:08:22:58 -0500] iPrint_BW: File “/Library/Printers/Lexmark/filter/CommandFileFilterG2.bundle/Contents/MacOS/CommandFileFilterG2” not available: No such file or directory
E [22/Sep/2022:08:22:58 -0500] iPrint_BW: File “/Library/Printers/Lexmark/filter/rerouteprintoptionG2” not available: No such file or directory

 

 MacOS should also bark back with an error when you try to print.

AJPinto_0-1663854101696.png

 

MehdiYawari
New Contributor III

Hi AJPinto
Many many thanks for your help.
I did a clean reset and enrollment on a device and after that, the printer setting looks good. I will check the setting with the printing team and lets see what they have to say about this.
I am installing our old canon driver RN and I hope they can get me a new driver(supported on macOS) for the printing system.

I found a handy command from here to reset the printing system on the macOS. Here is it:

/System/Library/Frameworks/ApplicationServices.framework/Frameworks/PrintCore.framework/Versions/A/printtool --reset -f

maybe this will help someone too.

Again many thanks and wish you all the best



 

 

AJPinto
Honored Contributor II

Woot!!! I am glad to hear you got it working. Though, keep an eye on that driver. MacOS is not very tolerant of outdated software. If something breaks with a macOS update down the road, get that driver updated before doing anything else. When you do get an updated driver, reupload the new printer mappings with the new driver package to JAMF.

 

If you want to play around more with macOS/Unix print configuration. Enable the CUPS web interface and have fun.

  1. Open terminal and run cupsctl WebInterface=yes
  2. Open a web browser and go to http://localhost:631/
  3. Have fun
  4. When you are done run cupsctl WebInterface=no  in terminal to disable the web interface

eranstark
New Contributor

Hi @MehdiYawari ,

we also started to use it sometime ago but i find distribute the printers with the drivers in that case could be a mistake due to the fact the uniflow printers are cloud based solution, therefore i will suggest you to get from your uniflow tenet the Smartclient which will do all the work for you in that case you just need to deploy the Smartclient to the devices.