Удаление драйвера принтера в Linux часто становится головной болью для пользователей, особенно когда система продолжает «видеть» старый драйвер после его предполагаемого удаления. В отличие от Windows, где достаточно воспользоваться диспетчером устройств, в Linux процесс зависит от способа установки драйвера, типа принтера (HP, Canon, Epson или Brother) и используемого дистрибутива. Ошибки здесь чреваты не только сбоями печати, но и конфликтами ядра, если речь идёт о проприетарных модулях.
В этой статье мы разберём все возможные сценарии: от удаления драйверов через CUPS (стандартную систему печати Linux) до ручного очищения проприетарных пакетов и модулей ядра. Особое внимание уделим «подводным камням» — например, почему после удаления пакета hplip принтер HP LaserJet может всё ещё определяться системой, или как правильно «отвязать» принтер от SANE (системы сканирования). Если вы столкнулись с ошибками вроде Filter failed или Unable to locate printer — здесь вы найдёте решение.
Прежде чем приступить, убедитесь, что у вас есть права sudo — без них большинство команд просто не сработает. Также подготовьте модель вашего принтера: алгоритм удаления для Canon PIXMA MG3640 и Brother HL-L2350DW будет отличаться из-за разных типов драйверов (PPD-файлы vs проприетарные .deb/.rpm пакеты).
1. Удаление драйвера через CUPS (универсальный метод)
CUPS (Common Unix Printing System) — это «сердце» печати в Linux, и большинство драйверов принтеров регистрируются именно здесь. Даже если вы устанавливали драйвер через пакетный менеджер, его следы остаются в конфигурациях CUPS. Чтобы удалить драйвер полностью, нужно работать с двумя компонентами: очередью печати и PPD-файлом (описанием драйвера).
Откройте веб-интерфейс CUPS, перейдя по адресу http://localhost:631 в браузере. Если страница не открывается, запустите службу командой:
sudo systemctl start cups
Далее выполните шаги:
- 🔍 В разделе
Printersнайдите свой принтер и нажмитеDelete Printer. Это удалит очередь печати, но не сам драйвер. - 📄 Перейдите в
Administration → Manage Printers → Add Printer. В списке моделей не должно остаться вашего принтера. Если он там есть — драйвер не удалён. - 🗑️ Удалите PPD-файл вручную (если принтер всё ещё определяется). Файлы хранятся в
/etc/cups/ppd/. Найдите файл с именем вашего принтера и удалите его:
sudo rm /etc/cups/ppd/Ваш_принтер.ppd
После этого перезапустите CUPS:
sudo systemctl restart cups
Удалить принтер из веб-интерфейса CUPS|Проверить отсутствие PPD-файла в /etc/cups/ppd/|Перезапустить службу CUPS|Проверить, что принтер не отображается в lpstat -p
-->
⚠️ Внимание: Если после удаления принтер всё равно появляется в списке устройств, проверьте автообнаружение в/etc/cups/cups-browsed.conf. Иногда драйвер восстанавливается из кэша сетевых принтеров. Отключите опциюBrowseRemoteProtocols, если принтер подключён локально.
2. Удаление пакетов драйверов через пакетный менеджер
Если драйвер устанавливался через apt, dnf, pacman или zypper, его нужно удалить стандартными средствами дистрибутива. Однако здесь кроется подвох: многие драйверы (например, HPLIP для принтеров HP) тянут за собой зависимости, которые могут остаться в системе и конфликтовать с новыми драйверами.
Ниже — команды для популярных дистрибутивов. Важно: перед удалением проверьте точные имена пакетов командой apt list --installed | grep принтер (для Debian/Ubuntu) или аналогичной для вашего дистрибутива.
| Дистрибутив | Команда для поиска пакетов | Команда для удаления |
|---|---|---|
| Debian/Ubuntu | apt list --installed | grep -i printer | sudo apt purge пакет_драйвера |
| Fedora/RHEL | dnf list installed | grep -i printer | sudo dnf remove пакет_драйвера |
| Arch Linux | pacman -Q | grep -i printer | sudo pacman -Rns пакет_драйвера |
| OpenSUSE | zypper se --installed-only | grep -i printer | sudo zypper remove пакет_драйвера |
Примеры имен пакетов для популярных брендов:
- 🖨️ HP:
hplip,hplip-gui,printer-driver-hpcups - 🖨️ Canon:
cnijfilter2,scangearmp2(для сканера) - 🖨️ Epson:
epson-inkjet-printer-escpr,iscan - 🖨️ Brother:
brother-lpr-drivers,brscan4
Если после удаления пакета принтер всё равно работает, проверьте наличие «сиротских» зависимостей командой deborphan (Ubuntu/Debian) или pacman -Qdt (Arch). Эти пакеты могут содержать оставшиеся модули драйвера.
⚠️ Внимание: При удалении пакетов вродеhplipможет пропасть поддержка сканирования через SANE. Если вам нужно сохранить функцию сканирования, удаляйте только пакеты с префиксомprinter-driver-, а не весьhplip.
3. Ручное удаление проприетарных драйверов
Некоторые производители (например, Brother или Xerox) распространяют драйверы в виде бинарных пакетов, которые устанавливаются через скрипты-инсталляторы. Такие драйверы не попадают в пакетный менеджер и требуют ручного удаления. Обычно они размещаются в /opt/ или /usr/local/.
Алгоритм действий:
- Найдите папку с драйвером:
ls -l /opt/ | grep -i brother # пример для Brotherls -l /usr/local/ | grep -i epson
- Удалите папку драйвера (например, для Brother HL-L2350DW):
sudo rm -rf /opt/brother/ - Проверьте наличие символических ссылок в
/usr/lib/cups/filter/и удалите их:sudo rm /usr/lib/cups/filter/brlpdwrapper* - Обновите кэш CUPS:
sudo cupsctl --debug-loggingsudo systemctl restart cups
Для принтеров Epson также может потребоваться удалить файлы из /usr/share/ppd/Epson/:
sudo rm -f /usr/share/ppd/Epson/Ваша_модель.ppd
Что делать, если после удаления останутся «призрачные» принтеры?
Иногда CUPS сохраняет информацию о принтерах в /etc/cups/printers.conf. Откройте файл:
sudo nano /etc/cups/printers.conf
Удалите блоки с упоминанием вашего принтера (они начинаются с <Printer имя_принтера>), сохраните файл и перезапустите CUPS.
4. Удаление модулей ядра (для USB/сетевых принтеров)
Некоторые принтеры (особенно старые модели HP или Lexmark) требуют загрузки специальных модулей ядра, таких как usblp или lp. Если после удаления драйвера принтер всё равно блокируется системой, проблема может быть в этих модулях. Проверьте загруженные модули командой:
lsmod | grep -E 'usblp|lp|printer'
Чтобы временно отключить модуль (например, usblp, который часто конфликтует с HPLIP):
sudo rmmod usblp
Для постоянного отключения добавьте модуль в чёрный список:
echo "blacklist usblp" | sudo tee /etc/modprobe.d/blacklist-printer.conf
sudo update-initramfs -u # для Debian/Ubuntu
sudo dracut --force # для RHEL/Fedora
Отключение модуля usblp может решить проблему с «зависанием» принтера при печати, но после этого некоторые старые модели перестанут работать через USB. Используйте этот метод только если принтер подключён по сети или у вас современная модель с поддержкой libusb.
5. Очистка конфигурационных файлов и кэша
Даже после удаления пакетов и PPD-файлов следы драйвера могут оставаться в конфигурационных файлах. Проведите полную очистку:
- 📂 Удалите кэш CUPS:
sudo rm -rf /var/cache/cups/*sudo rm -rf /var/spool/cups/*
- 🔧 Проверьте файлы конфигурации в
/etc/cups/:sudo grep -r "Ваша_модель_принтера" /etc/cups/Удалите или отредактируйте файлы, где упоминается принтер (кроме
cupsd.conf— его трогать не нужно). - 🔄 Сбросьте права доступа к CUPS (иногда они сбиваются после ручного удаления):
sudo chown -R root:lp /etc/cups/sudo chmod -R 755 /etc/cups/
Если принтер подключён по сети, очистите также кэш Avahi (системы автообнаружения устройств):
sudo systemctl restart avahi-daemon
6. Проверка и устранение конфликтов
После удаления драйвера могут возникнуть новые проблемы: от ошибок печати до полного исчезновения принтера из системы. Вот как диагностировать и исправить типичные конфликты:
- 🔴 Ошибка:
Filter failedпри попытке печати.Решение: Удалите оставшиеся фильтры CUPS:
sudo rm -f /usr/lib/cups/filter/ваша_модель - 🔴 Ошибка: Принтер определяется как
UnknownилиGeneric.Решение: Удалите «призрачные» правила udev:
sudo rm /etc/udev/rules.d/printersudo udevadm control --reload-rules
- 🔴 Ошибка: Сканер перестал работать после удаления драйвера принтера.
Решение: Переустановите пакеты SANE:
sudo apt install --reinstall sane sane-utils libsane-extras
Если принтер всё ещё не работает, проверьте логи CUPS:
sudo tail -n 50 /var/log/cups/error_log
⚠️ Внимание: После удаления драйверов для принтеров Samsung (особенно моделей ML-2165W или SCX-3405W) может потребоваться вручную удалить файлы из/usr/share/ppd/Samsung/и перезагрузить систему. Эти принтеры часто оставляют «хвосты» в виде скриптов в/usr/local/bin/.
7. Альтернативные методы: когда ничего не помогает
Если стандартные способы не сработали, попробуйте радикальные меры:
- 🔄 Сброс CUPS к заводским настройкам:
sudo cupsctl --no-debug-loggingsudo systemctl stop cups
sudo rm -rf /etc/cups/*
sudo systemctl start cups
⚠️ После этого все принтеры и настройки печати будут утеряны!
- 🐧 Пересборка базы данных пакетов (для Debian/Ubuntu):
sudo dpkg --configure -asudo apt install -f
- 📦 Удаление через
synaptic(GUI):Установите
synapticи найдите все пакеты, связанные с принтером. Иногда графический интерфейс показывает зависимости яснее, чем терминал.
Для принтеров Ricoh или Xerox, которые используют проприетарные системы печати (например, RICOH ProcessDirector), может потребоваться удаление через их собственные утилиты. Обычно они устанавливаются в /opt/Ricoh/ и имеют скрипт удаления:
sudo /opt/Ricoh/uninstall.sh
Частые вопросы (FAQ)
После удаления драйвера принтер всё равно отображается в списке устройств. Что делать?
Это типичная проблема с кэшем CUPS. Выполните:
- Удалите принтер через веб-интерфейс CUPS (
http://localhost:631). - Очистите кэш:
sudo rm -f /var/cache/cups/* - Проверьте наличие «призрачных» правил в
/etc/cups/printers.confи удалите их. - Перезапустите службу:
sudo systemctl restart cups
Если принтер подключён по USB, отключите и снова подключите его физически.
Можно ли удалить драйвер принтера без прав sudo?
Нет, для большинства операций (удаление пакетов, редактирование /etc/cups/, перезапуск служб) требуются права администратора. Однако вы можете:
- Удалить принтер из своего пользовательского профиля через
lpoptions -x имя_принтера(это не удалит драйвер, но скроет принтер из вашего списка). - Очистить личный кэш CUPS в
~/.cups/.
Для полного удаления драйвера права sudo обязательны.
Как удалить драйвер для принтера Canon PIXMA MG3640?
Для этой модели нужно:
- Удалить пакеты:
sudo apt purge cnijfilter2 scangearmp2 - Удалить PPD-файл:
sudo rm /etc/cups/ppd/Canon_MG3600_series.ppd - Очистить фильтры:
sudo rm /usr/lib/cups/filter/pstocanonij* - Перезапустить CUPS и SANE:
sudo systemctl restart cups sane-daemon
Если принтер подключён по Wi-Fi, также удалите его из сети в настройках роутера (иногда CUPS «видит» его через mDNS).
Почему после удаления драйвера hplip сканер HP перестал работать?
Пакет hplip включает в себя и драйверы для сканеров (SANE-бэкенды). Чтобы сохранить сканирование:
- Удалите только пакеты печати:
sudo apt purge printer-driver-hpcups hplip-gui - Сохраните пакеты для сканирования:
sudo apt install --reinstall sane-airscan libsane-hpaio - Проверьте, что сканер определяется:
scanimage -L
Если сканер всё равно не работает, переустановите hplip с флагом --disable-printing (если поддерживается вашей версией).
Как удалить драйвер для сетевого принтера Brother HL-L2350DW?
Для сетевых принтеров Brother:
- Удалите пакеты:
sudo apt purge brother-lpr-drivers-3.0.1-1 - Удалите файлы из
/opt/brother/:sudo rm -rf /opt/brother/Print/hl2350dw/ - Очистите фильтры CUPS:
sudo rm /usr/lib/cups/filter/brlpdwrapperhl2350dw - Удалите принтер из CUPS и перезагрузитесь.
Если принтер всё ещё виден в сети, отключите его на 10 минут — иногда DHCP-кэш роутера сохраняет его адрес.