Базы данныхИнтернетКомпьютерыОперационные системыПрограммированиеСетиСвязьРазное
Поиск по сайту:
Подпишись на рассылку:

Назад в раздел

Сканеры в Linux

div.main {margin-left: 20pt; margin-right: 20pt} Сканеры в 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? Заходим на href="ftp://ftp.mostang.com/pub/sane/">ftp.mostang.com/pub/sane/,
и скачиваем от туда последнюю версию sane-x.x.x.tar.gz (список всех сайтов
есть здесь: href="http://www.mostang.com/sane/source.html">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.



align=right>X-Stranger


align=right>linux@hitech.by


  • Главная
  • Новости
  • Новинки
  • Скрипты
  • Форум
  • Ссылки
  • О сайте




  • Emanual.ru – это сайт, посвящённый всем значимым событиям в IT-индустрии: новейшие разработки, уникальные методы и горячие новости! Тонны информации, полезной как для обычных пользователей, так и для самых продвинутых программистов! Интересные обсуждения на актуальные темы и огромная аудитория, которая может быть интересна широкому кругу рекламодателей. У нас вы узнаете всё о компьютерах, базах данных, операционных системах, сетях, инфраструктурах, связях и программированию на популярных языках!
     Copyright © 2001-2024
    Реклама на сайте