I've purchased generic USB POS Receipt Printer and on supplied mini CDROM I've got driver installation scripts (binary) for 32bit and 64bit Linux. Since I am working on 64bit Ubuntu 14.04.3 LTS with CUPS version 1.7.2 and kernel version 3.19.0-47-generic #53~14.04.1-Ubuntu SMP Mon Jan 18 16:09:14 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux I've installed driver installation script for 64bit system. Script executed without errors and it basically installed printer in CUPS and here is printer's status in it:POS58PrinterStatus. Now, if I navigate in CUPS to Print Test Page and click on Print Test Page button, I first get status messages in following order:

  1. Rendering completed.
  2. Connecting to printer.
  3. The printer is not responding.

Here is a screenshot of the situation: Printer is not responding However if I bypass CUPS and execute from terminal the following code, for example:
sudo echo "Test from terminal" > /dev/usb/lp0
the string Test from terminal is printed out, which means cables are ok and printer connection is also ok. Here is also output of script installation:


Models included:

Searching for ServerRoot, ServerBin, and DataDir tags in /etc/cups/cupsd.conf

ServerBin tag not present in cupsd.conf - using default

DataDir tag not present in cupsd.conf - using default

ServerRoot = 
ServerBin  = 
DataDir    = 

Copying rastertozj58 filter to /usr/lib/cups/filter

Copying model ppd files to /usr/share/cups/model/zjiang

Add the POS58 printer

Restarting CUPS
 * Stopping Common Unix Printing System cupsd                                                                                                                                                           [ OK ] 
 * Starting Common Unix Printing System cupsd                                                                                                                                                           [ OK ] 

Install Complete
Go to http://localhost:631, or to manage your printer please!

Now, I've changed LogLevel to debug in cupsd.conf via sudo nano /etc/cups/cupsd.conf and restarted cups via sudo service cups restart and here is output of /var/log/cups/error_log when I tried to print something. What did I miss in CUPS settings?

P.S.: I was forced to move cups debug output to pastebin since it was to long for my post.

  • 1
    I'd first check and see what files the installation installed. If you can include at least a description of them in your question, that would be helpful. – Faheem Mitha Jan 22 '16 at 8:45
  • @FaheemMitha hmm the installation script is in binary mode (executable file), not shell script, do you think screenshot of reinstallation would have helped? – KernelPanic Jan 22 '16 at 8:53
  • If there is an uninstall option, you could put the relevant directories under version control, and then see what changed. Another option (probably harder) is to trace the binary to see what files it is writing to. – Faheem Mitha Jan 22 '16 at 11:58
  • @FaheemMitha I've upgraded the question with install output. – KernelPanic Jan 22 '16 at 13:10
  • You can increase the verbosity of CUPS by replacing "LogLevel ..." by "LogLevel debug" in /etc/cups/cupsd.conf. By experience, I can tell that sometimes CUPS error messages are vague and misleading. I once had a "filter failed" error because colord was not installed for example. – lgeorget Jan 22 '16 at 13:13

See Brainydeal Receipt Printer (alternatively Brainydeal Receipt Printer) which is useful and probably relevant.

In particular, you are using a socket connection. As that thread observes, this is almost certainly wrong.

A socket connection is for a printer which is accessed over the network. Your printer is not networked; it has a direct USB connection to the computer. The device you have used is incorrect - which makes printing impossible.

Change it to usb://. That same thread helpfully has a suggestion on how to do this using the web interface:

The device needs to be changed. One way is:

  1. Reboot the computer with the printer attached and switched on.

  2. Go to http://localhost:631 with your browser.

  3. Go to "Administration". Is the printer found?

  4. Proceed to install a print queue with the PPD in the zjiang directory.

To be clear, you can install a new "software" printer. You don't even need to delete the current entry, and don't do so till you get a new one working, in case you need it for reference.

Another way to do this is via lpadmin. See man lpadmin.

  • how do I compose usb connection string? – KernelPanic Jan 23 '16 at 5:19
  • See above. The relevant string should show up in the web interface. You could also try lpstat -t. – Faheem Mitha Jan 23 '16 at 5:26
  • @KernelPanic Please add your comment as a comment, not as an edit to the answer. Did you find the URI via the web interface, or did you just make it up? – Faheem Mitha Jan 23 '16 at 5:48
  • why would I make it up? Here is info listing from CUPS Printer Settings web interface: Description: POS58 Location: Kitchen Driver: POS58 (grayscale, 2-sided printing) Connection: usb://Unknown/Printer Defaults: job-sheets=none, none media=om_x58mm-y210mm_57.86x209.9mm sides=one-sided – KernelPanic Jan 23 '16 at 6:08
  • @KernelPanic Ok, noted. – Faheem Mitha Jan 23 '16 at 8:09

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.