Подключение МФУ со сканером через роутер

Сегодня я хочу поделится своим опытом.

То, что было:

  • МФУ Canon MF4410
  • 1 ноутбук с Windows 8.1
  • 1 ноутбук Windows 7

Нужно было без проблем печатать и сканировать хотя бы с одного ноутбука и это был тот самый ноутбук с Windows 8.1, но возникла неприятная проблема, кто в этом виноват — не понятно, или Microsoft или Canon. Проблема в том, что на Windows 8 (8.1) если МФУ выключили или выдернули кабель и вставили обратно, сканер переставал отвечать и нужно было перезагружать компьютер для восстановления его работы (так написано в примечание к драйверу). В моем случае это никак не помогало, только переустановка драйвера. И я начал искать альтернативу.

Первые мысли у меня были — поднять виртуальную машину с Windows 7 или XP и расшарить принтер (так как драйвер на 7 и XP нормально работает), но тогда я смогу только печатать, да и держать постоянно включенную машину не очень удобно, поэтому я вспомнил что роутер который раздает интернет имеет 2 USB порта, а это уже что-то. Роутер TP-LINK WDR3600, но по умолчанию его силами можно было подключить только принтер.

Поэтому я отыскал замечательную прошивку для него — OpenWrt. О ней я знал и раньше, но её большой функционал мне был не нужен. Итак, OpenWrt позволяет подключать к роутеру практически все что хочешь, так как она работает на базе ядра Linux. Вскоре я нашел решение своей проблемы.

С принтером вообще ничего сложного: настроить через веб-интерфейс принт-сервер да и все, а вот со сканером тяжеловато. Существует проект Sane, грубо говоря это драйвера для разных сканеров для систем Linux, а поскольку OpenWRT работает на LInux — я нашел необходимые пакеты. Но была еще одна проблема, которую предстояло решить: у роутера всего лишь 4 МБ памяти, а этого очень мало для пакетов с драйверами. Хорошо, что прошивка обладает огромным функционалом и позволяет перенести память на внешнею флешку. Я воспользовался готовой сборкой для роутера, так эта сборка была проверена и я был уверен что переместить память на флешку не составит труда. Сам процесс прошивки я не буду описывать, так как на разных роутерах он протекает по-разному. Под рукой оказалась флешка на 32 ГБ, многовато, но на первое время сойдет.

Флешку пришлось форматировать и удалить на ней раздел, чтобы создать три новых: раздел Swap, раздел с файловой системой EXT4, ну и последний раздео, по желанию, тоже в EXT4.

Осталось подключить флешку к роутеру и настроить.

Так это выглядит:

Роутер

Далее заходим через браузер на адрес роутера (в моем случае 192.88.1.1) и попадаем в веб-интерфейс прошивки. Затем переходим в раздел Система — Точки монтирования

r

Флешка у меня сразу присоединилась как /mnt/sda2 (Второй раздел)

Теперь добавим запись и укажем, то что второй раздел нужно использовать как /overlay

2

Сохраняем и применяем, после делаем перезагрузку. В итоге должно получится это, в таблице указано что /dev/sda2 (второй раздел) cмонтирован как /overlay

1

После этого можно настраивать роутер, порты WAN и LAN, а также Wi-Fi.

Ну а теперь переходим в раздел Система — Программное обеспечение

ddconfssВо вкладке Конфигурация я добавил репозиторий из новой версии прошивки так как пакеты с драйверами там более новой версии

src/gz Backfire http://downloads.openwrt.org/barrier_breaker/14.07/ar71xx/generic/packages
src/gz Local http://downloads.openwrt.org/barrier_breaker/14.07/ar71xx/generic/packages/oldpackages/
src/gz Local1 http://downloads.openwrt.org/barrier_breaker/14.07/ar71xx/generic/packages/base/
src/gz Local2 http://downloads.openwrt.org/barrier_breaker/14.07/ar71xx/generic/packages/management/
src/gz Local3 http://downloads.openwrt.org/barrier_breaker/14.07/ar71xx/generic/packages/packages/

Нам нужны следующие пакеты:

  • sane-backends 1.0.24-1
  • sane-frontends 1.0.24-1
  • sane-libs 1.0.24-1

А также еще несколько:

  • xinetd — для доступа по сети.
  • kmod-usb-printer, kmod-usb-ohci, kmod-usb-uhci, kmod-usb2, kmod-usb-storage — для поддержки различных USB устройств.

Версия 1.0.24-1 как раз из репозитория новой прошивки, так как с предыдущими версиями пакетов сканер так и не заработал.

Так же если не установлен, то нужно установить два пакета.

  • p910nd, luci-app-p910nd — это служба принт-сервера.

С принтером понятно: luci-app — это пакеты которые содержат в себе веб-интерфейс, а вот драйвера не обзавелись таким пакетом и с ними придется повозится из консоли. Кстати, так как luci-app-p910nd зависим от второго пакета, то при его установке, p910nd автоматически устанавливается, тоже самое происходит при установки пакетов sane.

