Многофункциональное устройство Epson на Linux обычно печатает без проблем, но сканер этой же коробки нередко становится отдельной задачей. Сканирование в Linux держится на универсальной подсистеме доступа к сканерам, которая предоставляет единый интерфейс к самому разному сканирующему железу. Через её утилиты сканер обнаруживается, настраивается и отдаёт изображение, а поверх неё работают графические программы для удобного сканирования. Звучит стройно, но на практике с устройствами Epson всплывают характерные сложности: то нужный механизм работы с устройством не выбирается сам, то сканер не виден из-за прав доступа к порту.

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

Как устроена подсистема сканирования

Универсальная подсистема доступа к сканерам это стандартизированный интерфейс к сканирующему железу любого рода, от планшетных сканеров до устройств с автоподатчиком. Под ней работают отдельные механизмы для разных семейств устройств, и каждый умеет говорить со своим кругом сканеров. Поверх подсистемы лежат программы, которыми пользуется человек: простые для быстрого сканирования и более богатые для тонкой настройки параметров.

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

Эта множественность путей и порождает основную путаницу. Бывает, что несколько механизмов заявляют поддержку одного сканера, но реально работает лишь один, а система по ошибке выбирает неработающий. Тогда сканер не появляется в списке доступных, хотя физически подключён и опознан. Понимание, что путей несколько и нужно нащупать рабочий, снимает половину растерянности при настройке.

Как обнаружить сканер и проверить его видимость

Первым делом ставят утилиты подсистемы сканирования, без которых ничего не заработает.

sudo apt install sane-utils

После установки проверяют, видит ли система сканер на физическом уровне, отдельной утилитой поиска сканеров. Она опрашивает шины подключения и сообщает, что нашла.

sudo sane-find-scanner

Эта утилита показывает обнаруженные на шине устройства с их идентификаторами производителя и модели. Если сканер Epson тут виден с характерным идентификатором производителя, значит, на физическом уровне всё в порядке, и дело за выбором рабочего механизма. Но физическое обнаружение ещё не означает, что сканировать получится, и следующий шаг это проверка на уровне самой подсистемы.

scanimage -L

Эта команда показывает сканеры, доступные через подсистему, уже готовые к работе. Если сканер тут есть, можно сканировать. Если же утилита поиска его находила, а эта команда нет, значит, проблема в выборе механизма или в правах доступа. Именно расхождение между этими двумя командами и указывает, где искать корень беды: видимость на шине есть, а доступности через подсистему нет.

Как выбрать правильный механизм работы со сканером

Когда сканер виден на шине, но не доступен через подсистему, причиной часто бывает неверно выбранный механизм. Несколько механизмов Epson могут конфликтовать, перехватывая устройство друг у друга. Лечится это отключением лишних механизмов в списке загружаемых, чтобы остался только рабочий. Список механизмов задан в конфигурации подсистемы.

sudo nano /etc/sane.d/dll.conf

В этом файле перечислены все механизмы, и лишние комментируют, оставляя нужный. Для Epson, например, иногда приходится отключить один из встроенных механизмов, если он мешает другому корректно работать со сканером. Какой именно оставить, зависит от модели, и тут помогает метод проб: отключить подозрительный, проверить доступность, при неудаче вернуть и попробовать иначе.

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

# добавление устройства в конфигурацию механизма
echo "usb 0x04b8 0x1122" | sudo tee -a /etc/sane.d/epson2.conf

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

Почему возникают проблемы с правами доступа к USB

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

Правило сопоставляет устройство Epson по идентификатору производителя и выдаёт на него нужные права при подключении. Его кладут в отдельный файл правил.

# правило прав доступа для сканеров Epson
echo 'ATTRS{idVendor}=="04b8", MODE="0664", GROUP="scanner"' | sudo tee /etc/udev/rules.d/79-epson-scanner.rules

