Портал для веб-мастера

Инструменты для Бизнеса

Вход пользователей
Поиск статей
WoWeb.ru » Статьи » Операционные системы » Linux/Unix

Сканеры в 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.

Добавлена: 2002-09-09
Просмотров: 3415 · Рейтинг: 0.0

Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]

Категории раздела
Flash
Apache
WWW
PhotoShop
Веб-дизайн
Раскрутка и реклама
Базы данных
3D графика
Хостинг
Истории веб-мастеров
Web-технологии
Сетевая безопасность
Программирование для Web
Операционные системы

Новые статьи
Лучшие статьи
Популярные статьи
Комментируемые статьи
Разделы сайта
Скрипты
Статьи
Шрифты
Флэш исходники
HTML шаблоны
Партнерки
Клипарты
Смайлы
Фоны
Гифы
Иконки
Опрос сайта
Ведете ли вы блог?
Всего ответов: 60296
Наша кнопка
WoWeb.ru - портал для веб-мастера