Приручаем одичавший сканер - Тонкости свободного ПО - Свободное программное обеспечение - Каталог статей - Отделение ЭВМ РАТК Филиала МГТУ ГА
Рыльский авиационный технический колледж филиал МГТУ ГА Четверг, 23.02.2012, 15:14
Приветствую Вас Гость | RSS
Меню сайта
Форма входа
E-mail:
Пароль:
Категории раздела
Тонкости свободного ПО [1]
За время использования СПО получен некоторый опыт. Делимся!
Графика и анимация [1]
Бесплатные аналоги дорогостоящих программ.
Главная » Статьи » Свободное программное обеспечение » Тонкости свободного ПО

Приручаем одичавший сканер

Когда-то мамонты были маленькими, а баобабы были водорослями...


Во времена ASPLinux 12 очень радовал фокус: сканер подключается и работает что называется «из коробки». Вот так сила СПО. На дворе декабрь 2007, база дистрибутива Fedora 7.

2010-й год, Fedora 12. Сканер тот же, но теперь xsane выдаёт сюрприз:


Как всегда, если что-то не работает, запускаем из терминала. Ибо графические программы любят сообщать в него много интересного.


На ошибки UTF-8 внимание не обращаем, это вечная проблема. А вот «Couldn't open...» уже гораздо интереснее. Фактически это есть и проблема, и её решение.

Сканирование в Линукс завязано на SANE. Scanner Access Now Easy (SANE) — интерфейс прикладного программирования (API), который предоставляет стандартизированный доступ к устройствам сканирования растровых изображений. Аналогами для Уиндоуз являются такие API как TWAIN, WIA, ISIS. Этот интерфейс является посредником между драйвером сканера и приложением, которое осуществляет сканирование.

Драйвер сканера для Уиндоуз поставляется производителем сканера в двоичном виде и является его собственностью. Для Линукс производители сканеров (даже члены Линукс Фаундэйшн такие как HP) драйверы делать не спешат. Равно как и открывать протоколы работы со сканером.

Сканеры (как и вебкамеры) подобно материнским платам строятся на основе «чипсетов». Устройства разных производителей могут строится на одинаковых чипсетах. Поэтому драйвер работает не с абстрактным «сканером», а со вполне реальной микросхемой по вполне реальным протоколам. Почему же производители сканеров не открывают протоколов работы с их устройствами? Да потому что это не их собственность, а производителя чипсета.

Как же в Линукс сканеры вообще работают? Во-первых не все чипмейкеры «зажимают» техническую документацию, а некоторые даже наоборот очень подробно всё прописывают. Во-вторых, есть такое понятие — обра́тная разрабо́тка (обратный инжиниринг, реверс-инжиниринг). Для сканеров это выглядит так: вся информация, передаваемая через интерфейс подключения перехватывается и анализируется. Из этого выделяются команды управления сканером. Процесс трудоёмкий, но позволяет всё же написать драйвер. От сюда вывод: драйвер пишется не для сканера а для чипсета.

Драйвер для SANE называются бакэнд (backend). В состав практически любого дистрибутива Линукс вместе с SANE входят все известные бакэнды. Теоретически это означает, что если сканер числится в списке поддерживаемых на странице SANE (http://www.sane-project.org/sane-mfgs.html), то достаточно его подключить и он будет работать.

Вернёмся к нашему сканеру. SANE сканер опознала, да и в списке поддерживаемых он числится (Mustek BearPaw 2400 CU Plus).


Значит он должен работать. Но не работает. В самом начале мы выяснили, что xsane выдала в консоль «[gt68xx] Couldn't open firmware file (`/usr/share/sane/gt68xx/PS2Dfw.usb'): Нет такого файла или каталога». gt68xx это бакенд для сканера. А вот что ещё за firmware file PS2Dfw.usb?

Сканер, как и любое современное устройство (жесткий диск, дивиди плеер), работает под управлением специальной микропрограммы (прошивки). Эта прошивка создаётся производителем устройства и отвечает за алгоритм его работы. Обычно эта микропрограмма записывается в ПЗУ устройства. В сканерах же часто ПЗУ нет, а firmware записывается драйвером при инициализации устройства в специальный буфер. Вот нам бакенд и сообщил, что прошивки для сканера на указанном месте нет.

Где взять прошивку? Некоторые производители сканеров выкладывают их на своём сайте. Но это редкость. Проще всего найти этот файл на диске с драйверами для Уиндоуз, либо в каталоге Windows\drivers (зависит от версии оной). Можно поискать на просторах интернета. В моём случае на сайте бакенда gt68xx (http://www.meier-geinitz.de/sane/gt68xx-backend/) есть прямая ссылка для скачки.

Создаём каталог /usr/share/sane/gt68xx и помещаем туда файл PS2Dfw.usb. Запускаем xsane и вуаля! Всё работает. Да, есть по крайней мере две версии прошивки, одна из них с бакендом не корректно работает. Она мне попалась в драйвере для висты. А вторя с сайта бакенда работает прекрасно.

Так почему же сканер одичал? Под ASPLinux 12 на 7-й федоре работал, а на 12-й федоре уже нет. Дело в том, что firmware являются собственностью производителей сканеров, и распространять их отдельно во многих странах (в том числе и США) является нарушением закона. У нас в России пока на это не смотрят. Вот создатели АСПэшки и поместили на свой диск сразу все доступные прошивки на радость юзерам. А в Russian Fedora 12 об этом то ли не подумали, то ли побоялись.

4 мая 2010                                      П. В. Скребнев


Категория: Тонкости свободного ПО | Добавил: Anonim (04.05.2010)
Просмотров: 299 | Теги: Fedora 12, сканер, настройка | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email:
Код *:
Поиск
Друзья сайта
  • Рыльский авиационный технический колледж гражданской авиации
  • Наш опрос
    Оцените мой сайт
    Всего ответов: 52
    Статистика

    Онлайн всего: 7
    Гостей: 7
    Пользователей: 0
    Отделение ЭВМ - Рыльский авиационный технический колледж филиал МГТУ ГА      А. С. Жуковский www.ded-al.ucoz.ru © 2012Сделать бесплатный сайт с uCoz