Удаление драйверов принтера в Linux часто превращается в головную боль для пользователей. Система может хранить остаточные файлы в разных каталогах, а неправильное удаление приводит к конфликтам при повторной установке. Особенно актуальна проблема для корпоративных сканеров-принтеров Brother, HP LaserJet или Epson WorkForce, где производители поставляют проприетарные драйвера с собственными зависимостями.

В отличие от Windows, где достаточно удалить устройство через "Диспетчер устройств", в Linux драйвера принтера могут быть установлены через CUPS (Common Unix Printing System), пакетные менеджеры (apt, dnf, pacman) или вручную через .ppd-файлы. Эта статья покрывает все методы удаления — от стандартных до малоизвестных трюков для "упорных" драйверов, которые не хотят исчезать из системы.

Почему драйвера принтера не удаляются стандартными способами

Основная проблема кроется в архитектуре CUPS — системы печати Linux, которая хранит конфигурации принтеров в нескольких местах одновременно. Даже после удаления принтера через графический интерфейс его драйвера могут оставаться:

  • 📁 В каталоге /etc/cups/ppd/ — здесь хранятся .ppd-файлы с настройками конкретных моделей
  • 📦 В пакетах системы — производители часто поставляют драйвера как отдельные пакеты (hplip, brother-lpr-drivers)
  • 🔧 В кэше ~/.cups/ — пользовательские настройки, которые не очищаются автоматически
  • 🖥️ В системных модулях ядра — некоторые драйвера (особенно для USB-принтеров) подгружаются как kernel modules

Дополнительную сложность создают проприетарные драйвера от Canon или Xerox, которые устанавливаются через скрипты с официальных сайтов. Такие драйвера часто игнорируют стандартные пути CUPS и размещают файлы в /opt/ или /usr/local/. Без ручной чистки эти файлы будут мешать работе новых драйверов.

📊 Какой дистрибутив Linux вы используете?
Ubuntu/Debian
Fedora/RHEL
Arch Linux
OpenSUSE
Другой

Способ 1: Удаление через графический интерфейс CUPS

Самый простой метод — использовать веб-интерфейс CUPS. Он работает на всех дистрибутивах, где установлен cups (по умолчанию в 90% случаев).

  1. Откройте браузер и перейдите по адресу: http://localhost:631
  2. Вкладка AdministrationManage Printers
  3. Найдите ваш принтер в списке и нажмите Delete Printer
  4. Подтвердите удаление (может потребоваться ввод логина/пароля администратора)

После этого принтер исчезнет из списка, но его драйвера останутся в системе. Чтобы удалить их полностью:

  1. Перейдите во вкладку AdministrationManage Printer Drivers
  2. Найдите драйвер вашей модели (например, HP LaserJet P1102) и удалите его
  3. Перезагрузите службу CUPS командой:
    sudo systemctl restart cups
💡

Если веб-интерфейс CUPS не открывается, проверьте, запущена ли служба командой sudo systemctl status cups. На некоторых дистрибутивах (например, Arch Linux) она может быть отключена по умолчанию.

⚠️ Внимание: После удаления драйвера через CUPS некоторые модели принтеров (особенно Brother DCP серии) могут оставлять "призрачные" записи в /etc/cups/printers.conf. Проверьте этот файл вручную и удалите оставшиеся строки с именем вашего принтера.

Способ 2: Удаление через терминал (команды для всех дистрибутивов)

Терминальный метод даёт больше контроля и позволяет удалить даже те драйвера, которые не отображаются в графическом интерфейсе. Основные команды:

# Удаление принтера из CUPS

sudo lpadmin -x {имя_принтера}

Удаление всех принтеров (осторожно!)

sudo cancel -a -

sudo lpstat -p | awk '{print $2}' | xargs -I{} sudo lpadmin -x {}

Очистка очереди печати

sudo cancel -a

Для удаления .ppd-файлов (где хранятся настройки драйверов):

# Удаление PPD-файла конкретного принтера

sudo rm /etc/cups/ppd/{имя_принтера}.ppd

Удаление всех PPD-файлов (если нужно полностью сбросить настройки)

