LINUX.ORG.RU

Panasonic kx-mb1500 и сканирование


0

1

Приобрёл это МФУ настроил, печатает, сканирует. Сканировать можно из sane совместимых программ или из панели устройства. Так вот сканирование из панели не происходит, выдаёт «ПК неиспр/занят». Может кто знает в чём причина?

Только что заметил вот что: если комп перезагрузить с включенным МФУ то всё работает.

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

Продолжаю копать. Заметил что мфу получает разные адреса usb:
При перезагрузке - Bus 001 Device 004: ID 04da:0f0b Panasonic (Matsushita)
При включении мфу - Bus 001 Device 006: ID 04da:0f0b Panasonic (Matsushita)
При чём демон PanasonicMFSpushd продолжает следить за файлом /dev/bus/usb/001/004 который по факту оказывается удалён.
Первое что приходит в голову - может как-то заставить получать один и тот же адрес usb?

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

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

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

Продолжаю монолог. Демон PanasonicMFSpushd запускается при старте с каталога /etc/xdg/autostart/PanasonicMFSpushd.desktop не зависимо подключен МФУ или нет. Если подключён то всё работает. Если не подключён не работает так как нет адреса устройства, демон не следит за usb подключениями. Выход из сложившейся ситуации вижу такие:
1. Запускать демон только при подключении мфу и останавливать при отключении.
2. Перезапускать демон при подключении мфу.
3. Дать адрес устройства, конечно если демон его сможет принять.
Может кто подскажет как реализовать что нибудь из выше сказанного?

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

Решение

Короче придумал вот такой костыль:

  • Создайте файл /usr/local/share/panasonic/scanner/bin/PanasonicMFSpushd.sh
    #!/bin/sh
    
    trap '/usr/local/share/panasonic/scanner/bin/PanasonicMFSpushd' USR1
    
    if [ -n "`lsusb | grep 04da:0f0b`" ]; then
    	/usr/local/share/panasonic/scanner/bin/PanasonicMFSpushd
    fi
    
    while true
    do
    	sleep 5 
    done
    
  • Отредактируйте файл /etc/xdg/autostart/PanasonicMFSpushd.desktop, установив параметр
    Exec=/usr/local/share/panasonic/scanner/bin/PanasonicMFSpushd.sh
    
  • Создайте правило udev, в файле /etc/udev/rules.d/90-PanasonicMFSpush.rules, следуещего содержания:
    SUBSYSTEM=="usb", ACTION=="add", ATTRS{idProduct}=="0f0b", ATTRS{idVendor}=="04da", RUN+="/usr/bin/killall -USR1 PanasonicMFSpushd.sh"
    SUBSYSTEM=="usb", ACTION=="remove", ATTRS{idProduct}=="0f0b", ATTRS{idVendor}=="04da", RUN+="/usr/local/share/panasonic/scanner/bin/killpanasonicmfspushd.sh"
    

    Поправьте если нужно. Хотелось бы отказаться от sleep и переходить в ожидание каким то другим образом.

sergijoo
() автор топика
Ответ на: Решение от sergijoo

При обновлении, cups отказался обновляться. Причина оказалась в отсутствии LSB заголовка в файле /etc/init.d/panasoniclpd-init. Добавил его в начало файла, после #! /bin/sh:

### BEGIN INIT INFO
# Provides:          panasoniclpd-init
# Required-Start:    $all 
# Required-Stop:     $all
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Panasonic MFS driver for MB15xx
### END INIT INFO
После этого нужно выполнить команду
insserv -v /etc/init.d/panasoniclpd-init

Надеюсь что список костылей и подпорок на этом закончен :). А так всё отлично работает. Забыл сказать, всё выше сказанное проверялось на Debian Wheezy

sergijoo
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.