Как я заставлял печатать свой пинтер или заставляем печатать принтеры HP 1018/1020/1022 с принт серверами

У меня дома стоит 3 компьютера, мамин, мой и ноутбук, есть 2 принтера один HP DeskJet3420 второй HP LaserJet 1018. мне было не особо удобно то что когда мне нужно что-то напечатать приходится включать мамин компьютер и печатать по сети. Тогда я пошел и приобрел маршрутизатор D-Link DIR-120. Настроить у меня его вышло, и DeskJet 3420 печатать начал, а вот с LserJet были проблемы, печатать он не хотел ни в какую. я отключил роутер и подумал что для меня это бесполезная весчь.
Спустя несколько месяцев я наткнулся на статью по переделке ASUS 520GC превращения его в 520GU и добавления к нему УСБ

ТУТ. Сходив в соседний магазин и купив пару SMD резисторов и керамический конденсатор (побоявшись что SMD впаять не смогу), а так же УСБ удлинитель (разъемов USB у них в наличии к сожалению не было), смастерил вышеприведенную конструкцию, взяв блок питания на 5V 2A как раз от DIR-120. Купил флешку на 8ГБ (Transcend JetFlash) прошил прошивку DD-WRT и в принципе смог с флешки загрузить роутер. Подключил в него подключить USB HUB но он не работал в принципе, китайский HUB в форме кружки с подогревом и другой в виде светящейся в центре квадратной прозрачной коробочки с ним как оказалось не работают, один вообще НЕ определялся, второй определялся но работал только если воткнуто одно устройство! долго мучаясь и ничего не найдя т.к. у всех все работало, за 404р купил USB HUB G-CUBE от A4-TECH (конечно это очень гл амурное устройство в розовый цветочек но главное он работает) воткнул в него 2 принтера и о чудо!!! оба принтера и флешка определились! Настроить DeskJet не представляло никакого труда, а вот с LasrJet я мучался еще два дня, и уже даже поставил на роутер CUPS но потом наткнулся на ЭТУ статью. Как оказалось выше упомянутые принтеры HP не содержат внутри себя прошивку, и для того чтобы они работали требуется их прошивать. Компьютер их прошивает каждый раз при подключении к USB. Понятное дело что роутер их не прошивает а комп не знает что он подключен и не пытается прошить принетр по сети. Воспользовавшись данной статьей я научил свой роутер прошивать принтер (ведь он уже грузился с усб и у меня было место на флешке чтобы сохранить там прошивку и прошить принтер) при включении роутера.
создав из прошивки на своем ноутбуке с UBUNTU файл прошивки, загрузил его на роутер и в скрипте init после монтирования флешек выполнил (в общем я чтобы было удобно сделал скрипт на флешке который выполняется из этого скрипта):

/sbin/insmod /lib/modules/2.4.37/printer.o
cat /hpfirmware/sihp1018.dl > /dev/usb/lp1

dl файл ,был колучен из драйвера от Windows 2000, из img файла который является его частью с помощью комманды

$ arm2hpdl ./hp1018.img > hp1018.dl

входящей в пакет HPLIP
так же был отредактирован файл чтобы включить 2 принтера:

root@DD-WRT:/etc/init.d# cat /etc/default/p910nd
# printing port list, in the form "number [options]"
# where:
#  - number is the port number in the range [0-9]
#    the p910nd daemon will listen on tcp port 9100+number
#  - options can be :
#    -b to turn on bidirectional copying.
#    -f to specify a different printer device.
#
0  -b -f /dev/usb/lp0
1  -b -f /dev/usb/lp1

После этого случилось чудо! Принтер начал печатать. Однако я на этом решил не останавливаться. Раз прошивка не отправляется на принтер то можно ее по пробывать отправить самому. Для этой цели я написал программку на си. Я ее помощью можно прошить принтер прошивкой по сети и он будет работать как с этими так и другими роутерами. В качестве прошивки требуется передать полученый ld файл.
в моем случае это можно сделать так

./printflaser 10.85.156.98 9101 ./sihp1918.dl

Это можно например включить в init.d скрипт или в автозагрузку при загрузке Windows в случае с этой ОС (для Window ее нужно пересобрать)
После этого принтеры вроде этого должны работать как с этим так и с другими принт серверами.

Запись опубликована в рубрике *, *Soft, *Windows. Добавьте в закладки постоянную ссылку.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Я не спамер This plugin created by Alexei91