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.