Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Хлам

13 views
Skip to first unread message

Sergey Anohin

unread,
May 2, 2021, 4:40:01 PM5/2/21
to
Hello!

Из хлама хочу сделать принт-сервер, (один хлам вставляю в другой) принтер
подключается через usb, но там какой-то хитрый кабель, типа в системе он
видится как lpt.
Принтер заводится через зад:
attach 120 {
device-name "ulpt[0-9]+";
match "vendor" "0x03f0";
match "product" "0x0517";
action "cat /usr/local/share/foo2zjs/firmware/sihp1000.dl > /dev/$device-name";
};

Проблема в том что это работает до перезагрузки или шатдауна, после надо
ручками перетыкать USB,

ulpt0 on uhub5
ulpt0: <Hewlett-Packard hp LaserJet 1000, class 0/0, rev 1.10/1.20, addr 2> on
usbus3
ulpt0: using bi-directional mode
ulpt0: output error

Давным-давно было еще такое

attach 110 {
device-name "ulpt[0-9]+";
action "/usr/local/sbin/ulpt-cupsd.sh enable $device-name";
};

но сейчас вроде как это устарело и/или не работает, скрипт этот выпилили уже из
cups порта
# cat /usr/local/sbin/ulpt-cupsd.sh
#!/bin/sh
#
# $FreeBSD$

usage() {
echo "$0: usage:" >&2
echo "$0 [enable|disable] devicename" >&2
exit 1
}

if [ -z "$2" ]; then
usage
fi

printer="$(awk -v DEVICENAME="$2" '
/^<(Default)?Printer[[:space:]]/ {
if (match($0, /[^[:space:]>]+>/)) {
PRINTER=substr($0, RSTART, RLENGTH - 1);
}
}
/^<\/(Default)?Printer/ {
PRINTER=""
}
match($0, "DeviceURI[[:space:]]+usb:/dev/" DEVICENAME "\$") {
print PRINTER
}
' /usr/local/etc/cups/printers.conf)"

if [ -z "$printer" ]; then
# nothing to do
exit 0
fi

case "$1" in
enable)
chown cups:cups "/dev/$2"
/usr/local/sbin/cupsenable "$printer"
;;
disable)
/usr/local/sbin/cupsdisable "$printer"
;;
*)
usage
;;
esac
exit 0

Полностью devd файлик

# cat /usr/local/etc/devd/ulpt-cupsd.conf
# /usr/local/etc/devd/cups.conf
#
# $FreeBSD: branches/2016Q1/print/cups-base/files/ulpt-cupsd.conf.in 340872
2014-01-24 00:14:07Z mat $
#
# Tell cups to pause and unpause the printer when it arrives and departs.
#

attach 110 {
device-name "unlpt[0-9]+";
action "/usr/local/sbin/ulpt-cupsd.sh enable $device-name";
};

attach 110 {
device-name "ulpt[0-9]+";
action "/usr/local/sbin/ulpt-cupsd.sh enable $device-name";
};

attach 120 {
device-name "ulpt[0-9]+";
match "vendor" "0x03f0";
match "product" "0x0517";
action "cat /usr/local/share/foo2zjs/firmware/sihp1000.dl > /dev/$device-name";
};

attach 110 {
device-name "lpt[0-9]+";
action "/usr/local/sbin/ulpt-cupsd.sh enable $device-name";
};

detach 110 {
device-name "unlpt[0-9]+";
action "/usr/local/sbin/ulpt-cupsd.sh disable $device-name";
};

detach 110 {
device-name "ulpt[0-9]+";
action "/usr/local/sbin/ulpt-cupsd.sh disable $device-name";
};

detach 110 {
device-name "lpt[0-9]+";
action "/usr/local/sbin/ulpt-cupsd.sh disable $device-name";
};

# eof


Щас в общем-то и /usr/local/sbin/cupsdisable не существует.
usb power_off/on ясен пень не помогает. Если ли какой костыль?




С наилучшими пожеланиями, Sergey Anohin.

Vladimir Goncharov

unread,
May 2, 2021, 5:50:01 PM5/2/21
to

Hello Sergey!

02 May 21 23:35, you wrote to all:

SA> Hello!

