LINUX.ORG.RU

openwrt + hp LJ P1005 как настроить печать?


0

1

Добрый вечер!

Продолжаю осваивать openwrt на своём роутере «tp-link tl-w841nd» и появилась необходимость настроить печать принтера «hp LJ P1005» (как принт-сервер), но не тут то было. Мне не удалось установить пакет foo2zjs, путём компиляции «make», выдало ошибку:

root@OpenWrt:/tmp/foo2zjs# make
#
# Dependencies...
#
      ***
      *** Error: cc is not installed!
      ***
      *** Install Software Development (gcc) package
      ***
make: *** [all-test] Error 1

не пойму, что хочет от системы, почему не ставится, опыта разобраться не хватает

при этом установил "http://wiki.openwrt.org/doc/howto/p910nd.server" и "http://wiki.openwrt.org/doc/howto/cups.server". Что делать дальше? Как присобачить пакет «foo2zjs»? И нужен ли он вообще? Про прошивку принтера "http://oleg.wl500g.info/hplj/sihpP1005.dl" знаю, но нужен ещё какой то скрипт:

    #!/bin/sh
     
    FIRMWARE="/usr/lib/sihpP1005.dl"
    DEVICE=/dev/lp0
    LOGFILE=/var/log/hp
     
    if [ "$PRODUCT" = "3f0/3d17/100" -a "$ACTION" = "add" ]
    then
            for i in $(seq 30); do
                    if [ -c $DEVICE ]; then
                            echo "$(date) : Sending firmware to printer." > $LOGFILE
                            cat $FIRMWARE > $DEVICE
                            echo "$(date) : done." >> $LOGFILE
                            exit
                    fi
                    sleep 1
            done
    fi

принтер видится по команде «dmesg» так:

[   12.530000] usblp0: USB Bidirectional printer dev 2 if 0 alt 0 proto 2 vid 0x03F0 pid 0x3D17

пакет «opkg install kmod-usb-printer» поставлен

помогите пожалуйста!


Ответ на: комментарий от aol

... а еще лучше - эти бинари сначала поискать в виде пакета. убедиться, что их нет, и результаты своей сборки оформить в пакет!

aol ★★★★★
()
Ответ на: комментарий от aol

Но ведь как то компилируют на самой openwrt...

To run HP LaserJet 1005/1018/1020/1022 on OpenWrt Backfire 10.03.1-RC5 do:

First install the foo2zjs drivers from http://foo2zjs.rkkda.com/ on your router. The instructions are taken from http://foo2zjs.rkkda.com/.

Click the link, or cut and paste the whole command line below to download the driver.

$ wget -O foo2zjs.tar.gz http://foo2zjs.rkkda.com/foo2zjs.tar.gz

Now unpack it:

$ tar zxf foo2zjs.tar.gz
$ cd foo2zjs

Compile and install it. The INSTALL file contains more detailed instructions.

$ make

Get extra files from the web, such as .ICM profiles for color correction and firmware. Select the model number for your printer:

$ ./getweb 2430     # Get Minolta 2430 DL .ICM files
$ ./getweb 2300     # Get Minolta 2300 DL .ICM files
$ ./getweb 2200     # Get Minolta 2200 DL .ICM files
$ ./getweb cpwl     # Get Minolta Color PageWorks/Pro L .ICM files
$ ./getweb 1020     # Get HP LaserJet 1020 firmware file
$ ./getweb 1018     # Get HP LaserJet 1018 firmware file
$ ./getweb 1005     # Get HP LaserJet 1005 firmware file
$ ./getweb 1000     # Get HP LaserJet 1000 firmware file

это со статьи: "http://wiki.openwrt.org/doc/howto/p910nd.server"

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

форвард

«он просто форвардит устройство принтера по сети» не печатает так, молчком молчит, когда P1005 стоял на windows, тоже отказывался печатать через программу «TCPPRINT», использовался тот же порт «9100»... P1005 - особенный «зверёк».

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

ФИРМВАРЬ- КАК?

«vasilenko» «Не надо ничего компилять на роутере, лол, нужна только фирмварь и p910nd»

Как это сделать?

babel
() автор топика
Ответ на: "же." от babel

!

куда это помещать?

babel
() автор топика
Ответ на: "же." от babel

Похоже, не совсем. В sihpP1005.img какой-то голый ELF для ARM, а в sihpP1005.dl вначале идёт что-то похожее на команды принтера, а потом уже ELF.

Попробуй на роутере сделать cat sihp1005.dl > /dev/lp0, или как там называется устройство принтера. После этого теоретически должно работать через p910nd.

vasilenko ★★
()
Ответ на: комментарий от vasilenko

Не получилось распечатать

В моём случае страка выглядит так:

cat /usr/lib/sihpP1005.dl > /dev/usb/lp0

... но печать не прошла винда заругалась «ошибка печати» типа

babel
() автор топика
Ответ на: Не получилось распечатать от babel

перезагрузил роутер и ...

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

