Printer server simple guide

Hi all;
I have a HP Laserjet and I want to connect my printer to the router using USB port, and then control my printer from windows or IOS and android, from both 'Lan' and 'Wan' netrowk.
for example: I have a .docx document open in my windows, and my printer connected to the router. now I want to send my print request via network to the printer(Turn my router to print server).
I don't know how to do this(install drivers, configure firewall, manage printers and etc...).
thanks a lot.

Start by reading these guides

https://openwrt.org/docs/guide-user/services/print_server/start

3 Likes

Thank you, But Here when I trying to install cups, there is no any package available to download using opkg.

opkg update; opkg install cups

If the issue persists, post:

ubus call system board
1 Like

Someone will correct me if I'm wrong, but I think the reason you can't download/install CUPS is because it is not a pre-built package. ie. I think you have to compile your own CUPS package.
https://github.com/Gr4ffy/lede-cups

fwiw, perhaps try the non-spooling p910nd print server. Easier to get up and running but you won't be able to manage the print queue. It works fine for my occasional printing from Windows and macOS to my USB1 wired antique Brother laser printer.
https://openwrt.org/docs/guide-user/services/print_server/p910ndprinterserver

2 Likes

I don't believe CUPS is available as a package under OpenWrt. It's also not a good choice to be doing rasterization and spooling on a device that has limited RAM and where flash wear is a problem.

See also

1 Like

It's not going to work. I do this steps and create a rule into firewall like:

#Allow attached network printer
config 'rule'
        option 'src' 'lan'
        option 'proto' 'tcp'
        option 'dest_port' '9100'
        option 'target' 'ACCEPT'

and I'm sure start the p910nd service into OpenWrt at port 9100. also I check my /dev/usb and I see the 'Ip0' when the printer connected. from windows 10, I installed printer driver and TCP/IP Printer based that guide. but when I send my print request,

fwiw, the wiki instructions work for me. I'm using LEDE 17.01.6.

I didn't need to create any firewall rule.

I reset a spare router to erase all settings, and installed with p910nd. It has 18.06.1. p910nd printing did not work...

I then erased all settings and flashed it to 17.01.6. Installed p910nd and printing worked straight away....

Next, I upgraded to 18.06.1, keeping settings. Reinstalled p910nd packages. Printing continues to work.

I reset the router, erasing all settings. Set up p910nd printing. Printing did not work. But when I power cycled the router, p910nd printing now works.

1 Like

OK. after few days of hard working and trying with p910nd service, I can't start and using that service with my printers. about firewall, you right. because of In-network activity we don't need to create firewall rule. Just start the service and it enable listen mode on port 9100. I check the that too and everything seems OK. I tried so many configuration on windows side(Local And Printers), but noting happen. I also try to reboot and power cycle(as you mentions) but not work for me.

cups on master? tba/discontinue/sillymecantfind/samba4?

nevermind, found this eventually;

https://openwrt.org/docs/guide-user/services/print_server/cups.server

There is no pre-built CUPS package for LEDE 17 and OpenWRT 18+.

Here are basic instructions to compile the CUPS package: https://github.com/Gr4ffy/lede-cups

(It is recommended to use p910nd non-spooling print server instead of CUPS on a router)

mind if we move it to the top?

1 Like

On 19.7.10, my Brother MFC attached via USB to Openwrt kept printing blank page after blank page non-stop, whether p910nd is set to bi-directional or not, if the client OS printing sets the printer server as a General Postscript Printer.

As soon as I select the right Brother MFC printer profile, rather than General Postscript Printer, the USB-attached printer starts printing correctly.

So installing the corresponding vendor-specific printer profile on the printing client end is a very necessary step.