Having a bit of a dilema with printing using the latest vanilla TomatoUSB (2.6 kernel) on an RT-N16 (+external HD) with an HP LaserJet MFD.
I was hoping to see more people in the community share experiences and advice than seems to be the case…third time lucky.
The facts as they stand:
USB printing is working with p910nd, I can setup an LPR port in Windows and transmit the RAW output to the printer once rendered by the Windows driver and it test prints fine.
USB scanning with SANE is working over the network, I can setup a SANE-Frontend connect to SANE-backend via Xinetd and access the scanner via HPLIP and the hpaio driver. Preview scans etc are working well.
Problem is if you scan you cannot then print and vice versa, you have to restart the router or un-plug/plug the hardware back into the USB port.
I think I know what the root cause of the problem is… I believe p910nd is accessing the printer /dev/usb/lp0 via a usb kernel module usblib, but saned is using a special HP driver accessing the hardware directly possibly including USBLIB. I think they both work independently and what is happening is basically one method or driver is taking ownership of the device locking the other out.
What to do about it:
1. Can p910nd be configured to use the HPLIP drivers? I tried to do this by killing the process and starting the daemon manually with the command line options including the path or address to the hardware as seen by SANE, the process ran but printing was unsuccessful. I think this means the p910nd is made to use the USB kernel module only, though I could of course have botched the syntax.
2. Can one use another printing service like CUPS to access the HPLIP driver? According to other information around the web this seems to be possible, however CUPS (installed from Optware ddwrt feed) does not appear to be running well on TomatoUSB when you start it manually there is a segmentation fault, which isn't a good sign. There was a suggestion elsewhere to try installing the CUPS Optware package from the OpenWRT feed though the feedback suggested that had problems too despite is starting without a segmentation fault. Maybe worth a go…
Is there anything I have overlooked or another print daemon to consider?
btw probably a stupid question, but how do processes like p910nd get started automatically as the router boots into TomatoUSB? I assumed there would be an autostart script somewhere or something in /etc/inetd but I'll be dammed if I can find it?