TP-Link TL-WR1043ND – Openwrt – Ch06_Printing

0) Briefing

  • You should have already done
    • USB external storage (Visit Ch05 to see how). It is because you router is going to act as a printing server. When you press “Print” on you computer, the printing data will be buffered in the router first before send off to the printer, which usually you router will not have enough memory to buffer those huge printing data and result in strange problems.
  • What next
    • Install USB printer kernel module ( 12 Byte in size )
    • Install p910nd Printer Server ( 12 Byte in size )
    • (Optional) Install luci-app-p910nd p910nd webpage app ( 4 Byte in size )


1) Install USB printer kernel module

  • Open up your favorite terminal and login into the router
    ssh [email protected]
  • These commands will update database:
    opkg update
  • Install kmod-usb-printer (12 Byte in size):
    opkg install kmod-usb-printer
  • Now you can plug in the printer and check if the router detect your printer by:
  • You should see something similar:

    usbcore: registered new interface driver usblp
    usb 1-1: new full-speed USB device number 4 using ehci-platform
    usblp0: USB Bidirectional printer dev ……….


2) Setup p910nd Printer Server

  • Update database and install p910nd (12 Byte in size):
    opkg update && opkg install p910nd

2.1) Edit p910nd config file

  • Edit the following config file
    vi /etc/config/p910nd
  • Here is my /etc/config/p910nd details

    config p910nd
    option device ‘/dev/usb/lp0’
    option port ‘0’
    option bidirectional ‘1’
    option enabled ‘1’

2.2) To start the p910nd daemon:

  • To start the p910nd daemon:
    /etc/init.d/p910nd start
  • To start it up automatically on every boot:
    /etc/init.d/p910nd enable


3) Add printer to client computers

3.1) Linux GUI:

  1. Go to “Settings -> Printers”
  2. Then press “Add”
  3. Then press “Network Printer” -> “Find Network Printer”
  4. In the “Device URI” box put in your router IP address

3.2) Miscosoft Windows 7:

  1. Go to “Control Panel” -> “Devices and Printers”
  2. Press “Add a printer”
  3. Press “Add a local printer”
  4. Select “Create a new port:”, “Type of port: Standard TCP/IP Port”
  5. Hostname or IP address : IP_address_of_your_router
    Port name : any_name_of_your_choice
    Untick “Query the printer and auto……..”
  6. Wait Windows detect the TCP/IP port, but it will fail, don’t worry, just continue.
  7. Select “Custom” -> “Settings…”
  8. Confirm this details:
    Port name : the name you have entered above
    Printer Name or IP Address : the IP address of you router
    Protocol : Raw
    Raw Settings : Port Number : 9100
  9. Install the printer driver:
    Select your printer model, then Next
  10. Give your printer a name you like, then Next
  11. Print a test page if you want to, then you are done.


Appendix : References