После установки всех пакетов делаем перезагрузку роутера.

Теперь нам понадобится две программы: Putty и WinSCP, обе легко выдаст вам гугл.

Первая — для подключения по SSH и работы с консолью, а вторая — для работы как файл-менеджер

С помощью Putty подключаемся к роутеру, вводим логин и пароль, затем вводим следующую команду:

root@Router:~# sane-find-scanner

putty2

МФУ должен быть подключен. В результате выполнения команды видим надпись:

found USB scanner (vendor=0x04a9 [Canon Inc], product=0x2737 [MF4410]) at libusb:001:004

Сканер найден. Дальше нужно ввести

root@Router:~# scanimage -L

и получить в ответ:

device `pixma:04A92737_114758300641′ is a CANON Canon imageCLASS MF4410 multi-function peripheral

Если этого не произошло значит сканер не поддерживается. Кстати таблица поддерживаемых сканеров:  Тут

Теперь подключимся через WinSCP:

winscp

Не забудьте протокол выбрать SCP, вводим IP адрес роутера (в моем случае 192.88.1.1) и логин с паролем.

Нужно отредактировать файл по пути /etc/sane.d/saned.conf и указать подсеть роутера (в моем случае 192.88.1.0/24 )

scp1Далее отредактировать файл /etc/xinetd.conf и вставить туда следующие строки:

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

Остался еще один файл /etc/hosts, в него нужно добавить «192.88.1.1 Router» IP адрес роутера и его имя в вашем случае скорей всего так «192.168.1.1 OpenWrt», если вы не сменили имя в настройках.

set

Теперь последние штрихи! Переходим в раздел Сервисы — Сервер печати в веб-интерфейсе, включаем его и нажимаем «Сохранить и применить»

printprint1

После переходим в раздел Система — Загрузка, находим имя сервисов p910nd и xinetd, проверяем включены ли они, если нет, то включаем и делаем перезагрузку роутера.

boot1

После перезагрузки загружаем архив sanetwain131, в нем два файла ScanImage.exe и SaneTwain.ds. Запускаем ScanImage указываем адрес роутера и пробуем сканировать:

scan

Если получилось, то копируем файл SaneTwain.ds в C:\Windows\twain_32 что бы другие программы с поддержкой TWAIN могли обращаться к сканеру, например ABBYY FineReader 12 (к сожалению на разрешении в 600 dpi она искажает изображение, поэтому можно пользоваться и ScanImage.exe).

Теперь очередь принтера, заходим в «Устройства и принтеры» в «Панели управления» и нажимаем «Добавить принтер». Сразу можно остановить поиск и нажать «Нужный принтер отсутствует в списке»

p1Выбираем «Добавить принтер по его TCP/IP-адресу …»

 

p2

Указываем адрес роутера

p3Ждем..

p4

Ничего не найдется. Выбираем «Особые», переходим в параметры и указываем номер порта «9100» (тот самый который указан в веб-интерфейсе роутера в сервисе принт-сервера)

p5и устанавливаем драйвер принтера взятый с официального сайта.

p6После можно печатать и сканировать с любого компьютера в сети, и даже с телефона на Android с помощью программы SANEDroid.

 

 

  1. Добрый день.
    Скажите, эможно ли ти действия проделать с другим роутером (в моем случае F@st 2804, v7 от РосТелеком)

  2. Вообще-то в роутерах tp-link реализован какой-то не вполне полноценный принт-сервер, неполноценность которого как раз и позволяет подключать сканер к роутеру из коробки, без смены прошивок. Я так на работе и сделал с именно таким роутером. Но безусловно труды автора достойны восхищения и одобрения.

  3. Возникла проблема, после всех настроек мой mf4430 печатает нормально, но сканирует только 1 странице, потом виснет до перезагрузки МФУ. Если кто-то сталкивался с таким траблом, подскажите, как решили. Установлен sane-backends 1.0.25, openwrt mips.

  4. На МФУ есть кнопка сканирования в папку. Под Windows это реализовано родным ПО. Кто знает как это реализовать на роутере?

  5. Привет. У меня chaos_calmer 15.05.1
    Пакеты называются немного по другому.
    вместо sane-backends sane-backends-all — ставит просто бэкенды для всех сканеров
    sane-frontends — здесь все также
    sane-libs libsane — установилось само при установке кого то из первых двух.
    Команды работают тестовые обе
    found USB scanner (vendor=0x04e8 [Samsung], product=0x341b [SCX-4200 Series]) at libusb:001:003

    root@gw:/# scanimage -L
    device `xerox_mfp:libusb:001:003′ is a SAMSUNG ORION multi-function peripheral

    НО не работает xinetd -d потому что говорит проблемы с правами на файл usr/sbin/saned. Захожу в папку а там вообще нет saned. Что делать? все пакеты уже пробовал переустанавливать, а демона нет

  6. разобрался. демон в отдельном пакете на опенврт 15,05
    sane-daemon

  7. сканер только не добавляется к принтеру виндовому. правой кнопкой — нет пункта сканировать

Оставить комментарий