In English (The English page may be more current)

Введение

Данная страница описывает бэкэнд 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.

ВендорПродуктЧипсет VIDPIDКомментарии
MustekScanExpress 600 CU1017* 0x055f0x0002
MustekScanExpress 1200 UB1017* 0x055f0x0006Только ScanExpress 1200 UB, не UB Plus! Сканер 1200 UB Plus поддерживается бэкэндом gt68xx
MustekScanExpress 1200 CU1017* 0x055f0x0001
MustekScanExpress 1200 CU Plus1017 0x055f0x0008
TrustCompact Scan USB 192001017 0x055f0x0006Поддерживаются только продукты с id 0x0006. В остальных случаях, используйте бэкэнд gt68xx. Это переименованный сканер Mustek ScanExpress 1200 UB (Plus)

Документация

Bug and success reports

По возможности неплохо бы поддерживать обратную связь. Если у вас есть поддерживаемый бэкэндом сканер Mustek (или Trust), который не работает сообщите. Перед тем, как сообщить мне об ошибке, попробуйте последнюю версию бэкэнда Mustek USB. Меня интересует следующее:

Пишите на henning@meier-geinitz.de. Пожалуйста, используйте немецкий или английский язык, в письме.

Установка уровня отладки

Используйте export SANE_DEBUG_MUSTEK=255 перед запуском любой SANE программы, для установки максимального уровня отладки. Для поиска проблем с SCSI используйте export SANE_DEBUG_SANEI_SCSI=255. Эта отладочная опция снизит быстродействие при сканировании в высоком разрешении. Не включайте эту опцию при каждодневном использовании. Пример (для sh/bash):

      SANE_DEBUG_MUSTEK=5 scanimage -L
    

USB проблемы

Эти устройства (продукты) имеют один аппаратный баг: как только данные записаны и направлены им, они не могут быть перезапущены (toggle = DATA0). Это означает, что любая операция, требующая перезапуска устройства может привести истечению времени ожидания.

Это означает что, в случае повторной загрузки бэкэнда, его работа будет некорректной, например: используя libusb в (Free|Open|Net)BSD или Linux, вы выгрузили или перезагрузили модуль сканера. В данном случае, может помочь лишь повторное подключение сканера.

Данная ошибка исправлена в версии бэкэнда начиная с 1.0.18 или старше (sane-backends 1.0.14). Однако, по-прежнему, возникает если запустить sane-find-scanner. Это исправлено в CVS. Так что есть два варианта - либо не используйте sane-find-scanner, либо обновите версию SANE (версия пока лишь для разработчиков).

Проблемы с USB в Linux

Как правило, все дистрибутивы 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, можно получить примерно такой вывод:

       T:  Bus=01 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#= 24 Spd=12  MxCh= 0
       D:  Ver= 1.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
       P:  Vendor=055f ProdID=0003 Rev= 1.00
       C:* #Ifs= 1 Cfg#= 1 Atr=40 MxPwr= 64mA
       I:  If#= 0 Alt= 0 #EPs= 3 Cls=00(>ifc ) Sub=00 Prot=00 Driver=usbscanner
       E:  Ad=01(O) Atr=02(Bulk) MxPS=   2 Ivl=  0ms
       E:  Ad=82(I) Atr=02(Bulk) MxPS=  64 Ivl=  0ms
       E:  Ad=83(I) Atr=03(Int.) MxPS=   1 Ivl=  1ms
    

Если вместо 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 метра. В случае соединения сканера напрямую, этой ошибки нет.

Проблемы с USB в FreeBSD

С версии 1.0-8 бэкэнд mustek_usb работает и в FreeBSD. Испытанные сканеры: 1200 CU and 600 CU. Оба используют libusb и добавляют id вендора/устройства в sys/dev/usb/uscanner.c и пересобирают ядро.

Проблемы с USB в OpenBSD

В принципе, сканирование работает с OpenBSD 3.0 (возможно также и в 2.9) и sane-backends-1.0.9 (не меньше) с libusb. Драйвер ядра также работает, но требует некоторой настройки. См. так же раздел FreeBSD.

Проблемы связанные с другими бэкэндами

Если вы считаете, что ваш сканер не распознается бэкэндом из-за "общения" с другим бэкэндом, то просто отключите все остальные бэкэнды. Отредактируйте dll.conf закомментировав все остальные бэкэнды, кроме mustek_usb.

Загрузка

В настоящее время, обновлений нет. Используйте последнюю версию SANE.

Изучите файл mustek_usb.CHANGES, который так же поставляется с бэкэндом, в файле tar.gz. В этом файле присутствует описание всех важнейших изменений в исходном коде.

Все старые версии так же доступны, особенно для тестирования и отлова багов. См. Старые версии.

Старые версии бэкенда (только для тестирования и обнаружения багов)

Для SANE 1.0.13: 1.0-18

Для SANE 1.0.10/1.0.11: 1.0-16

Для SANE 1.0.8: 1.0-15

Для SANE 1.0.7: 1.0-14, 1.0-13, 1.0-12

Для SANE 1.0.6: 1.0-10, 1.0-9, 1.0-8

Для SANE 1.0.5: 1.0-7, 1.0-6, 1.0-5, 1.0-4, 1.0-3, 1.0-2, 1.0-1


Last modified: 2005-09-05 21:26:43 CEST by Henning Meier-Geinitz (henning@meier-geinitz.de)

Назад на основную страницу о SANE
На мою домашнюю страницу (на немецком)
выходные данные (на немецком)