foigus' Notes

Mostly OS X Admin Related

Tag Archives: printers

Trial by Fiery

To start, be sure to read “Printers Were Sent From Hell To Make Us Miserable“.

This post is going to focus on EFI’s Fiery RIP print drivers and what can be done to deploy them across a fleet of Macs. If that doesn’t make one want to tear their hair out, try this on for size–all the certificates signing Fiery driver packages expired on March 30, 2017. Much like other companies’ certificate expirations, this renders the packages unusable. Since Fiery driver packages are not simple packages that can be expanded and flattened to strip the signature, new packages will need to be downloaded from EFI.

The first step to obtaining the right drivers for a Fiery RIP-based printer is to determine the printer model and Fiery RIP print server model.  While it’s not essential to know the Fiery RIP print server model, it may be required to obtain the proper driver.  For this exercise I’m going to assume a Ricoh Pro C901 model printer.

The next step is to go to EFI’s Fiery RIP driver download webpage.  While it’s possible to download the print driver directly from the Fiery RIP rather than EFI, the driver there is likely out of date.  Once signed into the EFI download site, select the “Partner” (printer vendor) and “Printer/Press Model”.  Hopefully the next selection of the “Fiery Model and Version” will have only one option, however there is a possibility there may be multiple entries here–for this exercise, the Ricoh Pro C901 model printer has four “Fiery Model and Versions” listed:

RIP Revisions and Models

The options above break down as follows:

  • “E-41” and “E-81” are the model of the Fiery RIP
  • “1.0” and “1.1” are the revision of the Fiery RIP

Regarding the Fiery RIP model, it may require reaching out to a print vendor to determine which RIP model is installed.  Regarding the Fiery RIP revision, this is visible by accessing the RIP’s web interface in a browser by entering its hostname:

901c RIP Version Redacted

For this exercise I’m going to assume an E-41 RIP, version 1.0.

Next is OS choice–the current Fiery RIP drivers support Mac OS X 10.7 through macOS 10.12, so the most recent driver should be OK.

Finally is language choice–the EFI download page may offer options for Japanese, Simplified Chinese, and other languages. For this case we’ll use the “other” languages option, which includes English.

Note once the driver has been downloaded from EFI, it may be useful to be able to decode the driver from the disk image name. EFI’s driver disk images use the following pattern:

<vendor>_<rip_model>_<rip_version><language(s)>_
FD<driver_major_version>_v<driver_revision><new_cert_marker>.dmg

The disk image “Ricoh_E41_v1_0R_FD51_v1Cert.dmg” translates to:

  • Vendor: Ricoh
  • RIP Model: E41
  • RIP Version: 1.0
  • Language: Roman (currently German , English , Spanish , French , Italian, and Dutch)
    Other language codes might include “J” for Japanese, or “SC” for Simplified Chinese. Note Roman languages were formerly designated by letters, so “EFIGSD” was English, French, Italian, German, Spanish, and Dutch
  • Fiery Driver Major Version: 51
  • Driver Revision: 1
  • New certificate (the lack of a “Cert” would indicate the old, expired certificate)

Regarding getting these drivers installed, I have written an AutoPkg recipe for revision “FD50” Fiery drivers, which also appears to work for “FD51” drivers. While researching these drivers, I encountered a few things:

  • Revision FD50/FD51 drivers have an postinstall (installation) script that recognizes a command line installation
  • Revision FD50/FD51 drivers seem to have consistent postinstall scripts across all printer/RIP models
  • Revision FD50/FD51 drivers will skip installation of the Fiery Driver Updater if it doesn’t exist

My goal is to remove the Fiery Driver Updater and repack the package–I’ve posted the recipes here, and the workflow is as follows:

  • Navigate to EFI’s download page and download the appropriate driver–currently “FD50” and “FD51” drivers have been successfully tested.
  • Note the name of the disk image (e.g. “Ricoh_E41_v1_0R_FD51_v1Cert.dmg”) and confirm that it is indeed named for a “FD50” or “FD51” revision driver
  • Add my AutoPkg repo and then create a uniquely-named override for the pkg recipe, using the name of the disk image
autopkg repo-add foigus-recipes 
autopkg make-override GenericFieryFD50.pkg -n Ricoh_E41_v1_0R_FD51_v1Cert.pkg
  • Edit the override, setting the following suggested “Input” values:
    • NAME is the name of the downloaded disk image without “.dmg”, and adding “_No_Update” at the end of the name (e.g. “Ricoh_E41_v1_0R_FD51_v1Cert_No_Update”)
    • PACKAGE_ID should be “com.efi.DMG-Name-with-hyphens-substituted-for-underscores.pkg” since the PkgCreator processor doesn’t like underscores (e.g. “com.efi.Ricoh-E41-v1-0R-FD51-v1Cert.pkg”)
    • PACKAGE_VERSION of 1.$version, where $version is the digits after “FD” in the downloaded driver (e.g. “1.51”)
  • Run the recipe with the “-p” option pointing to the downloaded driver dmg:
$ autopkg run Ricoh_E41_v1_0R_FD51_v1Cert.pkg -p /path/to/Ricoh_E41_v1_0R_FD51_v1Cert.dmg 
Processing Ricoh_E41_v1_0R_FD51_v1Cert.pkg...

The following packages were built:
 Identifier Version Pkg Path 
 ---------- ------- -------- 
 com.efi.Ricoh-E41-v1-0R-FD51-v1Cert.pkg 1.51 /Users/admin/Library/AutoPkg/Cache/local.pkg.Ricoh_E41_v1_0R_FD51_v1Cert/Ricoh_E41_v1_0R_FD51_v1Cert_No_Update.pkg

The package output still acts like the original Fiery package, but if run from the command line installs silently and skips installing the Fiery Driver Updater (including the Fiery Driver Updater LaunchAgent). This recipe doesn’t attempt to make the Fiery package any less weird (it’s still a big postinstall script that goes at least two layers deep with “installer” installing other pkgs), but hopefully should provide a common repackaging route.