Сканеры в Linux

Использование сканера не является привилегией одних только пользователей MS Windows. Хотя действительно, "завести" устройство от целого ряда производителей подобного оборудования в альтернативной ОС, бывает, мягко говоря, проблематично.


В принципе, производителями драйверы делаются для всего семейства операционных систем Windows (включая NT/2000). Устройства, к которым существуют драйверы только лишь для Windows 9x/ME, можно встретить довольно редко. А вот тем, кто решил перейти с Окошек, например, на Linux, придется сложнее. Но и их положение далеко не безнадежно. Есть утилита SANE и графическая оболочка к ней под названием XSANE, которые поддерживают немало устройств. Кстати, SANE работает не только в Linux. Список поддерживаемых ею программно-аппаратных платформ весьма обширен и постоянно пополняется. Эта утилита работает в Linux, во всех ОС семейств BSD, Solaris, HP UX, OS/2, BeOS и многих других. Полный список как программно-аппаратных платформ, так и сканеров, поддерживаемых SANE, есть на домашней страничке группы разработчиков по адресу www.mostang.com/sane. Естественно, там же можно загрузить эту программу, причем как в виде исходных текстов, так и бинарный дистрибутив, предназначенный для вашей системы. В некоторые дистрибутивы Linux (в частности, SUSE, Mandrake, AltLinux, ASPLinux) SANE включается штатно. Хотя, скорее всего, это будет несколько устаревшая версия: SANE обновляется постоянно, и авторы дистрибутивов просто не успевают за разработчиками программы.


Хотелось бы предупредить сразу, что SANE лучше всего поддерживает устройства со SCSI-подключением. Из LPT-сканеров SANE может работать лишь со считанными моделями от Mustek и Umax. Ряд устройств от Primax поддерживается специальной утилитой, ссылка на которую есть на сайте разработчиков SANE. USB-модели в списке поддерживаемых устройств появились не так давно, причем возни с их настройкой будет больше и результат может оказаться отрицательным, особенно - если поддержка того или иного устройства включена в программу недавно.


Настройка SANE сильно зависит от конкретной модели сканера. Об этом лучше читать в документации на конкретный backend или драйвер. Ссылки есть в таблице поддерживаемых сканеров. Для SCSI-устройства достаточно запустить утилиту findscanner из поставки SANE. А вот с USB- и LPT-устройствами все не так просто, потребуется редактирование целого ряда конфигурационных файлов, в частности, modules.conf и конфигурационного файла драйвера, и, вполне возможно, понадобится переконфигурирование ядра. Плюс ко всему крайне желательно иметь ядро Linux поновее. Если его версия 2.2.14 и ниже, нормальная работа USB-сканера будет проблематичной. Лучше всего ставить ядро 2.4.8 и выше. Поддержка USB-устройств, в том числе и сканеров, в нем значительно улучшена.



SANE можно пользоваться из командной строки. Это, не всегда удобно, тем более что командные строки будут довольно длинными. К тому же особенности синтаксиса сильно варьируются в зависимости от конкретной модели устройства. Благо, что есть графические оболочки к SANE. Их даже две: помимо уже упомянутой XSANE, можно назвать еще и Xscanimage. Они имеют практически идентичный интерфейс и особенности работы. И та, и другая копируют интерфейс утилит сканирования для Windows и Mac.


Но есть и различия. Xscanimage не может вызываться автономно. Она интегрируется с GIMP и рядом других приложений, в частности, Krayon (растровый редактор из поставки Koffice) и Linux-версией Corel Photo-Paint. XSANE можно использовать автономно и просто сохранить изображения для последующего редактирования в любой программе. Однако XSANE может также интегрироваться с GIMP и некоторыми другими приложениями, в частности, с программой распознавания текста GOCR.


Как уже было сказано выше, есть и другие утилиты сканирования для альтернативных операционных систем типа Linux . Есть целый ряд программ сканирования для Linux, но они, как правило, коммерческие, плюс ко всему - уже давно не развиваются.


Так что использовать сканер в неwinном мире можно, просто уделив несколько больше внимания выбору подходящей модели и настройке программного обеспечения.


