Ошибка “Filter failed” при печати в Linux указывает на то, что система печати (обычно CUPS) не может правильно обработать задание печати. Это может быть вызвано множеством причин, но чаще всего связано с проблемами с драйверами, фильтрами или конфигурацией принтера. Вот шаги для диагностики и устранения этой ошибки:
1. Проверьте основные вещи:
- Подключение принтера: Убедитесь, что принтер правильно подключен к компьютеру (USB, сеть) и включен.
- Бумага и чернила: Проверьте, есть ли бумага в принтере и достаточно ли чернил или тонера. Звучит банально, но это частая причина.
- Состояние принтера: Проверьте, нет ли на принтере индикаторов ошибок (например, мигающих лампочек). Обратитесь к руководству пользователя принтера для интерпретации этих индикаторов.
2. Перезапустите CUPS (Common Unix Printing System):
CUPS — это основная система печати в большинстве дистрибутивов Linux. Перезапуск может решить временные проблемы.
sudo systemctl restart cups
3. Проверьте журналы CUPS:
Журналы CUPS могут предоставить более подробную информацию об ошибке.
sudo journalctl -u cups -f # Для просмотра в реальном времени
# или
sudo cat /var/log/cups/error_log # Для просмотра всего лога
Ищите строки, содержащие “Filter failed”, “error”, “failed” или что-то похожее, связанное с вашей попыткой печати. Сообщения об ошибках в логах часто указывают на конкретную проблему.
4. Проверьте драйвер принтера:
- Установлен ли правильный драйвер? Убедитесь, что для вашего принтера установлен правильный драйвер. Неправильный или устаревший драйвер — наиболее частая причина “Filter failed”.
- Используете ли вы проприетарный или открытый драйвер? Иногда проприетарные драйверы (предоставляемые производителем принтера) работают лучше, чем драйверы с открытым исходным кодом, и наоборот.
5. Установите или переустановите драйвер принтера:
- Используйте графический интерфейс системы: Большинство дистрибутивов Linux предоставляют графический интерфейс для добавления и управления принтерами (обычно в “Настройках” системы). Удалите принтер и добавьте его снова, чтобы переустановить драйвер. Система часто автоматически предложит подходящий драйвер.
- Используйте PPD-файл:PPD (PostScript Printer Description) файл содержит информацию о возможностях принтера.
Посетите сайт производителя принтера и скачайте PPD-файл для вашей модели принтера и дистрибутива Linux (если доступен).
При добавлении принтера в графическом интерфейсе укажите этот PPD-файл. - Используйте lpadmin (командная строка):
Эта команда позволяет управлять принтерами из командной строки.
Сначала узнайте имя вашего принтера:lpstat -p
Затем используйте lpadmin для изменения драйвера:sudo lpadmin -p <имя_принтера> -m <путь_к_PPD_файлу>
Замените <имя_принтера> на имя вашего принтера и <путь_к_PPD_файлу> на путь к скачанному PPD-файлу. - Драйверы Gutenprint:
Gutenprint — это коллекция драйверов для многих принтеров. Убедитесь, что он установлен:sudo apt install printer-driver-gutenprint # Debian/Ubuntu
sudo dnf install gutenprint # Fedora/RHEL/CentOS
sudo pacman -S gutenprint # Arch Linux
При добавлении принтера попробуйте выбрать драйвер Gutenprint, соответствующий вашей модели принтера.
6. Проверьте и установите необходимые фильтры:
Фильтры — это программы, которые преобразуют данные печати в формат, понятный принтеру. Отсутствие необходимых фильтров может вызвать “Filter failed”.
- Common filters:
ghostscript (gs): Необходим для обработки PostScript и PDF.sudo apt install ghostscript # Debian/Ubuntu
sudo dnf install ghostscript # Fedora/RHEL/CentOS
sudo pacman -S ghostscript # Arch Linux
foomatic-filters:sudo apt install foomatic-db-compressed foomatic-db-engine foomatic-filters # Debian/Ubuntu
sudo dnf install foomatic-db foomatic-filters # Fedora/RHEL/CentOS
sudo pacman -S foomatic-db foomatic-filters # Arch Linux
cups-filters:sudo apt install cups-filters # Debian/Ubuntu
sudo dnf install cups-filters # Fedora/RHEL/CentOS
sudo pacman -S cups-filters # Arch Linux - Проверьте, какие фильтры используются для вашего принтера: В файле конфигурации CUPS /etc/cups/ppd/<имя_принтера>.ppd (замените <имя_принтера> на имя вашего принтера) посмотрите строки, начинающиеся с *cupsFilter: или *Filter:. Они показывают, какие фильтры используются для обработки заданий печати. Убедитесь, что соответствующие пакеты установлены.
7. Права доступа:
Убедитесь, что пользователь, от имени которого выполняется печать, имеет права на доступ к файлам и устройствам, используемым для печати. Это редко бывает проблемой, но стоит проверить.
8. Проблемы с PostScript:
Если вы печатаете PostScript-файлы (.ps), убедитесь, что они правильно сформированы. Попробуйте преобразовать их в PDF перед печатью.
9. Проблемы с PDF:
Если вы печатаете PDF-файлы, попробуйте следующее:
- Обновите cups-filters: Убедитесь, что у вас установлена последняя версия cups-filters.
- Попробуйте другой PDF-просмотрщик: Распечатайте PDF из другого приложения (например, Evince, Okular).
- Конвертируйте PDF в изображение: Используйте ImageMagick (convert) для конвертации PDF в изображение (например, PNG) и попробуйте напечатать изображение. Это может помочь обойти проблемы с обработкой PDF.
10. Попробуйте другой дистрибутив Linux или Live CD:
Если вы перепробовали все вышеперечисленное, и ничего не помогло, попробуйте загрузиться с Live CD другого дистрибутива Linux (например, Ubuntu, Mint) и попробуйте напечатать оттуда. Это поможет определить, является ли проблема специфичной для вашего дистрибутива.
11. Специфические ошибки в логах:
- “Unable to locate Ghostscript fonts”: Установите пакет gsfonts (или аналогичный, в зависимости от дистрибутива).
- “Incomplete or corrupted PPD file”: Попробуйте скачать PPD-файл еще раз или использовать другой PPD-файл.
- “Backend not found”: Убедитесь, что установлен правильный backend для вашего принтера (например, usb, socket, dnssd). Обычно это устанавливается вместе с драйвером.
Общие советы:
- Поиск в Интернете: Найдите информацию о вашей конкретной модели принтера и ошибке “Filter failed” в Интернете. Возможно, кто-то уже сталкивался с этой проблемой и нашел решение.
- Сообщество Linux: Обратитесь за помощью на форумы или в группы поддержки вашего дистрибутива Linux.
Устранение ошибки “Filter failed” может потребовать некоторого терпения и исследований, но, следуя этим шагам, вы сможете найти и решить проблему и вернуть свой принтер в рабочее состояние.