Skip to main content
🖨️ Turn Your STB into a Printer Server (CUPS)

🖨️ Turn Your STB into a Printer Server (CUPS)

·985 words·5 mins
Zarvelion Zynji
Author
Zarvelion Zynji
Tech enthusiasts (self-proclaimed). Gaming addict (diagnosed). Anime simp (no regrets). I turn my hyperfixations into content—welcome to the chaos.
Table of Contents

Got an old Android STB (Set Top Box) that’s been rooted and has Armbian installed? Usually, STBs like this aren’t used for watching TV anymore. So instead of letting it gather dust or just using it as a media server, you can repurpose your STB into a network print server that’s practical, power-efficient, and accessible from various devices at home!

With this setup, you can print from Windows laptops, Linux, even Android phones or Chromebooks without directly connecting the printer. Your STB acts as a bridge between your printer and all your devices on the local network—just like a print server in an office, but for home use.

Let me walk you through the full and easy steps! 🚀


🧰 Requirements
#

Make sure you have the following devices and configuration before starting:

  • Rooted Android STB (e.g., Indihome STB ZTE, B860H, or similar)
  • Armbian installed on the STB (Debian/Ubuntu-based versions highly recommended)
  • SSH access to the STB from a PC or laptop
  • A USB printer compatible with Linux
  • Active internet connection (to install packages)
  • A client computer/laptop running Windows (optional: Linux/Mac/Android)

💡 To check if your printer is Linux-compatible, search its model on OpenPrinting.


🧑‍💻 Step 1: Update the STB System
#

First, make sure your system is up-to-date. This is important to avoid weird bugs or dependency errors during installation.

sudo apt update && sudo apt upgrade -y

If your STB has limited storage (like only 8GB), it’s recommended to clean the cache:

sudo apt clean

📥 Step 2: Install Printer Drivers
#

One of the main reasons printers don’t show up in CUPS is missing drivers. So before setting up CUPS, install the driver according to your printer type:

For HP printers:
#

sudo apt install hplip -y

hplip is the official tool from HP for Linux support. Includes PPDs and utilities.

For Epson:
#

sudo apt install printer-driver-escpr -y

This driver supports Epson L and XP series commonly found in Indonesia.

For Canon:
#

sudo apt install printer-driver-gutenprint -y

gutenprint includes support for many printers from Canon, Lexmark, Brother, etc.

If your printer still doesn’t show up, you can:

  • Find the .ppd file from the official printer website
  • Use foomatic-db:
sudo apt install foomatic-db foomatic-db-engine foomatic-filters

🧾 Step 3: Install CUPS
#

CUPS (Common UNIX Printing System) is an open-source print server system used by macOS, Linux, and many other POSIX systems. It acts as a bridge between the OS and the printer.

Install it with:

sudo apt install cups -y

Then add your user to the lpadmin group to allow printer administration:

sudo usermod -aG lpadmin $USER

Don’t forget to enable the service:

sudo systemctl enable cups
sudo systemctl start cups

To make sure it’s running:

sudo systemctl status cups

If the status shows active (running), you’re good!


🌐 Step 4: Access CUPS via Web
#

By default, CUPS is only accessible from localhost (127.0.0.1), so you need to tweak it a bit to allow access from other devices on the local network.

Edit the config file:
#

sudo nano /etc/cups/cupsd.conf

Change:

Listen localhost:631

To:

Port 631

Then find all <Location />, <Location /admin>, and <Location /admin/conf> sections and add:

Allow @local

Full example:

<Location />
  Order allow,deny
  Allow @local
</Location>

Then restart CUPS:

sudo systemctl restart cups

Now access it from your browser:

http://<STB-IP>:631

If you see the CUPS interface, it’s working!


🖨️ Step 5: Add Printer via WebUI
#

  1. Go to http://<STB-IP>:631
  2. Click Administration > Add Printer
  3. Select your USB printer from the list
  4. Enter the printer’s name and location (optional)
  5. Choose the appropriate printer driver
  6. Complete the wizard
  7. Click Maintenance > Print Test Page to test

If the test page prints successfully, your STB is now officially a print server!


🪟 Step 6: Connect Windows Client to Server
#

✅ Easiest Way: Add Printer via URL
#

  1. Open Control Panel > Devices and Printers

  2. Click Add a printer

  3. Printer will be show up with format name Printer_Name@hostname

  4. If printer not show up. Select The printer that I want isn’t listed

  5. Choose:

    “Select a shared printer by name”

  6. Enter a URL like this:

http://192.168.1.100:631/printers/EPSON_L3110
  1. Click Next
  2. Choose the printer driver if prompted
  3. Finish and try printing a test page

You can check the exact printer name under the Printers tab in the CUPS WebUI


💡 Optional Tips
#

  • You can set a custom hostname for your STB to make it easier to access:

    sudo hostnamectl set-hostname print-server
    

    Then access it via http://print-server.local:631 on the local network

  • You can also install a plugin like Avahi for Bonjour/IPP auto-discovery on macOS/iOS:

    sudo apt install avahi-daemon
    sudo systemctl enable avahi-daemon
    

🛠️ Troubleshooting
#

Common errors & how to fix them:

  • CUPS is not accessible

    • Make sure the config says Port 631

    • Restart the service and disable firewall:

      sudo ufw disable
      
  • 🖨️ Printer not detected

    • Run:

      lsusb
      dmesg | grep usb
      
    • Check USB cable and installed drivers

  • 🔐 Login prompt when adding printer

    • Use a Linux user that’s part of the lpadmin group
    • Username can be root or your SSH login user
  • 🪟 Windows can’t print

    • Make sure the driver is correct

    • Check error log:

      tail -f /var/log/cups/error_log
      

✅ Conclusion
#

  • We successfully turned an old STB into a print server using CUPS
  • The printer is accessible from the entire local network, including Windows
  • Lightweight setup, low power consumption, and doesn’t require a PC running 24/7
  • CUPS is highly flexible and supports many printer brands
  • Armbian-powered STB becomes even more useful for daily needs!

📌 Closing
#

This tutorial is perfect if you:

  • Have an unused STB and want to make it useful
  • Want a shared printer setup at home or in a small office
  • Love tinkering and learning new things in the Linux world

If you enjoy projects like this, explore further:

  • Integrate this print server with CasaOS
  • Add scan support via sane for all-in-one printers
  • Configure Android IPP plugin printing support

Hope this tutorial is useful, and happy experimenting! 💻🖨️🔥


Related


Load Comments