LINUX.ORG.RU

Настройка сканера в OpenBSD

 , ,


0

1

OpenBSD 7.6
Имеется МФУ HP DeskJet 4729.
Настроил печать через CUPS. Работает нормально.
Сканер настроить не получается.
Проверил устройство и драйвер:

$ usbdevs -v
Controller /dev/usb0:
addr 04: 03f0:e211 HP, DeskJet 4720 series
	 high speed, self powered, config 1, rev 1.00, iSerial CN*********
	 driver: ugen0

Проверка поддержки сканера системой sane:

$ sane-find-scanner
found possible USB scanner (vendor=0x03f0 [HP], product=0xe211 [DeskJet 4720 series]) at libusb:000:004

Сканер опознан программой графического интерфейса:

$ scanimage -L
device `hpaio:/usb/DeskJet_4720_series?serial=CN********' is a Hewlett-Packard DeskJet_4720_series all-in-one

Пользователь добавлен в группы:
_cups и _saned

fan$ id
uid=1000(fan) gid=1000(fan) groups=1000(fan), 0(wheel), 5(operator), 7(bin), 118(_shutdown), 541(_cups), 553(_saned)

По рекомендации: https://openports.pl/path/graphics/sane-backends сделал:

fan# chgrp _saned /dev/ugen0.* && chmod 660 /dev/ugen0.* /dev/usb0
$ ls -l | grep ugen0.
crw-rw----  1 root  _saned     63,   0 Apr 27 00:03 ugen0.00
............................................................
$ ls -l | grep usb0           
crw-rw----  1 root  _saned     61,   0 Apr 27 00:03 usb0

Проверка работы сканера:

$ scanimage -T -d 'hpaio:/usb/DeskJet_4720_series?serial=CN***********'
dbus[56994]: arguments to dbus_connection_send() were incorrect, assertion "connection != NULL" failed in file dbus-connection.c line 3317.
This is normally a bug in some application using the D-Bus library.

  D-Bus not built with -rdynamic so unable to print a backtrace
Abort trap (core dumped)

Сканер начинает работать. Проходит в одну сторону и останавливается.
Из под root результат тот же.
Пакет D-Bus я отдельно не устанавливал.
Он видимо был в системе или установлен вместе с каким-то пакетом.
При этом найти файл: dbus-connection.c не получилось.
Т.е. откуда ошибка если файла нет?
Соответственно вопрос. Сканер не работает из-за D-Bus или всё-таки по другим причинам?
Как заставить работать?

dbus[56994]: arguments to dbus_connection_send() were incorrect, assertion «connection != NULL» failed in file dbus-connection.c line 3317.

Это здесь:

https://github.com/itemis/dbus/blob/cd97bcd6286101c1ed8da4346408fb26c96b4678/dbus/dbus-connection.c#L3306

Надо смотреть, кто вызывает dbus_connection_send() с нулевым дескриптором connection. Например, пересобрать dbus из портов c -g и посмотреть backtrace из coredump.

P.S. И scanimage пересобрать с -g, чтобы посмотреть, что оно передает в libdbus.

x22 ★★
()
Последнее исправление: x22 (всего исправлений: 1)
Ответ на: комментарий от x22

Я делал ktrace:

$ ktrace scanimage -T -d 'hpaio:/usb/DeskJet_4720_series?serial=CN************'

Перед ошибкой есть следущее:

$ kdump
..................................................................
 15806 scanimage RET   kbind 0
 15806 scanimage CALL  write(2,0x7833377a5480,0xd)
 15806 scanimage GIO   fd 2 wrote 13 bytes
       "dbus[15806]: "
 15806 scanimage RET   write 13/0xd
 15806 scanimage CALL  kbind(0x7833377a5c78,24,0x8d2e047228fd913c)
 15806 scanimage RET   kbind 0
 15806 scanimage CALL  write(2,0x7833377a5560,0xc3)
 15806 scanimage GIO   fd 2 wrote 195 bytes
       "arguments to dbus_connection_send() were incorrect, assertion "connect\
	ion != NULL" failed in file dbus-connection.c line 3317.
	This is normally a bug in some application using the D-Bus library.
       "

Из этого можно что-то понять?

RodoSlav
() автор топика
Ответ на: комментарий от x22

P.S. И scanimage пересобрать с -g, чтобы посмотреть, что оно передает в libdbus.

Это как сделать?
В Makfile:

DEBUG_PACKAGES= ${BUILD_PACKAGES}

Достаточно, или ещё что-то нужно прописывать?

RodoSlav
() автор топика