Это правило при подключении устройства Epson выставляет на него права, позволяющие членам группы сканирования им пользоваться. Идентификатор производителя здесь общий для устройств Epson, а группа должна существовать и включать вашего пользователя. После создания правила его перечитывают, а пользователя добавляют в нужную группу.

sudo udevadm control --reload-rules
sudo usermod -aG scanner $USER

Первая команда заставляет систему перечитать правила, вторая добавляет пользователя в группу сканирования. После перезахода в систему и переподключения сканера обычный пользователь получает к нему доступ без всяких привилегий администратора. Это и есть правильное решение проблемы прав: не сканировать от имени администратора, а один раз настроить доступ через группу и правило.

Какими программами сканировать после настройки

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

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

scanimage --format=png > test.png

Эта команда сканирует страницу и сохраняет её в файл изображения, и если файл получился осмысленным, подсистема работает корректно. После такой проверки ставят графическую программу по вкусу, и она подхватывает уже настроенный сканер автоматически, потому что обращается к той же подсистеме. Удобство в том, что настройка делается один раз на уровне подсистемы, а программы поверх неё взаимозаменяемы.

Для устройств с автоподатчиком документов, частых в офисных МФУ, стоит знать про отдельные параметры выбора источника. Подсистема различает планшет и автоподатчик как разные источники, и при сканировании пачки документов выбирают именно автоподатчик. Программы обычно дают такой выбор в настройках, а из командной строки источник задают отдельным параметром. Это важно для МФУ, где без явного выбора система может упорно сканировать с планшета вместо податчика.

Особенности сетевого сканирования

Для современных МФУ Epson, подключённых по сети, сетевое сканирование часто оказывается удобнее возни с механизмами для прямого подключения. Безпрайверный сетевой путь работает по тем же принципам, что и печать без драйверов: устройство объявляет о себе в сети, а подсистема обращается к нему по сетевому протоколу сканирования. Это избавляет от подбора механизмов и от проблем с правами доступа к шине, потому что сканирование идёт по сети, а не через прямое подключение.

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

Стоит держать в уме, что у одного и того же МФУ путь сканирования может отличаться от пути печати. Принтер может печатать безпрайверно по сети, а сканер требовать отдельной настройки своего механизма, и наоборот. Это две независимые подсистемы внутри одной коробки, и настраивают их порознь. Поняв, что печать и сканирование живут своей жизнью, проще не удивляться, когда одно работает, а другое требует внимания.

Краткий порядок настройки сканера

Чтобы привести сканер Epson в рабочее состояние, удобно держаться такой последовательности:

  1. Установить утилиты подсистемы сканирования и проверить физическую видимость сканера на шине;
  2. Сверить видимость на шине с доступностью через подсистему, поняв, где именно проблема;
  3. При конфликте механизмов отключить лишние в списке загружаемых, оставив рабочий для модели;
  4. Для современных сетевых устройств рассмотреть безпрайверный сетевой путь как самый гладкий;
  5. Решить проблему прав доступа правилом системы управления устройствами и добавлением себя в группу сканирования.

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

Что в итоге запомнить

Сканирование на Linux держится на универсальной подсистеме доступа к сканерам с единым интерфейсом и набором механизмов под разные семейства устройств. Для Epson путей несколько: встроенный открытый механизм, механизмы производителя с возможной загрузкой прошивки и безпрайверное сетевое сканирование для свежих моделей. Главная путаница в том, что система не всегда выбирает рабочий путь сама, и приходится нащупывать его, отключая конфликтующие механизмы.

Диагностику ведут сравнением физической видимости сканера на шине с его доступностью через подсистему, и расхождение указывает на проблему механизма или прав. Типичная беда с правами доступа, когда сканер виден администратору, но не пользователю, решается раз и навсегда правилом системы управления устройствами и добавлением себя в группу сканирования, а не сканированием от имени администратора. Проявив терпение в подборе рабочего механизма и грамотно настроив права, обладатель домашнего МФУ Epson получает надёжно работающий сканер без обращения к привилегиям при каждом запуске.