I was trying to connect a wi-fi printer to my router using WPS, but the WPS button wasn't working, so i decided to tinker with the routers USB capabilities, so i could use that for the printer.
Please connect to your OpenWrt device using ssh and copy the output of the following commands and post it here using the "Preformatted text </> " button:
Remember to redact passwords, MAC addresses and any public IP addresses you may have:
ubus call system board
cat /etc/config/network
cat /etc/config/firewall
cat /etc/config/p910nd
Right, i think i redacted all the things that could lead to a public IP, minus internal IPV4 addresses from LAN. The printer in question is a EPSON L3150
root@OpenWrt:~# ubus call system board
{
"kernel": "6.6.93",
"hostname": "OpenWrt",
"system": "Qualcomm Atheros QCA9558 ver 1 rev 0",
"model": "TP-Link Archer C7 v2",
"board_name": "tplink,archer-c7-v2",
"rootfs_type": "squashfs",
"release": {
"distribution": "OpenWrt",
"version": "24.10.2",
"revision": "r28739-d9340319c6",
"target": "ath79/generic",
"description": "OpenWrt 24.10.2 r28739-d9340319c6",
"builddate": "1750711236"
}
}
root@OpenWrt:~# cat /etc/config/network
config interface 'loopback'
option device 'lo'
option proto 'static'
option ipaddr 'redacted'
option netmask '255.0.0.0'
config globals 'globals'
option ula_prefix 'redacted'
config device
option name 'br-lan'
option type 'bridge'
list ports 'eth1.1'
config interface 'lan'
option device 'br-lan'
option proto 'static'
option ipaddr '192.168.1.1'
option netmask '255.255.255.0'
option ip6assign '60'
config interface 'wan'
option device 'eth0.2'
option proto 'dhcp'
config interface 'wan6'
option device 'eth0.2'
option proto 'dhcpv6'
config switch
option name 'switch0'
option reset '1'
option enable_vlan '1'
config switch_vlan
option device 'switch0'
option vlan '1'
option ports '2 3 4 5 0t'
config switch_vlan
option device 'switch0'
option vlan '2'
option ports '1 6t'
root@OpenWrt:~# cat /etc/config/firewall
config defaults
option syn_flood '1'
option input 'REJECT'
option output 'ACCEPT'
option forward 'REJECT'
config zone
option name 'lan'
list network 'lan'
option input 'ACCEPT'
option output 'ACCEPT'
option forward 'ACCEPT'
config zone
option name 'wan'
list network 'wan'
list network 'wan6'
option input 'REJECT'
option output 'ACCEPT'
option forward 'REJECT'
option masq '1'
option mtu_fix '1'
config forwarding
option src 'lan'
option dest 'wan'
config rule
option name 'Allow-DHCP-Renew'
option src 'wan'
option proto 'udp'
option dest_port '68'
option target 'ACCEPT'
option family 'ipv4'
config rule
option name 'Allow-Ping'
option src 'wan'
option proto 'icmp'
option icmp_type 'echo-request'
option family 'ipv4'
option target 'ACCEPT'
config rule
option name 'Allow-IGMP'
option src 'wan'
option proto 'igmp'
option family 'ipv4'
option target 'ACCEPT'
config rule
option name 'Allow-DHCPv6'
option src 'wan'
option proto 'udp'
option dest_port '546'
option family 'ipv6'
option target 'ACCEPT'
config rule
option name 'Allow-MLD'
option src 'wan'
option proto 'icmp'
option src_ip 'redacted'
list icmp_type '130/0'
list icmp_type '131/0'
list icmp_type '132/0'
list icmp_type '143/0'
option family 'ipv6'
option target 'ACCEPT'
config rule
option name 'Allow-ICMPv6-Input'
option src 'wan'
option proto 'icmp'
list icmp_type 'echo-request'
list icmp_type 'echo-reply'
list icmp_type 'destination-unreachable'
list icmp_type 'packet-too-big'
list icmp_type 'time-exceeded'
list icmp_type 'bad-header'
list icmp_type 'unknown-header-type'
list icmp_type 'router-solicitation'
list icmp_type 'neighbour-solicitation'
list icmp_type 'router-advertisement'
list icmp_type 'neighbour-advertisement'
option limit '1000/sec'
option family 'ipv6'
option target 'ACCEPT'
config rule
option name 'Allow-ICMPv6-Forward'
option src 'wan'
option dest '*'
option proto 'icmp'
list icmp_type 'echo-request'
list icmp_type 'echo-reply'
list icmp_type 'destination-unreachable'
list icmp_type 'packet-too-big'
list icmp_type 'time-exceeded'
list icmp_type 'bad-header'
list icmp_type 'unknown-header-type'
option limit '1000/sec'
option family 'ipv6'
option target 'ACCEPT'
config rule
option name 'Allow-IPSec-ESP'
option src 'wan'
option dest 'lan'
option proto 'esp'
option target 'ACCEPT'
config rule
option name 'Allow-ISAKMP'
option src 'wan'
option dest 'lan'
option dest_port '500'
option proto 'udp'
option target 'ACCEPT'
config redirect
option dest 'lan'
option target 'DNAT'
option name 'minecraft'
option src 'wan'
option dest_ip 'redacted'
option dest_port 'redacted'
option src_dport 'redacted'
option family 'ipv4'
config redirect
option dest 'lan'
option target 'DNAT'
option name 'printer'
option src 'lan'
option src_dport '9100'
option dest_ip '192.168.1.1'
option dest_port '9100'
root@OpenWrt:~# cat /etc/config/p910nd
What is the operating system on the devices that are attempting to use the printer? How are you configuring the printer in the setup process?
Also, have you installed the avahi daemon on the router? You've got the p910nd config telling it to advertise via mdns, but avahi is required for that to actually work (without Avahi, the setting does nothing, but doesn't cause any harm either).
On that note: the avahi daemon is installed in root and up to date.
I've attempted to connect to the printer using system-config-printer, which didn't detect the printer.
And with a Xiaomi smartphone, which also didn't detect the printer and claimed there were no printers on the ip:192.168.1.1... So, i've tried using 192.168.1.1:9100 and it began printing some technical info, and the smartphone claims no printers were found on the ip. Which is weird.
Edit: it's almost like the smartphone tries communicating something to the printer, but it just prints it directly instead.
I don't know about the Xiaomi phone and how it handles printing, but I can tell you that iOS does not work with P910nd (iOS/iPad OS only works with AirPrint which is entirely different than P910nd).
I've never setup a printer on (modern) Windows systems. On the Mac, assuming that P910nd and avahi are both setup correctly, it just shows up as a bonjour available printer, no fuss. Without avahi, you need to set it up manually.
Well, i was trying to set it up so i could connect it to Linux, mainly by using system-config-printer
As well as avahi, which i wanted to use to make it easier to use.
By the way: to use avahi on the router, do i need to install it on my Linux computer too? that could be the issue.
Update: i found a command for terminal to test the printer: cat filename | netcat -w 1 ip 9100
And it does work, albeit it doesn't tell the printer when it's finished printing so it just keeps waiting until i run it enough times to fill the page.