When dealing with CUPS configurations using BrowsePoll, you might encounter situations where printers appear with multiple naming variations like hpext
and hpext@vm-cups
. This typically happens when:
- The local CUPS server caches old printer instances
- DNS or hostname resolution creates naming inconsistencies
- BrowsePoll refreshes don't properly clean up old entries
First, verify all printer instances:
lpstat -v
lpstat -a
To properly delete the conflicting printer (even when web interface fails):
sudo lpadmin -x hpext
sudo lpadmin -x hpext@vm-cups
sudo systemctl restart cups
When standard deletion doesn't work, try these advanced steps:
# Stop CUPS service
sudo systemctl stop cups
# Remove printer configuration files
sudo rm -f /etc/cups/printers.conf*
sudo rm -rf /var/spool/cups/tmp/*
# Clear CUPS cache
sudo rm -f /var/cache/cups/*
# Restart CUPS
sudo systemctl start cups
Add these directives to /etc/cups/cupsd.conf
:
BrowsePoll cups.eecs.tufts.edu:631
BrowseRemoteProtocols dnssd
BrowseOrder allow,deny
BrowseAllow from @LOCAL
After making changes, verify with:
lpinfo -v
lpstat -t
The output should only show your intended printer name without @host variations.
When CUPS maintains ghost printer entries like hpext
and hpext@vm-cups
that conflict with BrowsePoll-discovered printers, standard removal methods often fail. This typically happens when:
- The printer was previously configured with multiple protocols (IPP, socket, etc.)
- CUPS database corruption occurs during network printer discovery
- Permission issues prevent proper deletion through normal channels
When the web interface and lpadmin
commands fail, we need to manually clean CUPS' internal databases:
# Stop CUPS first
sudo systemctl stop cups
# Remove printer from printers.conf
sudo sed -i '/^<Printer hpext@vm-cups>/,/^<\/Printer>/d' /etc/cups/printers.conf
# Clean out PPD files
sudo rm -f /etc/cups/ppd/hpext@vm-cups.ppd
# Remove job cache
sudo rm -f /var/spool/cups/*hpext@vm-cups*
# Restart CUPS
sudo systemctl start cups
After cleaning, force CUPS to rediscover the correct printer from your BrowsePoll server:
# First remove all instances
sudo lpadmin -x hpext
sudo lpadmin -x hpext@vm-cups
# Then explicitly add the correct version
sudo lpadmin -p hpext -E -v ipp://cups.eecs.tufts.edu/printers/hpext -m everywhere
When all else fails, reset CUPS' entire configuration while preserving your BrowsePoll settings:
sudo systemctl stop cups
sudo mv /etc/cups/printers.conf /etc/cups/printers.conf.bak
sudo rm /etc/cups/printers.conf.O /etc/cups/printers.conf.prev
sudo systemctl start cups
Confirm successful removal and proper rediscovery with:
lpstat -v | grep -E 'hpext|vm-cups'
cupsctl | grep BrowsePoll
The output should only show the single valid printer entry from your BrowsePoll server.