сканирование работает только под «sudo» (Ubuntu)


16

Когда я пытаюсь сканировать с помощью простого сканирования, пользовательский интерфейс говорит 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?

Ответы:


7

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


2
Кажется, что все учетные записи пользователей не добавляются в группу сканеров. Я использовал, sudo adduser username scannerа затем вам нужно выйти и снова войти, чтобы членство в группе было замечено ОС.
KayEss

Не работал для меня. Кажется, я помню, что единственный способ сделать это - использовать sudo и текстовую версию, а не простое сканирование. Будет продолжать смотреть
Деннис

Предложение KayEss («сканер имени пользователя sudo adduser») сработало для моей установки Raspbian.
smashuu

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/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

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

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


2

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

/etc/default/saned

И изменить:

RUN_AS_USER=saned

в

RUN_AS_USER=root

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


2
Что-то подсказывает мне, что это нежелательное решение с точки зрения безопасности.
Казарк,

2

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


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

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

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


как ты add your username to the lp group ?

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 (это в той же папке), наконец, я перезагрузил. Привет престо .... ааааа! Моя работа здесь закончена.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.