15

Когда я пытаюсь сканировать с помощью простого сканирования, пользовательский интерфейс говорит:« Failed to scan -- Unable to connect to scanner . Когда я запускаю его из командной строки, я получаю:

joel@home:/usr/bin$ simple-scan -d
** (simple-scan:6554): DEBUG: Starting Simple Scan 2.32.0.1, PID=6554
** (simple-scan:6554): DEBUG: Restoring window to 600x400 pixels
** (simple-scan:6554): DEBUG: sane_init () -> SANE_STATUS_GOOD
** (simple-scan:6554): DEBUG: SANE version 1.0.22
** (simple-scan:6554): DEBUG: Requesting redetection of scan devices
** (simple-scan:6554): DEBUG: Processing request
** (simple-scan:6554): DEBUG: Requesting scan at 300 dpi from device '(null)'
** (simple-scan:6554): DEBUG: scanner_scan ("(null)", 300, SCAN_SINGLE)
** (simple-scan:6554): DEBUG: sane_get_devices () -> SANE_STATUS_GOOD
** (simple-scan:6554): DEBUG: Device: name="brother2:bus4;dev1" vendor="Brother" model="MFC-210C" type="USB scanner"
** (simple-scan:6554): DEBUG: Processing request
** (simple-scan:6554): DEBUG: sane_open ("brother2:bus4;dev1") -> SANE_STATUS_IO_ERROR

** (simple-scan:6554): WARNING **: Unable to get open device: Error during device I/O

К вашему сведению, я уже сделал:

joel@home:~$ sudo chmod a+rwx /dev/bus/usb
joel@home:~$ sudo chmod a+rwx /dev/bus/usb/*

Если я бегу под sudo:

joel@home:~$ sudo simple-scan

оно работает.

Как я могу заставить простое сканирование работать без sudo?

8 ответов8

7

Скорее всего, saned не думает, что вы можете подключиться к нему. См. Раздел « Проблемы с разрешениями » в Руководстве по сканированию Ubuntu для получения подробной информации.

5

У меня была похожая проблема (Ubuntu 11.04 - Natty Narwhal): сканирование от имени root работает нормально, сканирование от имени пользователя - нет. scanimage -L и sane-find-scanner нашли и правильно определили сканер, даже если он работает как обычный пользователь. `simple-scan -d как пользователь root и обычный пользователь не обнаружил ничего полезного с точки зрения отсутствия прав группы, отсутствующих файлов или драйверов.

В конце концов эта ссылка сработала для меня.

Решением было редактирование этих файлов:

  • /lib/udev/rules.d/40-libsane.rules
  • /etc/udev/rules.d/55-libsane.rules

Не уверен, что оба должны быть отредактированы, я применил все изменения, как описано. Очень важно: перезагрузить после редактирования.

2

Отредактируйте следующее:

/etc/default/saned

И изменить:

RUN_AS_USER=saned

в

RUN_AS_USER=root

Перезапустите и проверьте снова - это должно работать.

1

sudo adduser YOURNONROOTUSERNAME lp

чтобы убедиться, что сканер принадлежит к группе lp :

sudo sane-find-scanner

найден USB-сканер (поставщик = 0x04f9, продукт = 0x02a5) в libusb:001:002

ls -al /dev /bus /usb /001/002

crw-rw-r-- 1 root lp 189, 1 ноября 24 12:43 /dev /bus /usb /001/002

1

Я решил это, добавив эту строку в /etc/rc.local (перед exit 0):

chmod -R a+w /dev/bus/usb

и редактирование / создание следующих 2 файлов:

/etc/xinetd.d/saned:

service saned 
{
socket_type = stream
server = /usr/sbin/saned
protocol = tcp
user = root
group = root
wait = no
disable = no
}

/etc/default/saned:

# Defaults for the saned initscript, from sane-utils

# Set to yes to start saned
RUN=yes

# Set to the user saned should run as
RUN_AS_USER=root

затем перезагрузка.

Это работает, но я все еще хотел бы более безопасный способ решения этой проблемы.

0

Вам нужно добавить свое имя пользователя в группу lp и затем перезагрузиться (или sudo ldconfig). Все должно работать.

Это сработало для меня, потому что если вы запустите lsusb чтобы получить номер шины USB вашего принтера / сканера (у меня было 005), а затем ll /dev/bus/usb/005 вы увидите, что root является владельцем, а lp является группой, оба имеют права на чтение и запись.

0

У меня была точно такая же проблема, и эта работа для меня, и это так просто. Я на самом деле скопировал с сайта Brother, который решил мои проблемы со сканером:

  1. Откройте файл /lib/udev/rules.d/40-libsane.rules .

  2. Добавьте следующие две строки в конец списка устройств. (Перед строкой # The following rule will disable ...):

    # Brother scanners

    ATTRS{idVendor}=="04f9", ENV{libsane_matched}="yes"

0

У меня также была такая же проблема с моим Epson EcoTank 2500.  Я вошел в терминал и нашел идентификатор продукта с помощью lsusb . Для EcoTank 2500 это 1105.

затем

Open /lib/udev/rules.d/40-libsane.rules file.

Затем я искал этот идентификатор продукта с помощью gedit и не смог его найти. Поэтому я добавил внизу (оставив пробел и записав его в CAPS, чтобы я знал, что это я изменил!)

# MY EPSON ECOTANK ET-2500

ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="1105", ENV{libsane_matched}="yes"

Затем я сделал то же самое в 40-iscan.rules (это в той же папке), наконец, я перезагрузил. Привет престо .... ааааа! Моя работа здесь закончена.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .