MFD Troubleshooting

If Pharos fails to behave as expected with respect to an MFD, there are a number of possible causes. One of the most common problems are corrections needed in the GetMfdStatus script. It can also be useful to turn on logging for the Print Server for more detailed investigation.

Editing the 'GetMfdStatusUsingLpd' Script

As an MFD is both a printer and a copier, the Print Server needs to know when an MFD’s internal print queue is empty, so the device can be used for copying. Some MFDs can separate printing from copying themselves; otherwise this job must be handled by an MFD-specific plug-in, which can be a separate executable, or a Pharos Script. Pharos provides a default script, ‘GetMfdStatusUsingLPD’. This script works for most MFDs; however, if the script is inadequate for the MFDs on the site, it can be edited at System > Scripts.

The script works by using LPQ to determine the status of the MFD’s print queue. If LPQ indicates that the MFD is idle, the script passes this information to Pharos, resulting in the MFD being displayed as available for copying at the Copy Station. If the MFD’s status at the Copy Station is “Reserve”, when the MFD is in fact available, it may be necessary to edit the ‘GetMfdStatusUsingLPD’ script, so that it looks for and returns the correct values.

Before editing the script, first determine the following values:

What name does the MFD refer to its print queue as?

MFDs implement their own internal LPD server, and this server gives a name to the MFD’s internal print queue. In some cases it is important to know this name, so that LPQ can query the print queue. Consult the documentation for your MFD to find the name of its print queue. In many cases, however, it will not matter what the queue is referred to as - the fact that LPQ is querying the MFD’s internal server is enough to identify the print queue.

What string does the MFD return when it is available for copying?

Find out the MFD’s LPD response (i.e. what it returns in response to an LPQ query) when there are no jobs in its print queue, and is therefore available for use as a copier. In most cases (but not necessarily all) this will be “no entries”.

Once these values are known, edit the ‘GetMfdStatusUsingLpd’ Script itself. The 'GetMFDStatusUsingLPD' Script that is installed by default cannot be altered, so it must first be copied and saved as a new Script:

  1. Select the script in the List window of the Scripts context in Pharos Administrator.
  2. Click the ellipsis at the end of the Source property to open the Script Source Code dialog box.
  3. Select the entire script, then press CTRL+C to copy it.
  4. Close the Script Source Code dialog box, and click the insert button on the Actions Pane.
  5. Give the Script a name, then in the Source property, click the ellipsis to open the Script Source Code dialog box.
  6. Press CTRL+V to paste the contents of the 'GetMfdStatusUsingLpd' Script into the window.
  7. Click OK and a new script appears in the List Window of Pharos Administrator.
To edit the new script:
  1. Select the new script in the List window of the Scripts context in Pharos Administrator.
  2. Click the edit button at the end of the Source property to open the Script Source Code dialog box.
  3. Near the beginning of the script, you will see the following lines:

  1. If “no entries” is not the string returned by the MFD when there are no print jobs in its queue, change the value of idle_string to the correct string.
  2. If “lp” is not the name used to refer to the MFD’s internal print queue, change the value of queue_name to the correct name.

    Some newer MFDs have multiple queues - make sure you know which queue should be queried (and its name). If multiple queues must be queried, it may be necessary to make one or more copies of the 'GetMfdStatusUsingLpd' script, and paste it onto the end of itself, changing the "lp" value each time. This way the script will effectively execute several times in a row, checking each queue in turn.

  3. Click Validate Script, then OK (assuming the script compiled successfully - if no other changes were made, it should).
  4. Click OK to save the script.

Make sure to associate this new Script with all MFDs at Output Management > Devices > [selected MFD] > Multi-Function Device category.

Print Server Logging

Turning on logging for the Print Server can aid in diagnosing problems with the MFD. An incorrect IP Address or problems with GetMfdStatus script returns will be highlighted here, and if these are not the problem the log will help to indicate what is.

Activate logging for the Print Server and set it to interact with the desktop. A DOS window will open, which will look similar to this:

Close the window to stop logging. If you are logging to a file, open the Log Setter again and delete the file name, then stop and restart the server.

With logging running, start the Copy Station that the MFD is attached to. If all were running correctly, the log would display something similar to this:

In this example, the GetMfdStatusUsingLpd script has been edited and saved as "NewMFDScript". The "NewMFDScript" script is running, and returning a value of “no entries”, which indicates that the MFD is idle - it should be displayed at the Copy Station with the status “Enable”.

If the IP Address is incorrect you will see the logging pause for up to 60 seconds while the polling operation times out.

If the GetMfdStatus script is running, you will see the LPD return displayed under MFDStatusList - check that this matches the value that the script looks for.

Check the log for any other signs of a problem. If no obvious problem can be found, record all log output (or make a note of the log filename, if it was logged to a file), then contact your Authorized Pharos reseller for assistance in diagnosing the problem.