저는 ARM 단일 보드 컴퓨터에서 CUPS를 사용하여 네트워크를 통해 USB 프린터를 공유하고 있습니다. 전력을 절약하기 위해 전원 콘센트를 원격으로 제어하여 프린터의 전원을 끄고 필요할 때만 웹 인터페이스를 통해 켜는 경우가 많습니다. 전원을 켠 후 프린터가 초기화되고 인쇄 작업을 수락할 준비를 갖추는 데 약 30분 정도 걸립니다.
CUPS는 프린터가 꺼져 있거나 초기화 중이더라도 프린터를 "유휴" 및 "준비"로 표시하지만, lsusb
프린터를 사용할 수 없는 동안에는 프린터를 표시하지 않습니다.
인쇄 작업을 보내기 전에 프린터 전원이 켜져 있고 초기화되었는지 확인하는 방법을 원합니다(프린터를 사용할 수 없는 경우 프린터가 멈추거나 중단될 수 있음).
답변1
결과적으로 CUPS는 명령을 제공 cupsreject
하고 cupsaccept
프린터를 사용할 수 없는 것으로 표시/표시 해제합니다(따라서 인쇄 대화 상자에서 회색으로 표시됩니다). 또한 프린터를 사용할 수 없는 이유를 설명하는 cupsreject
문자열이 포함된 선택적 인수를 허용합니다 .-r
프린터가 USB 포트에 연결될 때(또는 전원이 켜질 때)와 연결이 끊어질 때(종료될 때) 실행되는 두 가지 규칙 과 결합 udev
하면 프린터를 "연결 끊김"으로 표시하고 액세스하는 모든 컴퓨터에 이를 표시할 수 있습니다. 네트워크 프린터를 통한 상태:
/etc/udev/rules.d/usb-printer.rules
:
ACTION=="add", SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ENV{ID_VENDOR_ID}=="03f0", ENV{ID_MODEL_ID}=="0917", RUN+="/usr/sbin/cupsaccept HP_LaserJet_3330"
ACTION=="remove", SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ENV{ID_VENDOR_ID}=="03f0", ENV{ID_MODEL_ID}=="0917", RUN+="/usr/sbin/cupsreject -r 'udev: Printer not connected' HP_LaserJet_3330"
이 솔루션을 자신의 시스템에 적용하려는 경우 몇 가지 고려 사항이 있습니다.
- 규칙 파일 이름의 "usb-printer" 부분은 임의적이지만
udev
파일 이름이.rules
. - USB 공급업체 및 제품 ID(이 예에서는
0x03f0
)0x0917
는 표시된 대로 프린터 ID로 변경되어야 합니다lsusb
. cupsaccept
및 명령에 지정된 프린터 이름은cupsreject
CUPS에서 사용되는 이름과 일치해야 합니다. 를 사용하여 설치된 프린터를 나열할 수 있습니다lpstat -v
.