Recent printers are using USB port as their connection to PC. This may be because of the parallel port is being deprecated. Many mainboards nowadays even doesn’t have parallel port. Using well-known “lp” driver couldn’t detect the USB printer. I was trying also to use “usblp”, a variant of “lp” driver, but it also failed.

The printer is Posiflex AURA 8000. This is a thermal printer. Luckily, my friend Idur, have discovered that it just needed module “pl2303”. The module depends on “usbserial”. So we edited the

/etc/modules

and added:

usbserial
pl2303

Rebooted and we found that the driver linked the device into “/dev/ttyUSB0”. This is undesirable because the old code would be “/dev/lp0”. So, we extract some information from the device:

# udevadm info -a -p $(udevadm info -q path -n /dev/ttyUSB0)

The snippet of the command: (may differ on your system a little bit)

looking at parent device '/devices/pci0000:00/0000:00:1d.1/usb3/3-2/3-2:1.1/ttyUSB0':
    KERNELS=="ttyUSB0"
    SUBSYSTEMS=="usb-serial"
    DRIVERS=="pl2303"
    ATTRS{port_number}=="0"

From the finding, we add new UDEV rule. I named the file as

/etc/udev/rules.d/70-posiflex-printer-usbserial.rules

. It contains:

SUBSYSTEMS=="usb-serial", DRIVERS=="pl2303", NAME="lp%n"

Save it and reboot. Now, we would have the USB Serial printer at /dev/lp0 just like its Parallel port printer. If you have different printer, please comment and let me know that the trick also applicable to other USB Serial printer as well.