Missing printer filters
I am using ubuntu 20.04 and am trying to install a brother printer via usb connection. But I get the error message: «There is a missing print filter for printer ‘MFC-J5910DW’ And the /var/log/cups/error_log contains the following information:
MFC-J5910DW: File \"/usr/lib/cups/filter/brother_lpdwrapper_mfcj5910dw\" not available: No such file or directory
I guess this missing file is the problem, but I don’t know how what I need to do to solve it-so I’d appreciate any help. Best, Barbara
3 Answers 3
With Linux, don’t expect to run a driver setup wizard. Brother is actually known for supporting Linux and do release its own printer drivers. Before you start this process, visit Brother’s website to see if they have support info for your model. While at the company site, look for .deb or a PPD file that you can use to manually provide the optimal driver for your printer.
Just google your model number (in your case ‘Brother MFC-J5910DW’) then download the Linux/.deb utility and printer drivers, whatever they have. May I emphasize reading any help they have there too. BTW, since you are there, download the manuals, etc.
Install then sit back and watch the fireworks fly. ;))
I did exactly that. Brother has a deb-Linux driver for my printer, and I downloaded the two archives that they provided. I then looked into those archives and found the .ppd file. The printer gets automatically detected, only that it doesn’t respond. So I went into CUPS, and used the option: ‘modify printer’. In this process you get the option to selsct your own .ppd file. So I entered the one that I downloaded from Brother. It all seems to work fine,, but when I want to pritn a test page, it just doesn’t work. CUPS just shows under ‘jobs’:
ID: MFC-J5910DW-11 , NAME: unknown, USER: withheld, SIZE: 1k, PAGES: unknown, STATE: stopped. So where did I go wrong?
Did you install the .deb file? I thought the ‘Driver Install Tool’ could have saved you the trouble of installing them for you.
I just focused on the .ppd file, extracted that and used it. But that’s probably not what you meant with ‘installing the .deb file’. So what exactly did you mean?
I didn’t know that you can use apt-get to install .deb files directly, but I found out that you can and I did that. But I still get an error message:
Отсутствуют фильтры принтера
Я использую ubuntu 20.04 и пытаюсь установить братский принтер через USB-соединение. Но я получаю сообщение об ошибке:
«Отсутствует фильтр печати для принтера» MFC-J5910DW «
И /var/log/cups/error_log содержит следующую информацию:
MFC-J5910DW: File \"/usr/lib/cups/filter/brother_lpdwrapper_mfcj5910dw\" not available: No such file or directory
Я предполагаю, что проблема заключается в отсутствующем файле, но я не знаю, что мне нужно сделать, чтобы решить эту проблему, поэтому буду признателен за любую помощь. Бест, Барбара
3 ответа
В Linux не ждите запуска мастера установки драйверов. Компания Brother известна своей поддержкой Linux и выпускает собственные драйверы для принтеров. Прежде чем начать этот процесс, посетите веб-сайт Brother, чтобы узнать, есть ли у них информация о поддержке для вашей модели. Находясь на сайте компании, поищите файл .deb или PPD, который вы можете использовать, чтобы вручную указать оптимальный драйвер для вашего принтера.
Просто погуглите номер своей модели (в вашем случае «Brother MFC-J5910DW»), затем загрузите утилиту Linux/.deb и драйверы принтера, какие бы они ни были. Могу я особо отметить прочтение любой помощи, которую они там могут найти. Кстати, раз уж вы там, скачайте инструкции и т. Д.
Установите, затем сядьте и смотрите, как летит фейерверк.;))
Вот что я сделал, чтобы это работало:
- Я зашел на https://www.brother.de/support/mfc-j5910dw/downloads
- Я загрузил два пакета драйверов для принтера MFC-J5910DW:
- Драйвер принтера LPR (пакет deb)
- Драйвер принтера CUPSwrapper (пакет deb)
- Я открыл терминал и вошел в каталог, в который я загрузил два пакета.
- Я установил оба пакета с помощью apt:
sudo apt install ./mfcj5910dwlpr-3.0.0-1.i386.deb ./mfcj5910dwcupswrapper-3.0.0-1.i386.deb
CUPS пишет «Filter failed»
Надо заглянуть в /var/log/cups/error_log и посмотреть подробности ошибок.
да там немного непонятно, что он хочет то вообще.
ну вот он запускает:
D [25/May/2022:07:39:18 +0300] [Job 8] Started filter /usr/lib/cups/filter/bannertopdf (PID 260205) D [25/May/2022:07:39:18 +0300] [Job 8] Started filter /usr/lib/cups/filter/pdftopdf (PID 260206) D [25/May/2022:07:39:18 +0300] [Job 8] Started filter /usr/lib/cups/filter/brother_lpdwrapper_HL1210W (PID 260207) D [25/May/2022:07:39:18 +0300] [Job 8] Started backend /usr/lib/cups/backend/dnssd (PID 260208)
D [25/May/2022:07:39:18 +0300] [Job 8] cp: -r not specified; omitting directory \'/opt/brother/Printers/HL1210W//inf/brHL1210Wrc\' D [25/May/2022:07:39:18 +0300] [Job 8] rm: cannot remove \'/tmp/brHL1210Wrc_260207\': No such file or directory D [25/May/2022:07:39:18 +0300] [Job 8] PID 260207 (/usr/lib/cups/filter/brother_lpdwrapper_HL1210W) stopped with status 1. D [25/May/2022:07:39:18 +0300] [Job 8] Hint: Try setting the LogLevel to "debug" to find out more.
brother_lpdwrapper_HL1210W — чё с ним делать?
tip78 ( 25.05.22 08:43:06 MSK )
Последнее исправление: tip78 25.05.22 09:01:17 MSK (всего исправлений: 3)
LogLevel debug в /etc/cups/cupsd.conf
Хотя он, судя по этому разделу, уже должен быть прописан, D в начале строки в логах означают отладочную информацию.
он там насыпал инфы на 100500 экранов
вот то что про фильтр:
D [25/May/2022:09:06:04 +0300] [Client 14] Writing IPP response, ipp_state=IPP_STATE_DATA, old wused=0, new wused=0 D [25/May/2022:09:06:04 +0300] [Client 14] bytes=0, http_state=0, data_remaining=593 D [25/May/2022:09:06:04 +0300] [Client 14] Flushing write buffer. D [25/May/2022:09:06:04 +0300] [Client 14] New state is HTTP_STATE_WAITING D [25/May/2022:09:06:04 +0300] [Client 14] Waiting for request. D [25/May/2022:09:06:04 +0300] cupsdSetBusyState: newbusy="Dirty files", busy="Active clients and dirty files" D [25/May/2022:09:06:04 +0300] [Client 14] POST / HTTP/1.1 D [25/May/2022:09:06:04 +0300] cupsdSetBusyState: newbusy="Active clients and dirty files", busy="Dirty files" D [25/May/2022:09:06:04 +0300] [Client 14] Read: status=200, state=6 D [25/May/2022:09:06:04 +0300] [Client 14] No authentication data provided. D [25/May/2022:09:06:04 +0300] [Client 14] 2.0 Get-Printer-Attributes 25 D [25/May/2022:09:06:04 +0300] Get-Printer-Attributes ipp://@localhost:631/printers/Brother_HL-1210W_series D [25/May/2022:09:06:04 +0300] [Client 14] Returning IPP successful-ok for Get-Printer-Attributes (ipp://@localhost:631/printers/Brother_HL-1210W_series) from localhost. D [25/May/2022:09:06:04 +0300] [Client 14] Content-Length: 593 D [25/May/2022:09:06:04 +0300] [Client 14] cupsdSendHeader: code=200, type="application/ipp", auth_type=0 D [25/May/2022:09:06:04 +0300] [Client 14] con->http=0x55c1f6cf8320 D [25/May/2022:09:06:04 +0300] [Client 14] cupsdWriteClient error=0, used=0, state=HTTP_STATE_POST_SEND, data_encoding=HTTP_ENCODING_LENGTH, data_remaining=593, response=0x55c1f6c58890(IPP_ST ATE_DATA), pipe_pid=0, file=-1 D [25/May/2022:09:06:04 +0300] [Client 14] Writing IPP response, ipp_state=IPP_STATE_DATA, old wused=0, new wused=0 D [25/May/2022:09:06:04 +0300] [Client 14] bytes=0, http_state=0, data_remaining=593 D [25/May/2022:09:06:04 +0300] [Client 14] Flushing write buffer. D [25/May/2022:09:06:04 +0300] [Client 14] New state is HTTP_STATE_WAITING D [25/May/2022:09:06:04 +0300] [Client 14] Waiting for request. D [25/May/2022:09:06:04 +0300] cupsdSetBusyState: newbusy="Dirty files", busy="Active clients and dirty files" D [25/May/2022:09:06:04 +0300] [Job 12] PID 262644 (/usr/lib/cups/filter/brother_lpdwrapper_HL1210W) stopped with status 1.
На что-то сетевое похоже, поиск результаты размазывает тонким разношёрстным слоем возможных причин. Через шнур есть возможность проверить печать?
Весь файл можно на https://pastebin.com/ залить.
Я бы от безысходности погрепал файл на типичные маркеры ошибок, вроде «error», «fail», «could not».
у меня, к примеру, Filter failed происходит всегда при первой печати.
Но чтобы такого не было, я просто еще раз выключаю и включаю принтер и о, чудо, все работает.
Кстати вопрос, как вручную запустить этот, да и любой другой фильтр?
подключил, переустановил локальный, пробовал вкл/выкл — не помогает
D [25/May/2022:13:50:44 +0300] [Client 4] cupsdWriteClient error=0, used=0, state=HTTP_STATE_POST_SEND, data_encoding=HTTP_ENCODING_LENGTH, data_remaining=459, response=0x55d41f3b71e0(IPP_STATE_DATA), pipe_pid=0, file=-1
D [25/May/2022:13:50:44 +0300] [Job 19] printer-state-message="Filter failed"
Это был хороший вопрос, потому что я кое-что нагуглил ТСу.
Если я понял верно, по этой же ссылке есть и про ручной запуск.
P.S. я думаю это заметно по треду, что я с CUPS не дружу. С принтерами немного возился по мелочам, поэтому по специфике CUPS могу лишь в поиск сходить.
по-моему Brother этот вместо драйвера подсунул кусок говна.
вот /usr/lib/cups/filter/brother_lpdwrapper_HL1210W:
LOGFILE="/dev/null" LOGCLEVEL="7" DEBUG=0 LOG_LATESTONLY=1 PRINTER=HL1210W BASEDIR=/opt/brother/Printers/$PRINTER/ LATESTINFO=/tmp/HL1210W_latest_print_info rm -f $LATESTINFO touch $LATESTINFO options="$5" if [ "$(echo $options | grep 'force-debug=1')" != '' ];then DEBUG=1 elif [ "$(echo $options | grep 'force-debug=2')" != '' ];then DEBUG=2 elif [ "$(echo $options | grep 'force-debug=3')" != '' ];then DEBUG=3 elif [ "$(echo $options | grep 'force-debug=4')" != '' ];then DEBUG=4 fi errorcode=0 set +o noclobber if [ $DEBUG != 0 ]; then LOGFILE=/tmp/br_cupsfilter_debug_log fi if [ "$PPD" = "" ]; then PPD="/usr/share/cups/model/$PRINTER.ppd" fi if [ $LOGFILE != "/dev/null" ]; then if [ $LOG_LATESTONLY = "1" ]; then rm -f $LOGFILE date >$LOGFILE else if [ -e $LOGFILE ]; then date >>$LOGFILE else date >$LOGFILE fi fi echo "arg0 = $0" >>$LOGFILE echo "arg1 = $1" >>$LOGFILE echo "arg2 = $2" >>$LOGFILE echo "arg3 = $3" >>$LOGFILE echo "arg4 = $4" >>$LOGFILE echo "arg5 = $5" >>$LOGFILE echo "arg6 = $6" >>$LOGFILE echo "PPD = $PPD" >>$LOGFILE fi TMP_RC=/tmp/brHL1210Wrc_$$ cp /opt/brother/Printers/$PRINTER//inf/brHL1210Wrc $TMP_RC export BRPRINTERRCFILE=$TMP_RC if [ $DEBUG != 0 ]; then echo BRPRINTERRCFILE=$BRPRINTERRCFILE >>$LOGFILE fi if [ -e "/$BASEDIR/lpd/filter_"$"" ]; then : else echo "ERROR: /$BASEDIR/lpd/filter_"$PRINTER" does not exist" >>$LOGFILE echo "ERROR: /$BASEDIR/lpd/filter_"$PRINTER" does not exist" >> $LATESTINFO errorcode=2 rm $TMP_RC exit fi if [ -e "/opt/brother/Printers/$PRINTER//cupswrapper/brcupsconfig4" ]; then if [ $DEBUG = 0 ]; then /opt/brother/Printers/$PRINTER//cupswrapper/brcupsconfig4 $PRINTER $PPD 0 "$options" >> /dev/null else /opt/brother/Printers/$PRINTER//cupswrapper/brcupsconfig4 $PRINTER $PPD $LOGCLEVEL "$options" >>$LOGFILE fi fi if [ $DEBUG = 0 ]; then if [ $# -ge 7 ]; then cat $6 | /$BASEDIR/lpd/filter_"$PRINTER" else cat | /$BASEDIR/lpd/filter_"$PRINTER" fi echo brHL1210Wrc_$$ >> $LATESTINFO cat $TMP_RC >> $LATESTINFO rm $TMP_RC exit $errorcode else ## ---------------- for debug echo --------------------------- >>$LOGFILE cat $BRPRINTERRCFILE >>$LOGFILE echo --------------------------- >>$LOGFILE INPUT_TEMP_PS=`mktemp /tmp/br_input_ps.XXXXXX` if [ $# -ge 7 ]; then cat $6 > $INPUT_TEMP_PS else cat > $INPUT_TEMP_PS fi case $DEBUG in 1) export LPD_DEBUG=1 cat $INPUT_TEMP_PS | /$BASEDIR/lpd/filter_"$PRINTER" ;; 2) export LPD_DEBUG=2 echo "" >>$LOGFILE echo " ------PostScript Data-------" >>$LOGFILE cat $INPUT_TEMP_PS >>$LOGFILE cat $INPUT_TEMP_PS | /$BASEDIR/lpd/filter_"$PRINTER" ;; 3) export LPD_DEBUG=3 echo "" >>$LOGFILE echo " ------PostScript Data-------" >>$LOGFILE cat $INPUT_TEMP_PS >>$LOGFILE ;; 4) export LPD_DEBUG=4 echo "" >>$LOGFILE echo " ------PostScript Data-------" >>$LOGFILE cat $INPUT_TEMP_PS >>$LOGFILE echo " ------Print Data-------" >>$LOGFILE cat $INPUT_TEMP_PS | /$BASEDIR/lpd/filter_"$PRINTER" | hexdump -C >>$LOGFILE ;; esac rm echo brHL1210Wrc_$$ >> $LATESTINFO cat $TMP_RC >> $LATESTINFO rm $TMP_RC fi exit
ошибки, которые я выше показывал:
D [25/May/2022:07:39:18 +0300] [Job 8] cp: -r not specified; omitting directory \'/opt/brother/Printers/HL1210W//inf/brHL1210Wrc\' D [25/May/2022:07:39:18 +0300] [Job 8] rm: cannot remove \'/tmp/brHL1210Wrc_260207\': No such file or directory
ERROR: //opt/brother/Printers/HL1210W//lpd/filter_HL1210W does not exist
дира «/opt/brother/Printers/HL1210W/inf/brHL1210Wrc» — пустая.
чё он блин ищет того, чего нет, и почему после этих двух строк он отваливается с кодом 1 ?!