SA> Из хлама хочу сделать принт-сервер, (один хлам вставляю в другой)
SA> принтер подключается через usb, но там какой-то хитрый кабель, типа в
SA> системе он видится как lpt. Принтер заводится через зад: attach 120 {
SA> device-name "ulpt[0-9]+"; match "vendor" "0x03f0"; match "product"
SA> "0x0517"; action "cat /usr/local/share/foo2zjs/firmware/sihp1000.dl >
SA> /dev/$device-name"; };

SA> Проблема в том что это работает до перезагрузки или шатдауна, после
SA> надо ручками перетыкать USB,

а что если cat /usr/local/share/foo2zjs/firmware/sihp1000.dl > /dev/ulpt0 в
/etc/rc.local написать?

Vladimir

Sergey Anohin

unread,
May 2, 2021, 7:05:01 PM5/2/21
to
Hello, Vladimir!


VG> а что если cat /usr/local/share/foo2zjs/firmware/sihp1000.dl > /dev/ulpt0
VG> в /etc/rc.local написать?

Я так понимаю что это и не проходит, так как при ребуте или включении он
пытается это делать. Вроде на старой какой-то материнке работало, может она usb
как-то наглухо обесточивала.

Оффтоп: Кстати, в чем секрет? Всегда было интересно почему на некоторых
материнках при power off тушат usb power, а на некоторых нет, бывает что
некоторые порты обесточивают, некоторые нет,
может в биосе какая магия есть? :) Я так понимаю это типа нужно для Wake up

Evgeny Chevtaev

unread,
May 3, 2021, 7:55:01 AM5/3/21
to
Hi Sergey!

Monday May 03 2021 01:54, Sergey Anohin wrote to Vladimir Goncharov:

SA> Оффтоп: Кстати, в чем секрет? Всегда было интересно почему на
SA> некоторых материнках при power off тушат usb power, а на некоторых
SA> нет, бывает что некоторые порты обесточивают, некоторые нет, может в
SA> биосе какая магия есть? :) Я так понимаю это типа нужно для Wake up

Эта магия, если предусмотрена, то либо настраивается в BIOS, либо джамперами на
матери.

With best regards,
Evgeny

Sergey Anohin

unread,
May 3, 2021, 12:05:01 PM5/3/21
to
Hello, Vladimir!

VG> а что если cat /usr/local/share/foo2zjs/firmware/sihp1000.dl > /dev/ulpt0
VG> в /etc/rc.local написать?

Я сначала не понял, а теперь понял, ты имел ввиду выпилить из devd. Надо кстати
попробовать, если прокатит, скриптец напоить с каким нибудь lock файлом типа

Sergey Anohin

unread,
May 3, 2021, 12:05:01 PM5/3/21
to
Hello, Evgeny!

SA>> Оффтоп: Кстати, в чем секрет? Всегда было интересно почему на
SA>> некоторых материнках при power off тушат usb power, а на некоторых
SA>> нет, бывает что некоторые порты обесточивают, некоторые нет, может в
SA>> биосе какая магия есть? :) Я так понимаю это типа нужно для Wake up
EC> Эта магия, если предусмотрена, то либо настраивается в BIOS, либо
EC> джамперами на матери.

Посмотрел доку по материнке и не нашел такого, но у других моделей видел

Eugene Grosbein

unread,
May 3, 2021, 2:40:01 PM5/3/21
to
02 мая 2021, воскресенье, в 23:35 NOVT, Sergey Anohin написал(а):

SA> Из хлама хочу сделать принт-сервер, (один хлам вставляю в другой) принтер
SA> подключается через usb, но там какой-то хитрый кабель, типа в системе он
SA> видится
SA> как lpt.

Hеправда, ulpt (USB) не есть lpt (параллельный порт старый).

SA> Принтер заводится через зад:
SA> attach 120 {
SA> device-name "ulpt[0-9]+";
SA> match "vendor" "0x03f0";
SA> match "product" "0x0517";
SA> action "cat /usr/local/share/foo2zjs/firmware/sihp1000.dl >
SA> /dev/$device-name";
SA> };

Буээ, вин-принтер! Поменяй на любой полноценный принтер типа моего
HP LJ 1022 и забудь этот, как страшный сон. 1022 работает вообще
без заливок firmware, засыпает и просыпается потом при начале печати
самостоятельно и компу мозги не пудрит.

SA> Проблема в том что это работает до перезагрузки или шатдауна, после надо
SA> ручками перетыкать USB,
SA> ulpt0 on uhub5
SA> ulpt0: <Hewlett-Packard hp LaserJet 1000, class 0/0, rev 1.10/1.20, addr
SA> 2> on
SA> usbus3
SA> ulpt0: using bi-directional mode
SA> ulpt0: output error

SA> usb power_off/on ясен пень не помогает. Если ли какой костыль?

Hу, попробуй ещё так:

usbconfig -d 3.1 set_config 255
usbconfig -d 3.1 set_config 0

