пятница, 21 декабря 2007 г.

USB Linux Scanner "Segmentation fault" error

Замучался со сканером Canon Canoscan LiDe25 на Mandriva 2008. Из за попытки сканирования падает OpenOffice, Kooka, XSane ни слова при этом не произнося. Причем находит его нормально.

Еще под рутом сканер работает замечательно, под юзером - нет. Собственно, что имеем:


$ sane-find-scanner
found USB scanner (vendor=0x04a9 [Canon], product=0x2220 [CanoScan], chip=LM9832/3) at libusb:004:002
# Your USB scanner was (probably) detected. It may or may not be supported by
# SANE. Try scanimage -L and read the backend's manpage.
$ scanimage -L
Segmentation fault

Интернет на это оказался на удивление беден, замучался искать на тему глюком сканера, политики безопасности, подключения устройств и т.п. В итоге все свелось только к совету читать дебаг-информацию:

$ export SANE_DEBUG_DLL=255
$ scanimage -L
...
[dll] add_backend: adding backend `v4l'
[dll] add_backend: adding backend `hp_rts88xx'
[dll] add_backend: adding backend `epkowa'
[dll] add_backend: adding backend `smfp'
[dll] sane_get_devices
[dll] load: searching backend `smfp' in `/usr/lib/sane'
[dll] load: trying to load `/usr/lib/sane/libsane-smfp.so.1'
[dll] load: dlopen()ing `/usr/lib/sane/libsane-smfp.so.1'
[dll] init: initializing backend `smfp'
Segmentation fault
$ sudo scanimage -L
...
device `plustek:libusb:004:002' is a Canon LiDE25 USB flatbed scanner


Ага, предпологаем, что вся беда в smfp, тем более, что сканер использует бэкенд plustek (бекенды можно подсмотреть тут).
Идем в /etc/sane.d/dll.conf и комментируем последнюю строчку, попутно читая комментарий:

#
# The following backends are not included in the sane-backends distribution
# If you want to use them, download them from their webpages and read their
# documentation
#
# HPLIP backend homepage: http://hplip.sf.net/
# Uncomment the following line if hpaio is installed:
#hpaio
hp_rts88xx
#primascan
epkowa
#smfp

Готово.
Честно говоря, я так и понял почему под рутом оно работало, но разбираться времени нет, поэтому пусть будет так.

3 комментария:

Иван комментирует...

А принтер у вас не самсунг случайно?
Он может свой бекэнд ставить. Вот у меня самсунг(принтер), его драйвер линукс юнифид дривер многофукнкциональный(управляет и принтерами и сканерами этой компании).

Иван комментирует...

У меня сканер Mustek, вот я и думаю, исли принтеры самсунговские, то корень проблемы найден.

latrommi комментирует...

Самсунг, да! CLP-300N, сетевой.
Спасибо за информацию, нужно будет изучить это поподробнее.