cat /usr/lib/sihpP1005.dl > /dev/usb/lp0
и после вывода на печать с винды печать «вроде» пошла, то есть документ исчез из очереди принтера, ошибку не выдал, но УБЕДИТЬСЯ ТОЧНО, что напечатал я сейчас не могу, потому, что я нахожусь не у принтера, работаю удалённо, поэтому завтра будет известен результат наверняка. А если всё получилось, то как быть с автозагрузкой
cat /usr/lib/sihpP1005.dl > /dev/usb/lp0
? Куда поместить?

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

как скрипт будет выглядеть для HP LJ P1005

Это оригинал скрипта:

#!/bin/sh 
# Copyright (C) 2006 OpenWrt.org 
if [ "$PRODUCT" = "4f9/27/100" ] 
then case "$ACTION" in 
add) 
echo "`date`: Brother HL-2030 added" » /tmp/hl-2030 
/etc/init.d/p910nd restart » /tmp/hl-2030
echo "Done." » /tmp/hl-2030 
;;
remove)
echo "`date`: Brother HL-2030 removed" » /tmp/hl-2030
/etc/init.d/p910nd stop » /tmp/hl-2030
echo "Done." » /tmp/hl-2030 
;; 
esac
fi

Для моего принтера будет так?:

#!/bin/sh 
# Copyright (C) 2006 OpenWrt.org 
if [ "$PRODUCT" = "4f9/27/100" ] 
then case "$ACTION" in 
add) 
echo "`date`: HP LJP1005 added" » /tmp/ljp1005 
/etc/init.d/p910nd restart » /tmp/ljp1005
echo "Done." » /tmp/ljp1005 
;;
remove)
echo "`date`: HP LJP1005 removed" » /tmp/ljp1005
/etc/init.d/p910nd stop » /tmp/ljp1005
echo "Done." » /tmp/ljp1005 
;; 
esac
fi

правильно?

babel
() автор топика
Ответ на: как скрипт будет выглядеть для HP LJ P1005 от babel

поправлюсь... ("3f0/3d17/100")

#!/bin/sh 
# Copyright (C) 2006 OpenWrt.org 
if [ "$PRODUCT" = "3f0/3d17/100" ] 
then case "$ACTION" in 
add) 
echo "`date`: HP LJP1005 added" » /tmp/ljp1005 
/etc/init.d/p910nd restart » /tmp/ljp1005
echo "Done." » /tmp/ljp1005 
;;
remove)
echo "`date`: HP LJP1005 removed" » /tmp/ljp1005
/etc/init.d/p910nd stop » /tmp/ljp1005
echo "Done." » /tmp/ljp1005 
;; 
esac
fi

всёравно что то не то получается! где же тут:

cat /usr/lib/sihpP1005.dl > /dev/usb/lp0
непонимаю...

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

Как написать скрипт для автозагрузки?

1. Как должен выглядеть скрипт для прошивки принтера при загрузке роутера, если командная строка прошивки выглядит так:

cat /usr/lib/sihpP1005.dl > /dev/usb/lp0
2. Куда его поместить и как активировать для автозагрузки?

и будет счастье

babel
() автор топика
Ответ на: Как написать скрипт для автозагрузки? от babel

Конечно есть простой вариант через putty

Вариант через putty:

putty.exe -ssh -l <имя пользователя> -pw <пароль> -m <путь к СКРИПТУ> <адрес подключения>

сам СКРИПТ (в моём случае путь скрипта будет «D:\script.txt»)

cat /usr/lib/sihpP1005.dl > /dev/usb/lp0
разумеется...

... но ведь в этом случает теряется сама суть «принт-сервера» - автономность! Поэтому лучше всё таки сделать через OpenWRT - пусть он сам занимается этой задачей.

Прошу помощи!

babel
() автор топика
Ответ на: Конечно есть простой вариант через putty от babel

Автозагрузка прошивки - Получилось!

Для автозагрузки прошивки при запуске роутера нужно было всего на всего: 1. Веб интерфейс Luci «system, startup». 2. В поле «Local Startup» добавить строку прошивки:

cat /usr/lib/sihpP1005.dl > /dev/usb/lp0"
Получится вот что:
# Put your custom commands here that should be executed once
# the system init finished. By default this file does nothing.
cat /usr/lib/sihpP1005.dl > /dev/usb/lp0
exit 0
3. И нажать кнопку: «Submit».

И принтер работает после перезагрузки роутера!

Но как быть если питание принтера, допустим выключается на ночь (роутер при этом продолжает круглосуточную работу)? Прошивка то сама по себе не загрузится в принтер... Как быть?

babel
() автор топика
Ответ на: Автозагрузка прошивки - Получилось! от babel

Восстановление прошивки в принтер

Помог временно решить проблему «putty» из под «windows», строка запуска будет таковой:

putty.exe -ssh -l логин -pw пароль -m d:\script.txt 192.168.1.1
Где «d:\script.txt» - путь к текстовому файлу с командами, которые надо добавить (ввести) в консоль после подключения. Содержимое файла «d:\script.txt», разумеется, будет таким:
cat /usr/lib/sihpP1005.dl > /dev/usb/lp0
На всяких случай себе в арсенал можно добавить скрипт перезапуска роутера, создадим ещё один ярлычок:
putty.exe -ssh -l логин -pw пароль -m d:\reboot.txt 192.168.1.1
«d:\reboot.txt», разумеется, будет таким:
reboot

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