Hастоящий адрес USB-устройства вместо 3.1 погляди в выдаче usbconfig
без аргументов.

Eugene
--
Поэты - страшные люди. У них все святое.

Eugene Grosbein

unread,
May 3, 2021, 2:40:01 PM5/3/21
to
03 мая 2021, понедельник, в 01:54 NOVT, Sergey Anohin написал(а):

SA> Оффтоп: Кстати, в чем секрет? Всегда было интересно почему на некоторых
SA> материнках при power off тушат usb power, а на некоторых нет, бывает что
SA> некоторые порты обесточивают, некоторые нет,
SA> может в биосе какая магия есть? :) Я так понимаю это типа нужно для Wake
SA> up

Hа некоторых материнках во встроенном USB-хабе распаяна
микросхема управления питанием, на некоторых нет. Чаще нет.

Eugene
--
- Локапалы непобедимы, - сказал Кубера, а девочка подняла кубик
и долго-долго разглядывала его, прежде чем назвать.

Sergey Anohin

unread,
May 3, 2021, 5:35:01 PM5/3/21
to
Hello, Eugene!

EG> Hа некоторых материнках во встроенном USB-хабе распаяна
EG> микросхема управления питанием, на некоторых нет. Чаще нет.

Ну я примерно так и понял что на некоторых моделях есть перемычки standby usb
power

Sergey Anohin

unread,
May 3, 2021, 5:45:01 PM5/3/21
to
Hello, Eugene!

EG> Буээ, вин-принтер! Поменяй на любой полноценный принтер типа моего
EG> HP LJ 1022 и забудь этот, как страшный сон. 1022 работает вообще
EG> без заливок firmware, засыпает и просыпается потом при начале печати
EG> самостоятельно и компу мозги не пудрит.

Работает и слава богу

EG> usbconfig -d 3.1 set_config 255
EG> usbconfig -d 3.1 set_config 0
EG> Hастоящий адрес USB-устройства вместо 3.1 погляди в выдаче usbconfig
EG> без аргументов.

Не прокатило, спасибо Vladimir Goncharov за идею. Сделал костыльными скриптами:

attach 120 {
device-name "ulpt[0-9]+";
match "vendor" "0x03f0";
match "product" "0x0517";
action "/usr/local/etc/cups/hplock.sh /dev/$device-name";
};

detach 120 {
device-name "ulpt[0-9]+";
#match "vendor" "0x03f0";
#match "product" "0x0517";
action "/usr/local/etc/cups/hpunlock.sh";
};

Только я не въехал почему если раскомментировать match в detach оно не
работает.

#cat hplock.sh

174/174 #!/bin/sh

if [ -f /usr/local/etc/cups/hp.lock ]
then
echo "lock file exist!"
else
cat /usr/local/share/foo2zjs/firmware/sihp1000.dl > $1
touch /usr/local/etc/cups/hp.lock
fi

# cat hpunlock.sh
#!/bin/sh

if [ -f /usr/local/etc/cups/hp.lock ]
then
rm /usr/local/etc/cups/hp.lock
else
echo "lock file doesn't exist!"
fi

Конечно такой костыль не перекроет кейз, если комп выключен и кто-то принтер
вкл-выкл сделает,
но для меня хотя бы так пойдет :)

По-нормальному если делать, то это надо как-то у принтера узнавать, залита на
него прошивка или нет, если кто-то даст идею,
буду благодарен.

Andrey Ostanovsky

unread,
May 20, 2021, 6:40:01 AM5/20/21
to
Hello Sergey!

04 May 21 00:34, you wrote to Eugene Grosbein:

SA> По-нормальному если делать, то это надо как-то у принтера узнавать,
SA> залита на него прошивка или нет, если кто-то даст идею, буду
SA> благодарен.

Зачем? Просто льем прошивку перед печатью - и не заморачиваемся... С этими
win-принтерами еще есть грабли, что засыпая - они эту залитую прошивку теряют.

Andrey

Sergey Anohin

unread,
May 20, 2021, 12:45:01 PM5/20/21
to
Hello, Andrey!

SA>> По-нормальному если делать, то это надо как-то у принтера узнавать,
SA>> залита на него прошивка или нет, если кто-то даст идею, буду
SA>> благодарен.
AO> Зачем? Просто льем прошивку перед печатью - и не заморачиваемся... С этими
AO> win-принтерами еще есть грабли, что засыпая - они эту залитую прошивку
AO> теряют.

Дык не льется в том и проблема, i/o error
0 new messages