Как я сделал USB-МФУ беспроводным
Говорят, ребенку в школе понадобится цветной принтер и сканер. Да и самому хотелось уже на что-то поменять разваливающийся черно-белый лазерник 1996 года выпуска. Критериями выбора стали: цветность, лазерная технология (перерывы между печатью могут достигать месяцев), автоподатчик оригиналов для сканера и копира, автоматическая двусторонняя печать и Wi-Fi, чтобы поставить этот ящик в дальнем углу. По этим характеристикам подобралась какая-то громадина за 25+ килорублей, что показалось неразумным. И вдруг на работе выдали пару подарочных карт одного известного розового магазина, и пришло ощущение, что надо покупать. К сожалению, в его ассортименте было всего три лазерных МФУ с цветной печатью, ни один из которых не отвечал последним двум требованиям. Спустя два месяца аccортимент ничем не пополнился, а наоборот, сократился до двух позиций на всю Москву, и я решил взять то, что было в наличии и не на витрине.
Счастливчиком оказался HP Laserjet Pro 100 Color MFP M175a, без автоповорота страниц и с подключением только по USB. Кстати, он оказался не таким большим, как я ожидал, и не таким шумным, как пишут в отзывах.
Задача
Если автоматическую двустороннюю печать добавить к принтеру почти невозможно, то отвязать его от компьютера вполне реально.
Простой, но не подошедший мне способ — подключить его к роутеру, раздающему интернет в квартире и, возможно, имеющему порт USB. Этот способ подразумевает, что, во-первых, МФУ должен будет стоять в трехметровой дальности от роутера, во-вторых, роутер даст возможность только печати, а не сканирования тоже (на заводских прошивках).
Второй способ — купить некую коробочку за $35… … и надеяться, что она сможет делать то, что нужно, и вдруг будет совместима с Ubuntu на клиентской стороне. Представитель производителя охотно отвечает что-то невразумительное на замечательном китайском английском. Я надеяться на удачу не стал.
Третий способ, уже годный, позволяет использовать устройство, подключенное по USB к одному компьютеру, на другом компьютере так, как будто оно подключено ко второму, используя хоть локальную сеть, хоть интернет.
Софт
Реализаций существует несколько, но я сразу выбрал ту, что включена в ядро Linux, чтобы заранее избавить себя от каких-либо возможных лицензионных ограничений, платностей, невозможности что-то настроить и прочей зависимости. Называется usbip.
Железо
Можно было найти в шкафу старый D-Link, водрузить на него OpenWRT, но это было бы громоздко и с малой долей участия собственных рук, так что решено было поискать что-нибудь маленькое, всемогущее и недорогое.
Carambola
Размером со спичечный коробок, имеет на борту Wi-Fi, USB-host, 320 MHz MIPS-процессор, потребляет не более 1.5W, ОС OpenWRT, стоит 22 евро.
Raspberry Pi
размер 86х56, Wi-Fi придется докупать внешний и вставлять в USB, 700 MHz -процессор, много на плате того, что не будет использоваться, потребляет 3.5W минимум (700mA при 5V), ОС Linux на выбор, стоит 35 долларов США.
A13-OLinuXino-WIFI
размер 120х120, 1 GHz ARM-процессор, богатая периферия, ОС Linux, потребляет 4.2W (350mA при 12V), стоит 55 евро.
Cubieboard и его китайские аналоги
Похожи на предыдущий вариант.
ALIX от PC Engines
Мой давнишний фаворит, размер 100х160 или 152х152, 500 MHz i386-процессор, без встроенного Wi-Fi, ОС почти любая, потребляет 5W, стоит от 64 до 78 евро.
В результате по критериям размер-энергопотребление-стоимость с учетом достаточности функций был выбран первый вариант — Carambola.
Процесс
Поскольку подключить планировалось только USB и питание, необходимости в плате разработки и корпусе не было, заказал только сам модуль.
Консоль обнаруживается на TXD2-RXD2, 115000 8N1.
Для работы USB в режиме host на пин 21 надо подать 5V (сам модуль работает только на 3.3V), а пин 40 соединить с GND. Белый провод (D+) к пину 39, зеленый (D-) — к 38.
Производитель сообщил, что линии данных кабеля USB можно подключать к модулю напрямую, интернет подсказал, что в этом случае лучше не использовать hot plug, то есть подключать-отключать USB-устройства при обесточенном модуле. Мне это подходит — я собираюсь подключить МФУ раз и навсегда.
OpenWRT был предустановлен один из давнишних Bleeding Edge, я его сразу же обновил до стабильного 12.09 Attitude Adjustment через веб-интерфейс.
Затем в OpenWRT был установлен пакет usbip, который подтянул за собой необходимые модули ядра и утилиты. Осталось дописать пару строк в автозагрузку:
/usr/sbin/usbipd -D /usr/sbin/usbip bind --busid=1-1
На клиентской стороне Ubuntu 13.10. Модули ядра в системе присутствуют, для их автоматической загрузки необходимо их (usbip_core, vhci_hcd) добавить в /etc/modules
Userspace-утилиты, впрочем, отсутствуют. Не стоит ставить их из репозиториев, там версия 0.1.7-3, работать с версией 1.1.1 на OpenWRT не будет. Сделать можно следующим образом:
sudo apt-get install linux-sources tar -jxf /usr/src/linux-source-3.11.0/linux-source-3.11.0.tar.bz2 cd drivers/staging/usbip/userspace/ ./autogen.sh ./configure make sudo make install
sudo usbip attach --remote=192.168.2.16 --busid=1-1
Недостатки
Основной недостаток заключается в том, что соединение usbip-сервера и usbip-клиента — это соединение один-к-одному, то есть если один клиент подключил себе USB-устройство сервера, то другие уже не могут его себе подключить, пока оно не будет отключено первым. Для такого случая можно напрячься и написать страницу управления usbip в веб-интерфейсе OpenWRT, но мне это пока не грозит, МФУ будет использоваться только с одного рабочего места.
Еще недостатком может стать то, что, теоретически, скорость линка по Wi-Fi меньше, чем по USB-кабелю, но в моем частном случае данные при сканировании медленнее идут по кабелю, но это наверное мои локальные проблемы.
Планы на будущее
Сейчас питание модуля у меня осуществляется с помощью DC-преобразователя 12V в 5V и 3.3V:
Он громоздкий и сам занял бы отдельный спичечный коробок. Ему на смену едет из Китая DC-преобразователь 5V в 3.3V, вот такой:
Он совсем малыш и поместится в один спичечный коробок с Carambola (без пинов). Питаться все это станет от старенького телефонного зарядника.
Предел мечтаний — поместить этот коробок внутрь корпуса МФУ, вдруг там найдется местечко, да найти там внутри источник 5V, или по крайней мере еще место под преобразователь с AC 220V. Но на это я решусь только после окончания срока гарантийного ремонта.
Разработка и тестирование:
(Цвета проводков питания произвольны)
Результат
Через два дня после написания топика, быстро как никогда (за пару недель вместо обычных четырех-пяти) приехал из Китая преобразователь напряжения, теперь проект завершен:
Добавка в веб-интерфейс OpenWRT для освобождения USB-устройства: disik.ru/uploads/luci-usbip.tar.gz
Подключение принтера через Wi-Fi роутер
Цифровые технологии прочно вошли в нашу повседневную жизнь и продолжают стремительно развиваться. Сейчас считается обычным делом, если в жилище простого человека функционируют сразу несколько персональных компьютеров, ноутбуков, планшетов или смартфонов. И с каждого устройства иногда возникает необходимость распечатать какие-либо тексты, документы, фотографии и иную информацию. Как можно использовать только один принтер для этих целей?
Подключаем принтер через маршрутизатор
Если ваш роутер имеет USB-порт, то с его помощью можно сделать из простого принтера сетевой, то есть с любого устройства, подключенного к вашей сети Wi-Fi, можно будет легко и непринуждённо напечатать любой контент. Итак, как правильно настроить соединение печатающего девайса и маршрутизатора? Будем выяснять.
Этап 1: Настройка подключения принтера к роутеру
Процесс настройки не вызовет никаких трудностей у любого пользователя. Обратите внимание на важную деталь — все манипуляции с проводами выполняются только при выключенных приборах.
- Посредством штатного USB-кабеля подключите принтер к соответствующему порту вашего роутера. Включите маршрутизатор, нажав на кнопку с тыльной стороны корпуса устройства.
- Даём маршрутизатору полностью загрузиться и через минуту включаем принтер.
- Затем на любом компьютере или ноутбуке, подключенном к локальной сети, открываем интернет-обозреватель и в адресной строке вводим IP роутера. Самые распространенные координаты это 192.168.0.1 и 192.168.1.1 , возможны иные варианты в зависимости от модели и производителя девайса. Нажимаем клавишу Enter.
- В появившемся окошке аутентификации набираем актуальные имя пользователя и пароль доступа к конфигурации маршрутизатора. По умолчанию они идентичны: admin .
Этап 2: Настройка ПК или ноутбука в сети с принтером
Теперь нужно на каждом компьютере или ноутбуке, подключенном к локальной сети, внести необходимые изменения в конфигурацию сетевого принтера. В качестве наглядного примера возьмём ПК с Виндовс 8 на борту. В других версиях самой популярной операционной системы в мире наши действия будут аналогичны с незначительными отличиями.
- Правой кнопкой мыши кликаем по «Пуск» и в появившемся контекстном меню выбираем «Панель управления».
- На следующей вкладке нас интересует раздел «Оборудование и звук», куда мы и переходим.
- Затем наш путь лежит в блок настроек «Устройства и принтеры».
Как вы убедились, подключить принтер к роутеру и сделать его общим для локальной сети довольно просто. Немного терпения при настройке устройств и максимум удобства. А это стоит потраченного времени.