Данная страница описывает бэкэнд SANE Mustek USB ("mustek_usb"), который
включает поддержку некоторых ScanExpress сканеров от Mustek и сканеров
Trust. Здесь я попытался собрать описание известных мне багов и
(насколько это возможно) способы их устранения. Часть информации, так
называемые, "вторичные знания" (т.е. данные не полученные самим автором,
а, возможно, приведенные другими людьми), так что будьте осторожны. Мне
нужна и ваша помощь! Пожалуйста, сообщайте, если найдете ошибку на
странице, кроме этого вы можете поспособствовать еще чем-нибудь. Так же,
мне было бы интересно знать, работает ли ваш Mustek (или Trust) USB сканер
с SANE или нет. Для дополнительной информации смотрите
Bug and success reports.
Данный сайт не имеет никакого отношения к компании Mustek. Однако, после
продолжительного периода игнорирования моих вопросов, Mustek сменила свою
позицию по отношению к Linux/SANE. Некоторое время я поддерживал контакт с
одним из разработчиков из Mustek. Mustek намеревается обеспечить поддержку
своего нового оборудования ОС Linux. Первый выпущенный драйвер (для Linux)
был основан на SANE, найти его можно на
ftp-сервере
компании. Данный бэкэнд (мой) основывается на этом драйвере.
! Информация на этой странице не имеет никакого отношения к
Microsoft Windows. Помочь чем-либо, с этой ОС я не смогу. Не задавайте
вопросов о драйверах к Windows. Так же у меня нет и самих драйверов для ХР.
Со списком сканеров Mustek/Trust поддерживаемых последней официальной
версией SANE, можно
ознакомиться на
сайте SANE.
В следующем списке представлены известные сканеры и уровень их
поддержки текущей версией Mustek USB бэкэнда.
Бэкэнд поддерживает старшие модели USB сканеров Mustek ScanExpress CIS, и
модели сканеров Trust на основе этих сканеров. CCD сканеры, и все новые
сканеры BearPaw не поддерживаются этим бэкэндов. Ознакомьтесь со списком
данных моделей
сканеров Mustek. VID и PID это вендор USB и id продукта.
Есть продукты ScanMagic которые идентичны Mustek: например, я знаю
ScanMagic 1200 CU Plus, возможно есть и другие. Это, однако, не означает
что поддерживаются все продукты ScanMagic.
Вендор
Продукт
Чипсет
VID
PID
Комментарии
Mustek
ScanExpress 600 CU
1017*
0x055f
0x0002
Mustek
ScanExpress 1200 UB
1017*
0x055f
0x0006
Только ScanExpress 1200 UB, не UB
Plus! Сканер 1200 UB Plus поддерживается бэкэндом gt68xx
Mustek
ScanExpress 1200 CU
1017*
0x055f
0x0001
Mustek
ScanExpress 1200 CU Plus
1017
0x055f
0x0008
Trust
Compact Scan USB 19200
1017
0x055f
0x0006
Поддерживаются только продукты с
id 0x0006. В остальных случаях, используйте
бэкэнд gt68xx. Это переименованный сканер Mustek ScanExpress 1200 UB (Plus)
По возможности неплохо бы поддерживать обратную связь. Если у вас есть
поддерживаемый бэкэндом сканер Mustek (или Trust), который не работает
сообщите. Перед тем, как сообщить мне об ошибке, попробуйте последнюю
версию бэкэнда Mustek USB. Меня интересует
следующее:
Точное название сканера (или названия, иногда имя на передней или
задней части сканера отличается от названия сканера на упаковочном
материале, коробке).
Вывод отладчика (debug output) scanimage или xscanimage. Присвойте
переменной SANE_DEBUG_MUSTEK значение 225 (например
export SANE_DEBUG_MUSTEK=255 в синтаксисе bash) и запустите
scanimage -L. Пожалуйста, отправьте мне полный вывод. Например:
Если есть проблемы непосредственно во время процесса сканирования
(например, фатальный сбой), пожалуйста, отправьте так же следующие
параметры: установки файла устройства, имя бэкэнда, используемые опции
Используйте export SANE_DEBUG_MUSTEK=255 перед запуском
любой SANE программы, для установки максимального уровня отладки.
Для поиска проблем с SCSI используйте
export SANE_DEBUG_SANEI_SCSI=255. Эта отладочная опция снизит
быстродействие при сканировании в высоком разрешении. Не включайте
эту опцию при каждодневном использовании. Пример (для sh/bash):
Эти устройства (продукты) имеют один аппаратный баг: как только данные
записаны и направлены им, они не могут быть перезапущены (toggle = DATA0).
Это означает, что любая операция, требующая перезапуска устройства
может привести истечению времени ожидания.
Это означает что, в случае повторной загрузки бэкэнда, его работа будет
некорректной, например: используя libusb в (Free|Open|Net)BSD или Linux,
вы выгрузили или перезагрузили модуль сканера. В данном случае, может
помочь лишь повторное подключение сканера.
Данная ошибка исправлена в версии бэкэнда начиная с 1.0.18 или старше
(sane-backends 1.0.14). Однако, по-прежнему, возникает если запустить
sane-find-scanner. Это исправлено в CVS. Так что есть два варианта -
либо не используйте sane-find-scanner, либо обновите версию SANE (версия
пока лишь для разработчиков).
Как правило, все дистрибутивы Linux прошлых лет должны нормально работать
с поддерживаемыми сканерами, как говорится "из коробки". Если это не так
см. ниже.
Ядро должно иметь поддержку USB и USB сканеров. Все ядра версий 2.6.х и
2.4.х и старше 2.2.х эту поддержку имеют. На всякий случай проверьте
syslog, на различного рода ошибки (/var/log/messages или
/var/log/syslog).
Если ваша система имеет usbdevfs, посмотрите файл /proc/bus/usb/devices.
Если он не существует, добавьте строку
none /proc/bus/usb usbdevfs defaults 0 0
в /etc/fstab и введите mount /proc/bus/usb. Теперь
/proc/bus/usb как минимум должен содержать файлы devices
и drivers.
Загрузите драйвер для вашего корневого-разветвителя USB (например,
modprobe ohci или modprobe uhci) и модуль сканера
(modprobe scanner). Проверьте, был ли сканер обнаружен в
/proc/bus/usb/devices. Здесь должен быть список вендоров и
id устройств. К примеру, соединив Mustek 1200 USB, можно получить примерно
такой вывод:
Если вместо Driver=usbscanner вы получаете Driver=(none),
драйвер USB не определил ваш сканер. Выгрузите драйвер (rmmod scanner)
и загрузите его вновь, используя id вендора и устройства для вашего
сканера: modprobe scanner vendor=0x055f product=0x0003. Учтите,
что это пример для сканера Mustek 1200 USB. Параметры для вашего сканера
можно найти здесь поддерживаемые сканеры или в
сообщениях syslog (/var/log/messages или /var/log/syslog).
Теперь ваш сканер должен быть найден в /proc/bus/usb/devices.
Если это необходимо, добавьте файлы в /dev/ для вашего сканера
(например mknod /dev/usb/scanner0 c 180 48). Сделайте их
доступными для чтения и записи для пользователей
(chmod a+rw /dev/usb/scanner0). Самый лучший способ: сменить
их группу, например на группу "scanner", сделать их доступными для чтения
и записи этой группой и добавить всех пользователей, которым разрешено
сканирование в эту группу.
Теперь вы должны установить бэкэнд mustek_usb или использовать последнюю
версию SANE. См. раздел загрузка. После инсталляции,
если вы используете ядро Linux 2.4.8 и старше, SANE должен заработать
без дополнительной настройки. В противном случае, вы должны вставить
имя файла устройства в тип сканера в mustek_usb.conf. Более детально это
описано в man sane-mustek_usb. Если все работает, вы должны
быть способны увидеть сканер с "scanimage -L". Подробную информацию о
модулях Linux USB сканеров можно найти в документации к исходникам ядра
(Documentation/usb/scanner.txt).
Если сканер определился, однако во время сканирования вы получаете ошибки,
попробуйте самую последнюю версию бэкэнда mustek_usb. Начиная с версии
1.0-9 бэкэнда, стало затруднительней получать необходимые данные. Если
и это не работает, можете попробовать уменьшить размер буфера опция
max_block_size 1024 в mustek_usb.conf.
Если во время сканирования, система полностью останавливается, то это баг
в драйвере ядра. Эта ошибка присутствует в ядрах 2.4.13 - 2.4.16. В ядрах
2.4.17 и старше эта ошибка исправлена.
Если вы получаете сообщения подобные "error during device io" и ошибки
в сообщениях syslog или сканирование идет чрезвычайно медленно, вы, возможно,
нашли ошибку в драйвере вашего USB хост-контроллера (USB host controller).
Если вы используете "uhci" попробуйте альтернативный драйвер "usb-uhci"
и vice-versa.
Если изображение получается зеленоватым, обновите SANE до версии 1.0.9 или
новей. Подобной проблеме подвержен 1200 UB. Кроме того, есть сведения, от
одного пользователя, что дефект (зеленоватое изображение) может возникать
в тех случаях, когда длина USB кабеля превышает 1,8 метра. В случае
соединения сканера напрямую, этой ошибки нет.
С версии 1.0-8 бэкэнд mustek_usb работает и в FreeBSD. Испытанные сканеры:
1200 CU and 600 CU. Оба используют libusb и добавляют id вендора/устройства
в sys/dev/usb/uscanner.c и пересобирают ядро.
В принципе, сканирование работает с OpenBSD 3.0 (возможно также и в 2.9) и
sane-backends-1.0.9 (не меньше) с libusb. Драйвер ядра также работает, но
требует некоторой настройки. См. так же раздел
FreeBSD.
Если вы считаете, что ваш сканер не распознается бэкэндом из-за "общения"
с другим бэкэндом, то просто отключите все остальные бэкэнды.
Отредактируйте dll.conf закомментировав все остальные бэкэнды,
кроме mustek_usb.
В настоящее время, обновлений нет. Используйте последнюю
версию SANE.
Изучите файл mustek_usb.CHANGES,
который так же поставляется с бэкэндом, в файле tar.gz. В этом файле
присутствует описание всех важнейших изменений в исходном коде.
Все старые версии так же доступны, особенно для тестирования и отлова
багов. См. Старые версии.