Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

articles:brother-mfc [2017/09/05 02:55] (текущий)
Строка 1: Строка 1:
 +====== brother-MFC ======
 +<​sub>​{{brother-MFC.odt|Original file}}</​sub>​
 +
 +====== особенности печати в Linux\\ принтерами фирмы Brother ======
 +
 +крис касперски,​ no-email
 +
 +**поддержка ****Linux'​****а становится очень актуальной,​ особенно когда разговор заходит о государственных учреждениях,​ где ****Linux ****чувствует себя довольно уверенно,​ составляя существенную конкуренцию продукции ****Microsoft****,​ однако,​ за открытость и бесплатность ****Linux'​****а приходится расплачиваться большим количеством проблем,​ в том числе связанных с поиском,​ установкой и настройкой драйверов различных устройств. фирма ****Brother ****поддерживает ****Linux****,​ но ****Linux-****сообщество (пока) не поддерживает фирму ****Brother**** со всеми вытекающими отсюда последствиями,​ рикошетом ударяющими по конечному пользователю.**
 +
 +===== введение =====
 +
 +Популярность Linux'​а растет с каждым днем и большинство крупных производителей аппаратного обеспечения (и Brother в том числе) уже не могут позволить себе игнорировать его существование,​ поскольку,​ даже те несколько процентов рынка, захваченные Linux'​ом,​ в пересчете на абсолютные цифры составляют миллионы потенциальных покупателей,​ вполне окупающих разработку драйверов,​ однако,​ их качество (за редкими исключениями) оставляет желать лучшего и установка драйверов обычно сопровождается многочисленными проблемами,​ решение которых требует достаточно высокой квалификации выходящей за рамки возможностей средне статического потребителя.
 +
 +Главным образом это вызвано скудностью бюджета,​ выделяемого на разработку Linux-драйверов,​ и отсутствуем квалифицированных специалистов,​ имеющих реальный опыт работы со всем "​зоопарком"​ Linux-систем,​ каждая из которых имеет свои особенности нигде не описанные и подверженные спонтанными изменениям с расстрелом на месте без всякого предупреждения. В этом смысле Linux радикально отличается от Windows и других коммерческих операционных систем,​ производители которых весьма щепетильны в вопросах обратной совместимости,​ и которые работают не только над кодом, но и над документацией,​ описывая новые API-функции вместе с примерами их использования. Никто, конечно,​ не говорит,​ что разрабатывать драйвера под Windows – это просто,​ но по крайней мере, качество этих драйверов особых нареканий не вызывает,​ процедура установки автоматизирована до предела,​ а все возникающие проблемы обычно решается установкой пакетов обновлений или новых версий драйверов.
 +
 +А что мы имеем в Linux? Документации нет и ее заменяет исходный код со скудными комментариями,​ причем,​ любой составитель дистрибутива может вносить в этот код свои собственные изменения (и не только может, но и вносит),​ вызывающие совершенно неожиданные эффекты. Linux похож на болото,​ утонувшее во тьме, а в руках у программиста — только крошечный фонарик. Ни на что опираться нельзя — все зыбко, изменчиво,​ о твердой почве под ногами приходится только мечтать. В одном дистрибутиве — так, в другом — сяк, а в следующей версии ядра вообще все иначе. Конечно,​ никто не говорит,​ что хороших драйверов под Linux не может существовать в принципе,​ просто их разработка обходится порядка на два дороже из-за необходимости учета всей этой многовариантности и дополнительных расходов на тестирование драйвера под кучей дистрибутивов.
 +
 +Собственно говоря,​ отличие философии Linux от Windows в том, что Microsoft выпускает Windows, а драйвера пишут производители оборудования и потому для нормальной работы драйверов достаточно односторонней поддержки Windows конкретно взятым производителем (например,​ Brother). Предпринимает ли Microsoft какие-то ответные шаги в этом направлении или нет — уже неважно. Windows не обязана поддерживать Brother, чтобы пользователи не имели проблем. В Linux же необходима двухсторонняя поддержка. Brother должен поддерживает Linux, выпуская драйвера для своих устройств,​ а Linux-сообщество обязано поддерживать Brother, включая его драйвера в дистрибутивы,​ тестируя их и при необходимости адоптируя драйвера к конкретному клону Linux'​а с учетом его особенностей. Только в этом случае конечный пользователь будет более или менее работоспособный продукт.
 +
 +Поддерживает ли Brother операционную систему Linux? Да, Brother выпускает драйвера для своих устройств по лицензии GPL — то есть распространяет их с исходными текстами и правом модификации. Следовательно,​ любой составитель дистрибутивов имеет возможность включить их в комплект поставки (после тестирования и адоптации). Но поддерживает ли сообщество Linux фирму Brother? Увы, ответ отрицательный. Популярные дистрибутивы не содержат драйверов,​ отсылая пользователя к сайту Brother, фактически,​ перекладывая задачу адаптации драйверов на его плечи. Brother не может (точнее может — учитывая масштабы компании,​ просто не хочет тратить на это деньги) учитывать особенности всех дистрибутивов и даже на официально поддерживаемые ею дистрибутивы драйвера устанавливаются не в полностью автоматическом режиме и пользователю приходится вручную выполнять различные дополнительные (и современно неочевидные!) действия часть из которых перечислена в официальном же FAQ, часть — приходится находить экспериментальным путем или поиском в Интернете на блогах и Linux-форумах.
 +
 +Почему же составители дистрибутивов не уделяют поддержке Brother должного внимания?​ Это одна из издержек демократии,​ против которой не попрешь. Linux —свободная система. Не хотят поставщики Linux-решений сотрудничать с Brother — вот и не сотрудничают. Кому-то не нравится качество кода, кому-то просто неинтересна Brother и ее продукция. А страдает кто? Правильно — конечные пользователи! На самом деле, ситуация совсем не безнадежна и большинство проблем вполне решаемы,​ главное — знать, где искать ответ!
 +
 +{{brother-mfc_Image_0.png?​553}}
 +
 +Рисунок 1 многофункциональное печатающее устройство Brother MFC-8860DN (BS-Script модель)
 +
 +===== fundamentals =====
 +
 +Общая информация (на английском языке) по поддержке Linux собрана на станице:​ http://​solutions.brother.com/​linux/​en_us/​index.html,​ откуда,​ в частности,​ можно узнать,​ что Brother поддерживает следующие дистрибутивы:​ RedHat, Mandriva (бывший Mandrake), SuSE, Debian и FedoraCore. В этом списке отсутствуют Gento, Ubuntu и многие другие популярные дистрибутивы,​ тем не менее драйвера работают и на них, пускай и не без проблем,​ решение большинства из которых описаны в официальном FAQ: http://​solutions.brother.com/​linux/​sol/​printer/​linux/​linux_faq-2.html (что вообще-то очень странно — если компания осведомлена о проблеме,​ что мешает ей доработать драйвер?​ даже с учетом того, что Linux-пользователи приучены читать документацию со всеми FAQ и readme, не слишком-то вежливо заставлять их делать "​руками"​ то, что программа может выполнить и самостоятельно).
 +
 +Поддержки операционных систем семейства BSD нет и по-видимому еще долго не будет, что тоже странно — позиции Linux в качестве серверов (и серверов печати в том числе) пока еще не настолько сильны,​ чтобы полностью вытеснить с рынка BSD, которая к тому же намного более безопасна и достаточно популярна в критических инфраструктурах. Тем не менее, поскольку лазерные принтеры,​ выпускаемые фирмой Brother, поддерживают стандартный для этих устройств язык PostScript, то можно использовать общий (generic) Postscript/​PCL-драйвер,​ например,​ Ghostscript hl1250 или Ghostscript hl7x0-драйвер,​ входящий в штатный комплект поставки операционной системы.
 +
 +По историческим причинам UNIX имеет большое количество сервисов,​ отвечающих за печать,​ что создает огромные проблемы как для разработчиков приложений (какую из систем использовать?​),​ так и для производителей драйверов,​ вынужденных поддерживать несколько систем сразу, ну а страдают,​ как водится,​ пользователи.
 +
 +Brother поставляет два типа драйверов — LPR-драйвера (для LPD сервиса) и CUPS-драйвера/​CUPS-wrapper'​ы для CUPS-системы,​ превращающей компьютер в сервер печати,​ управляемый по WEB-интерфейсу и базирующейся на LPD-сервисе. Большинство офисных приложений (например,​ OpenOffice) замечательно работают через LPR-драйвер,​ процесс установки которого (на английском языке) описан на станице http://​solutions.brother.com/​linux/​sol/​printer/​linux/​lpr_install.html,​ и установка CUPS-драйвера описанная (на английском языке) на странице http://​solutions.brother.com/​linux/​sol/​printer/​linux/​cups_drivers.html требуется только,​ когда компьютер планируется использовать как сервер сетевой печати (примечание:​ LPD-сервис поддерживает печать по сети, однако,​ предоставляет минимум средств контроля,​ управления и планировки,​ поэтому,​ использование CUPS-системы во многим случаях является намного более предпочтительным решением,​ однако,​ установка CUPS-драйвера не отменяет необходимости установки LPR-драйвера,​ который должен быть установлен первым).
 +
 +{{brother-mfc_Image_1.png?​553}}
 +
 +Рисунок 2 на странице http://​solutions.brother.com/​linux/​en_us/​index.html собрана основная информация по поддержке Linux
 +
 +===== >>>​ врезка LPD, LDR, etc =====
 +
 +Аббревиатуры LPD/LDR расшифровываются как Line Printer Daemon protocol/​Line Printer Remote protocol ("​протокол [удаленной] службы построчной печати"​). В мире UNIX-систем,​ LPD-протокол — это стандарт де-факто,​ описанный в RFC-1179 (http://​tools.ietf.org/​html/​rfc1179) и реализующий базовые возможности по управлению очередями печати. LPD-демон поддерживает как локальный так и удаленный режимы,​ работая по TCP/​IP-протоколу через 515-порт.
 +
 +Существует множество реализаций LPR — от коммерческих,​ до бесплатных,​ охватывающих практически все операционные системы:​ Linux, BSD, Windows. Фирма Brother поставляет LPR-драйвера для Linux, но не для BSD, поскольку в BSD используется совершенно иная драйверная модель,​ несовместимая с Linux, тем не менее, открытость исходных текстов вкупе с GPL-лицензией позволяет всем желающим осуществить перенос драйверов под BSD самостоятельно (хоть и появление таких желающих достаточно маловероятно,​ особенно с учетом того, что FreeBSD и Open/NetBSD архитектурно сильно неодинаковы и пути их ядер разошлись еще много версий тому назад).
 +
 +{{brother-mfc_Image_2.png?​527}}
 +
 +Рисунок 3 работа с очередью печати в Linux
 +
 +===== >>>​ врезка вокруг CUPS =====
 +
 +Аббревиатура CUPS расшифровывается как Common Unix Printing System ("​общая система печати в UNIX") и в настоящее время представляет собой торговую марку, принадлежащую компании Apple, вместе с самим программным обеспечением,​ входящим в состав практически всех Linux-дистрибутивови поддерживаемого последними версиями Windows.
 +
 +CUPS использует IPP (Internet Printing Protocol), основанный на протоколе HTTP и по умолчанию использует 631-порт. Компьютер с CUPS превращается в сервер печати,​ управляемый через WEB-интерфейс и внутренне опирающийся на LPR, а потому установка CUPS не является обязательной (особенно,​ учитывая тот факт, что LPD поддерживает удаленную печать) и оправдывает себя только когда к компьютеру подключено большое количество печатающих устройств,​ загруженных на полную мощь.
 +
 +Компания Brother предоставляет CUPS-драйвера для печатающих устройств,​ поддерживающих BS-Script, и CUPS-wrapper'​ы (обертки) для устройств,​ не поддерживающих BS-Script. Для конфигурирования и настройки CUPS-драйверов используются текстовые файлы в формате PostScript Printer Description (или, сокращенно,​ PPD), так же предоставляемых фирмой Brother с настройкам по умолчанию,​ которые могут быть измены конечным пользователем в соответствии с его личными предпочтениями.
 +
 +{{brother-mfc_Image_3.png?​480}}
 +
 +Рисунок 4 официальный логотип системы CUPS (www.cups.org)
 +
 +===== >>>​ врезка PostScript и Ghostscript =====
 +
 +Пусть созвучность в названиях PostScript и Ghostscript не введет вас в заблуждение и не создаст ненужную путаницу. PostScript — язык разметки страницы,​ разработанный компанией Adobe и поддерживаемый практически всеми лазерными принтерами. Ghostscript — одна из реализаций интерпретатора языка PostScript, в настоящее время распространяющая как на коммерческой (Artifex Software Ghostscript),​ так и некоммерческой (GNU Ghostscript) основах. Вообще же, интерпретаторов языка PostScript существует достаточно много и принтер,​ строго говоря,​ не относится к тем устройствам,​ под которое обязательно требуется "​родной"​ драйвер производителя. В отличии от видеокарт,​ разработчики которых,​ так и не выработали единый стандарт,​ принтеры поддерживают стандартные протоколы и потому замечательно функционируют и с generic-драйверами,​ конечно,​ за вычетом нестандартных расширений,​ например,​ режима экономичного расхода тонера отсутствие которых в generic-драйверах очень неприятно,​ но не смертельно.
 +
 +===== возможные проблемы и пути их решения =====
 +
 +Значительная часть проблем связана с 64-битными версиями Linux, под которой системы печати "не видят"​ LPR/​CUPS-драйверов после их установки,​ выдавая соответствующие диагностические сообщения или не выдавая вообще ничего (в том числе и печатной продукции). Причина в том, что Brother кладет все файлы в директорию /usr/lib/, имеющуюся во всех 32-битных версиях,​ в то время как64-битные дистрибутивы обычно используют две раздельные директории /usr/lib32/ и /usr/lib64/ для 32- и 64-битных библиотек соответственно. Чтобы заставить драйвера работать,​ необходимо создать символьную ссылку /usr/lib/, ведущую к /​usr/​lib32/,​ а так же скопировать все файлы, начинающие со строки "​brlpdwrapper"​ из директории "/​usr/​lib/​cups/​filter/"​ в "/​usr/​lib64/​cups/​filter/"​.
 +
 +Так же может потребоваться доустановка некоторых библиотек,​ в частности lib32stdc++6 (на 64-разрядных Debian системах) или ia32-libs(на 64-разрядных Ubuntu системах),​ после которых необходимо выполнить перезагрузку и повторить процесс установки драйверов вновь, а если установщик откажется запускаться — форсировать выбор архитектуры ключом "​‑ ‑ force-architecture"​. Более подробно данный вопрос освещен в официальном FAQ, где приведены конкретные пошаговые рекомендации для различных дистрибутивов:​ http://​solutions.brother.com/​linux/​sol/​printer/​linux/​linux_faq-2.html.
 +
 +Проблемы неправильного выбора директорий существуют и в 32-битных версиях Linux'​а,​ для решениях которых так же приходится гонять файлы между различными каталогами и создавать символьные ссылки от одной директории к другой,​ что описано в FAQ. Конечно,​ "​разброд"​ в директориях — "​родовая"​ особенность UNIX-систем,​ можно даже сказать,​ хроническая болезнь,​ отраженная в древней шутке "​типичный пользователь UNIX'​а больше всего озабочен проблемой как на этой неделе у нас называется команда PRINT?",​ но почему проблемы с именами команд/​библиотек и расположением директорий должны волновать простых пользователей?​ Скорее это карма разработчиков программного обеспечения и совершенно непонятно почему фирма Brother не исправит _свои_ недоработки в драйверах,​ если уже осознала,​ что на определенных дистрибутивах они не работают — не так уж и сложно включить несколько дополнительных строк в сценарий автоматической установки драйвера. Запятнанная репутация всяко обходится дороже,​ а судя по форумам и блогам,​ Linux-пользователи считают продукцию Brother весьма проблемой,​ хотя она реально поддерживает намного больше дистрибутивов,​ чем заявляет,​ но… это уже требует определенного "​шаманства"​ с драйверами (или же использования универсальных драйверов).
 +
 +===== >>>​ врезка открытые и закрытые драйвера =====
 +
 +На данный момент Linux представляет собой операционную систему с открытым ядром и большим количеством открытых драйверов и прикладного программного обеспечения,​ что позволяет независимым компаниям адоптировать Linux под свои нужды, а потребителям — исследовать операционную систему на предмет всевозможных "​закладок",​ вставляемых в код как по самостоятельной инициативе отдельных разработчиков,​ так и под давлением правительства.
 +
 +Существует вполне обоснованное подозрение,​ что многие коммерческие операционные системы содержат ряд закладок,​ позволяющих фирме-производителю (или правительству) контролировать компьютеры,​ подсматривая за пользователями или выводя систему из строя (в целях экономического саботажа политического противника,​ например). Открытость Linux чрезвычайно затрудняет внедрение подобных закладок,​ а потому в критических инфрастуктурах применение открытого кода намного более предпочтительно (хотя до критических инфрастуктур Linux'​у еще надо дорасти и в этом плане BSD-системы выглядят намного более подходящими).
 +
 +К сожалению,​ доля закрытого кода в Linux неуклонно растет как на уровне драйверов,​ так и на уровне прикладного программного обеспечения,​ что совершенно неудивительно,​ ведь коммерцию еще никто не отменял,​ а большинство пользователей интересует лишь качества программного обеспечения,​ причем,​ как показывает статистика,​ львиная доля пользователей игнорирует исходные тексты (даже когда они есть), предпочитая скачивать готовые бинарные сборки,​ чтобы не тратить время на компиляцию,​ которая к тому же предъявляет достаточно высокие требования к квалификации. Таким образом,​ закрытый код всегда найдет своего потребителя,​ а фирмам,​ его выпускающим,​ не нужно будет ломать устоявшуюся модель продаж.
 +
 +Естественно,​ закрытый код вызывает недовольство у профессиональных пользователей Linux'​а и порой дело доходит чуть ли не до саботажа. В частности,​ Debian дистрибутивы включают в себя только открытый код, что, впрочем,​ никак не препятствует появлению большого количества дистрибутивов,​ основанных на Debian, но дополненных закрытыми драйверами и коммерческими программными пакетами. Если дело так пойдет и дальше,​ то Linux постепенно превратится в подобие Windows, тем более, что разговоры о покупке Linux ядра уже поднимались неоднократно и рано или поздно,​ но кто-то из "​сильных"​ и "​могучих"​ его так или иначе приберет к своим рукам.
 +
 +А потому очень важно поддерживать производителей,​ исповедующих политику открытого кода, голосуя за них своим пользовательским рублем. В противном случае,​ в скором будущем голосовать будет не за кого.
 +
 +{{brother-mfc_Image_4.png?​553}}
 +
 +Рисунок 5 отсюда можно скачать LPR-драйвера для различных печатающих устройств,​ выпущенных фирмой Brother
 +
 +===== >>>​ врезка ссылки на ресурсы =====
 +
 +Для удобства читателей все ссылки,​ упомянутые в статье,​ ниже даны в виде списка:​
 +
 +  - общая информация по поддержке Linux:
 +    - http://​solutions.brother.com/​linux/​en_us/​index.html;​
 +  - LPR драйвер печати:​
 +    - http://​solutions.brother.com/​linux/​sol/​printer/​linux/​lpr_drivers.html;​
 +  - LPR драйвер отправки факсов PC-FAX:
 +    - http://​solutions.brother.com/​linux/​sol/​printer/​linux/​pcfax_drivers_lpr.html;​
 +  - Описание процесса установки LPR-драйвера:​
 +    - http://​solutions.brother.com/​linux/​sol/​printer/​linux/​lpr_install.html;​
 +  - SANE-драйвер сканера:​
 +    - http://​solutions.brother.com/​linux/​sol/​printer/​linux/​sane_drivers.html;​
 +  - CUPS-драйвер печати (вместе с описанием процесса установки):​
 +    - http://​solutions.brother.com/​linux/​sol/​printer/​linux/​cups_drivers.html;​
 +===== заключение =====
 +
 +Сырость драйверов под Linux и отсутствие поддержки BSD-систем вполне понятна и простительна. Linux сама по себе является очень молодой системой,​ еще вчера представляющей собой игрушку,​ она только-только начала укоренятся в конкурентную почву компьютерной индустрии,​ в настоящей момент не имеющей реального опыта программирования под Linux. Открытость Linux-сообщества на самом деле весьма относительна. Оно довольно враждебно относится к новичкам. В отличии от поставщиков коммерческих операционных систем,​ Linux-разработчики в тесном контакте с производителями аппаратного обеспечения не заинтересованы. Над ядром работает буквально горстка людей, литературы по разработке драйверов нет вообще (а та, что есть давно устарела и очень сильна неполна). Так что нужно еще сказать спасибо Brother за проделанную ей работу.
 +
 +Хочется верить,​ что проблемы с драйверами — временные и в обозримом будущем Brother отшлифует их до зеркального блеска,​ так что не ленитесь заглядывать на ее сайт в поисках обновлений и свежих рецептов в FAQ.
 +
 +