sudo rm /etc/cups/ppd/*

Если вы не знаете точное имя принтера, посмотрите список установленных:

lpstat -p -d

Сделать резервную копию файлов в /etc/cups/ppd/

Проверить имя принтера командой lpstat

Остановить службу cups перед удалением (sudo systemctl stop cups)

Удалить принтер из CUPS (lpadmin -x)

Перезапустить службу cups (sudo systemctl start cups)-->

Команда Описание Когда использовать
lpadmin -x printer_name Удаляет принтер из CUPS Первый шаг перед удалением драйверов
rm /etc/cups/ppd/*.ppd Удаляет все файлы настроек принтеров Если нужно полностью сбросить конфигурацию
apt purge hplip Удаляет пакет драйверов HP вместе с конфигами Для дистрибутивов на базе Debian/Ubuntu
dnf remove brother-lpr-drivers Удаляет драйвера Brother Для Fedora/RHEL/CentOS
pacman -Rns cups Полное удаление CUPS и зависимостей Крайний случай, если ничего не помогает

Способ 3: Удаление проприетарных драйверов (HP, Brother, Epson, Canon)

Производители часто поставляют драйвера в виде отдельных пакетов или скриптов. Их нужно удалять через пакетный менеджер.

Для Ubuntu/Debian:

# HP (hplip)

sudo apt purge hplip hplip-gui

sudo apt autoremove

Brother

sudo apt purge brother-lpr-drivers-*

sudo rm -rf /opt/brother/

Epson

sudo apt purge printer-driver-escpr

sudo apt purge epson-inkjet-printer-escpr

Для Fedora/RHEL:

# HP

sudo dnf remove hplip

Brother

sudo dnf remove brother-lpr-drivers

sudo rm -rf /usr/local/Brother/

Для Arch Linux:

# HP

sudo pacman -Rns hplip

Brother (AUR)

yay -Rns brother-dcp1510 # замените на вашу модель

Важно: Драйвера Canon часто устанавливаются через скрипты с официального сайта и размещаются в /usr/local/. Их нужно удалять вручную, так как они не регистрируются в пакетных менеджерах.

Как найти скрытые файлы драйверов Canon?

Многие драйвера Canon (особенно для моделей MG3600, Pixma TR4500) устанавливаются в нестандартные каталоги. Проверьте:

/usr/local/cnijfilter/ /opt/canon/ /usr/lib/cups/filter/pstocanonij

Удалите эти папки вручную после деинсталляции через скрипт производителя (если он есть).

Способ 4: Чистка системных модулей и udev-правил

Некоторые USB-принтеры (особенно старые модели HP DeskJet или Samsung ML) используют модули ядра для работы. После удаления драйверов эти модули могут оставаться загруженными.

Проверьте загруженные модули:

lsmod | grep -i printer

lsmod | grep -i usb

Если вы видите модули вроде usblp, lp или pps, их можно отключить:

# Временное отключение (до перезагрузки)

sudo rmmod usblp

Постоянное отключение (добавить в чёрный список)

echo "blacklist usblp" | sudo tee /etc/modprobe.d/blacklist-printer.conf

Также проверьте udev-правила, которые могут автоматически загружать драйвера:

sudo grep -r "printer" /etc/udev/rules.d/

sudo grep -r "lp" /lib/udev/rules.d/

Удалите или отредактируйте найденные файлы правил, если они мешают работе.

⚠️ Внимание: Отключение модуля usblp может нарушить работу других USB-устройств, подключённых к LPT-портам (например, некоторых сканеров штрих-кодов). Перед внесением изменений проверьте, не используются ли эти модули другими устройствами.

Способ 5: Полный сброс CUPS (крайний случай)

Если ни один из методов не помог, можно полностью переустановить CUPS. Это радикальное решение, но оно гарантированно удалит все следы драйверов.

Для Debian/Ubuntu:

sudo apt purge cups cups-client cups-common

sudo apt autoremove

sudo rm -rf /etc/cups/

sudo apt install cups

Для Fedora/RHEL:

sudo dnf remove cups

sudo rm -rf /etc/cups/

sudo dnf install cups

Для Arch Linux:

sudo pacman -Rns cups

sudo rm -rf /etc/cups/

sudo pacman -S cups

После переустановки:

  1. Перезапустите службу: sudo systemctl restart cups
  2. Добавьте пользователя в группу lpadmin:
    sudo usermod -aG lpadmin $USER
  3. Перезагрузите компьютер
💡

Полный сброс CUPS удаляет ВСЕ принтеры и их настройки. После этой процедуры вам придётся заново добавлять все устройства печати в систему.

Как проверить, что драйвера удалены полностью

Перед установкой новых драйверов убедитесь, что старые удалены без остатка. Проверьте:

  1. Список принтеров в CUPS:
    lpstat -a

    Должен вернуть "no system default destination".

  2. Остаточные файлы:
    sudo find / -name "printer" 2>/dev/null
    

    sudo find / -name "ppd" 2>/dev/null

  3. Загруженные модули ядра:
    lsmod | grep -E "lp|usb|print"
  4. Пакеты в системе:
    apt list --installed | grep -i printer  # Debian/Ubuntu
    

    dnf list installed | grep -i printer # Fedora

    pacman -Q | grep -i printer # Arch

Если поиск возвращает файлы в /home/ или /tmp/, их можно игнорировать — это кэш пользовательских приложений. Важно, чтобы не осталось файлов в системных каталогах (/etc/, /usr/, /opt/).

Частые ошибки и как их избежать

  • 🔄 Ошибка: "Printer is busy" — перед удалением отмените все задачи печати командой sudo cancel -a и перезапустите CUPS.
  • 🔒 Отказано в доступе — убедитесь, что вы используете sudo и ваш пользователь входит в группу lpadmin.
  • 🖨️ Принтер появляется снова после перезагрузки — проверьте udev-правила и модули ядра, как описано в Способе 4.
  • 📄 Не удаляется PPD-файл — возможно, он используется другим процессом. Закройте все программы, связанные с печатью (LibreOffice, GIMP и т.д.).
  • 🔄 После удаления не устанавливаются новые драйвера — выполните sudo apt --fix-broken install (Debian/Ubuntu) или аналогичную команду для вашего дистрибутива.
⚠️ Внимание: На некоторых enterprise-дистрибутивах (RHEL, SUSE) служба CUPS может быть интегрирована с SELinux. Если после удаления драйверов принтер не определяется, проверьте логи SELinux командой sudo ausearch -m avc -ts recent и при необходимости обновите политики.

FAQ: Ответы на частые вопросы

Можно ли удалить драйвера принтера без удаления CUPS?

Да, в большинстве случаев достаточно удалить конкретный принтер через lpadmin -x и очистить его .ppd-файл. Полное удаление CUPS требуется только если система печати повреждена или вы хотите сбросить все настройки.

После удаления драйверов принтер определяется как "Unknown". Что делать?

Это означает, что система распознаёт устройство как USB-устройство, но не может найти для него драйвер. Установите правильный драйвер через:

  1. Официальный репозиторий дистрибутива (apt install hplip)
  2. Сайт производителя (скачайте .deb/.rpm-пакет)
  3. Универсальные драйвера (например, foo2zjs для многих лазерных принтеров)

Если принтер по-прежнему не определяется, проверьте подключение по USB и попробуйте другой кабель.

Как удалить драйвера для сетевого принтера?

Сетевые принтеры (особенно HP OfficeJet Pro или Xerox WorkCentre) часто оставляют записи в /etc/cups/printers.conf. После стандартного удаления:

  1. Откройте файл: sudo nano /etc/cups/printers.conf
  2. Удалите блок с именем вашего принтера (начинается с <Printer имя_принтера>)
  3. Перезапустите CUPS: sudo systemctl restart cups

Для полной очистки также удалите файлы в /etc/cups/interfaces/, если они есть.

Удалил драйвера, но принтер всё равно печатает тестовые страницы при включении. Почему?

Это поведение характерно для принтеров с собственным буфером памяти (многие модели Brother и Kyocera). Тестовые страницы генерирует сам принтер, а не драйвер. Чтобы отключить их:

  1. Зажмите кнопку Go (или Cancel) на принтере при включении на 5-10 секунд
  2. Используйте веб-интерфейс принтера (обычно доступен по IP-адресу устройства)
  3. Обновите прошивку принтера через официальное ПО производителя

Это не связано с драйверами в Linux — настройка хранится в памяти самого принтера.

Можно ли удалить драйвера принтера для всех пользователей системы?

Да, но для этого нужны права root. Выполните:

  1. Удаление системных пакетов (например, sudo apt purge hplip)
  2. Очистку /etc/cups/ppd/ (общие настройки для всех пользователей)
  3. Удаление модулей ядра (если они используются)

Пользовательские настройки (~/.cups/) при этом не затрагиваются — каждый пользователь может иметь свои собственные принтеры.