Intereting Posts
Как повторить последовательность чисел в столбце с помощью команды awk Как проверить пакет AUR на наличие вредоносного кода? Как отключить компьютер от SLiM при отключенном корневом входе? Как получить запись истории для правильного отображения на нескольких строках Создание привязки для прослушивания localhost в netns sed – если условие выполнено, используйте следующий шаблон Получение ошибки Сервер MySQL MySQL ушел на CentOS Как определить aptitude для автоматической установки отсутствующих пакетов вместо того, чтобы удалять их в зависимости от зависимостей? Разделение нескольких определенных файлов из многих в каталог с помощью терминала? Восстановить раздел LUKS после перезаписи первых байтов контейнера LUKS? Система по-прежнему! Как удалить идентификатор устройства из введенного вручную драйвера usb-serial Как включить CRS-правила в mod_security в Debian 9? Как узнать, могу ли я использовать ssh keypairs? Чтение списка пакетов … Готово Можно ли сделать файл .tar.gz непосредственно из stdin? Или, мне нужно, чтобы смонтировать вместе уже gzipped файлы

Как заставить драйверы принтера Brother работать на Fedora?

У меня есть два принтера Brother: принтер этикеток QL-1050 (с USB-подключением) и MFC-9330CDW (Wi-Fi).

Оба прекрасно работают с ноутбуком Ubuntu, но я изо всех сил пытаюсь заставить их печатать под Fedora 28 (на самом деле была та же проблема с F23, но так и не удалось ее решить).

Я скачал официальные драйверы на сайте Brother:

mfc9330cdwcupswrapper.i386 mfc9330cdwlpr.i386 ql1050cupswrapper.i386 ql1050lpr.i386 

Я также установил следующие 32-битные пакеты, поскольку Brother не предоставляет 64-битные драйверы:

 glibc.i686 libgcc.i686 libstdc++.i686 nss-softokn-freebl.i686 

Оба принтера правильно распознают CUPS, но ни один из них не будет печатать, будь то через lpr , eog , eog , firefox … Работа незаметно исчезает из очереди, но ничего не печатается, и принтер фактически никогда не реагирует.

Вероятно, это связано с тем, что фильтр Brother не работает автоматически, на что намекают журналы CUPS на уровне отладки:

 $ journalctl -u cups … juil. 23 17:14:24 Schenker cupsd[17868]: [Job 36] PID 17877 (/usr/lib/cups/filter/pdftops) exited with no errors. juil. 23 17:14:24 Schenker cupsd[17868]: [Job 36] /usr/lib/cups/filter/brother_lpdwrapper_mfc9330cdw : ligne 133 : 17902 Erreur de segmentation /opt/brother/Printers/mfc9330cdw/cupswrapper/brcupsconfpt1 MFC9330CDW $PPDC $LOGCLEVEL \"$CUPSOPTION\" \"mfc9330cdw\" $BRPRINTERRCFILE >> $LOGFILE juil. 23 17:14:24 Schenker cupsd[17868]: [Job 36] /opt/brother/Printers/mfc9330cdw/lpd/filtermfc9330cdw : ligne 63 : 17914 Fini eval cat $INPUT_TEMP juil. 23 17:14:24 Schenker cupsd[17868]: [Job 36] 17915 | $PSCONV $PSCONV_OP juil. 23 17:14:24 Schenker cupsd[17868]: [Job 36] 17916 Erreur de segmentation | $BRCONV $BRCONV_OP juil. 23 17:14:24 Schenker cupsd[17868]: [Job 36] PID 17878 (/usr/lib/cups/filter/brother_lpdwrapper_mfc9330cdw) exited with no errors. … 

(Как вы, наверное, догадались, «Erreur de segmentation» – это французское слово «segmentation fault».)

Я предполагаю, что драйвер пытается использовать 64-битные библиотеки вместо 32-битных. Как мне это проверить и / или что я могу сделать, чтобы заставить его использовать 32-битные библиотеки?

Редактировать: Очевидно, они используют 32-битные библиотеки:

 $ ldd /opt/brother/Printers/mfc9330cdw/cupswrapper/brcupsconfpt1 linux-gate.so.1 (0xf7ed4000) libc.so.6 => /lib/libc.so.6 (0xf7d10000) /lib/ld-linux.so.2 (0xf7ed6000) 

Я должен упомянуть, что я прочитал этот FAQ и что brother_lpdwrapper_mfc9330cdw существует в /usr/lib/cups/filter/ и /usr/lib64/cups/filter/ . Первый действительно используется (действительно, я смог изменить уровень отладки в нем).

На самом деле проблема не имеет ничего общего с архитектурой. «Случайно» мой ноутбук завис, и я обнаружил, что «Не удалось загрузить политику SELinux. Замораживание». Ситуация при загрузке, то при отключенном SELinux неловко принтер работал.

Очевидно, известно, что SELinux не позволяет драйверам принтеров Brother выполнять свою работу начиная с Fedora 21.

Решение довольно простое. Процитируем заключительный комментарий к сообщению об ошибке, указанному выше:

Для этого есть логическое значение.

 setsebool -P cups_execmem 1