Как пользоваться SANE ? Заходим на ftp . mostang . com / pub / sane / , и скачиваем от туда последнюю версию sane - x . x . x . tar . gz (список всех сайтов есть здесь: http://www.mostang.com/sane/source.html ). Затем делаем следующую последовательность команд:


tar xfvz sane-1.0.7.tar.gz


cd sane-1.0.7



./configure; make; make install


Все. Большего не надо . Теперь, если у вас SCSI -сканер (для простоты рассмотрим именно этот случай), осмотрите свою машину и подсчитайте, сколько и как у вас к ней подключено SCSI устройств. Диски не считайте. Обычно сканер единственный. Значит, устройство для него будет / dev / sga (если сканер второй, то / dev / sgb и так далее). Поставьте символическую ссылку на это устройство:


ln - s / dev / sga / dev / scanner


А команда


chmod 777 / dev / sga


даст всем доступ до него. Негоже одному root пользоваться сканером :). В принципе никто не мешает создать группу scaner и дать права только ей. Не забудьте глянуть на конфигурационный файл для вашего сканер. Он должен находится в директории / usr / local / etc / sane . d /[фирма_сканера]. conf . Например, для UMAX это umax . conf . Этот файл содержит список имен, которые соответствуют вашему сканеру (их может быть и несколько). Вот пример такого файла :


#scsi Vendor Model Type Bus Channel ID LUN


scsi UMAX * Scanner * * * * *


/ dev / scanner



# можно указать его устройство и так


/ dev / sg а


Все, теперь можете смело набирать команду


scanimage - L


Ответ, например, может быть таким:


device `hp:/dev/sga' is a Hewlett-Packard C5110A flatbed scanner


Ну вроде оно. А что этот сканер умеет?


scanimage -d hp:/dev/sga -h


Вот. scanimage - это консольная утилита для сканирования. Если охота написать скриптик, который сканирует и что-то делает с полученным - вам к ней.



Оболочки к SANE. Ленивые люди пользуются красивой, простой графической утилитой xscanimage, которая идет вместе с исходниками sane. Запустите ее в XWindow. Интерфейс простой, возможности тоже, сохраняет в pnm. Для проверки хватит. Более навороченная оболочка, о которой я уже говорил выше, называется XSane. После компилирования и инсталляции, ее можно запустить при помощи команды xsane. Но нам желательно бы из Gimp'а. Нет ничего проще! Даём следующую команду (для Gimp-1.1.xx, лучше поставить линк на xsane):


ln -s /usr/local/bin/xsane ~/.gimp-1.1/plug-ins


Чтобы не делать такое для каждого пользователя такой линк, лучше поставьте линк прямо в директорию процедур Gimp'a (plug-ins):


ln -s /usr/local/bin/xsane /usr/local/lib/gimp/1.1/plug-ins В версиях Gimp'a (1.0.x, <1.1.9) ищите меню Xtns/Xsane, а в версиях Gimp'a от 1.1.9 вам надо зайти в меню File/Acquire. Оно будет содержать имена устройств с которых можно сканировать.


Если, у вас ничего не заработало, то в любом случае, можно просто сканированное сохранять в .pnm файл, а затем открывать любым графическим редактором.


Всё, у вас обычная в принципе машина, которая умеет работать со сканером. Но мы решили отдать сканер в сеть. И более того, отдать его windows-машинам.


Итак, сначала добавляем в /etc/services номер порта для sane:


sane 6566/tcp



Затем добавляем в /etc/inetd.conf строчку


sane stream tcp nowait saned.saned /usr/local/sbin/saned saned


Вместо saned.saned поставьте пользователя и группу, от которой будет работать демон. "root.root" - это не само хорошее решение. Сделайте что-то вроде "scanner.scanner".


Перезагружаем inetd:


killall -HUP inetd


Теперь редактируем файл /usr/local/etc/sane.d/saned.conf. В нем мы должны прописать имена хостов, которые должны иметь доступ к сканеру через сеть. Если мы отдаем сканер всему миру (ну или всей сети), то просто поставьте в персом символе первой строки плюсик (+), этим вы отключите вcякий контроль со стороны sane. Теперь давайте проверим, доступен ли сканер из сети. Для этого в файл /usr/local/etc/sane.d/net.conf пропишем адрес машины, на которой есть настроенный, как написано выше, демон. Если вам охота проверить свою машину, то просто напишите туда localhost. Теперь, даём команду на сканирование:


scanimage - L


Вывод на экране:


device `hp:/dev/sga' is a Hewlett-Packard C5110A flatbed scanner



device `net:localhost:hp:/dev/sga' is a Hewlett-Packard C5110A flatbed scanner


Работает! Теперь любой другой Linux сможет отсканировать с вашего сканера что-нибудь. Но прежде удостоверьтесь, что обратное преобразование имен работает (цифры в имена). Если нет, то просто добавьте удаленные хосты в /etc/hosts.

Похожие новости

Комментариев 0