USB printers must attach as a ugen(4) device which means you need to disable ulpt in your kernel - see config(8). Since HPLIP communication with the printer is done via CUPS so you need to give the _cups user r/w access to /dev/{usb,ugen}* To make the hpaio backend available to SANE, simply add "hpaio" to its configuration file. As root: echo "hpaio" >> ${SYSCONFDIR}/sane.d/dll.conf