JetDirect Printer Emulation에 대해서...
요즘 나오는 HP 프린터에서는 JetDirect라는 기술을 지원하고 있죠. JetDirect IO Card가 프린터에 내장되어 있고 이 카드에서 패러렐, USB, 이더넷 포트를 지원하고 있는데 이더넷 포트를 이용하게 되면 네트웍으로 프린터를 공유하는 데 있어 클라이언트와 프린터 중간에 굳이 별도의 윈도우/리눅스 박스를 두지 않고도 클라이언트에서 TCP/IP Standard 포트를 통한 연결(이 경우 클라이언트에선 네트워크 프린터 연결이 아닌 로컬 프린터 연결 방식을 선택하게 됨) 방식으로 프린터에 접근할 수가 있습니다.
이 JetDirect가 지원되지 않는 프린터라면 클라이언트와 프린터 사이에 프린터서버를 별도로 두고 이 프린터 서버에 프린터를 USB나 패러렐로 연결해서 사용할 수 밖에 없죠. 그리고 프린터 서버가 리눅스라면 cups(윈도의 프린터 추가/삭제 마법사에 해당)에 삼바를 추가 세팅하여 공유 프린터 세팅을 하여 클라이언트에 공유해 주어야 하는 방식을 사용해야 합니다.
그런데 후자의 삼바 공유를 통한 방법을 쓸 경우 클라이언트는 로컬 프린터가 아닌 네트웍 프린터로 프린터에 접근하게 되는데 이 경우 프린터의 인쇄 능력을 100% 활용치 못한다는 단점이 있다고 하는군요. 그래서 JetDirect를 지원하지 않는 HP프린터라 할 지라도 클라이언트에서 TCP/IP Standard 포트를 통한 연결을 할 수 있는 방법이 있는지 여부를 찾다가 JetDirect Printer Emulation이란 것을 알게 되었습니다.
프린터서버에 소프트웨어적으로 JetDirect IO 기능을 집어 넣는 것이죠. 이러면...
프린터 with JetDirect IO Card = cups with JetDirect Printer Emulation + 프린터 without JetDirect IO Card
위와 같이 구현할 수 있게 된다는 겁니다.
방법을 찾으니 리눅스에선 xinetd 수퍼데몬 방식으로 jetdirect 기능을 활성화하고 tcp 9100 포트를 방화벽에서 열어주기만 하면 되나 봅니다.
http://www.myne.org/myblog/Emulate-a-JetDirect-with-Linux.html
그런데 따라 해도 안 되는군요. 프린터에서 반응이 없습니다.
cups의 access_log를 보면 아래와 같은 에러 메시지 한 줄을 만날 수 있더군요. 프린터 모델명은 HP LaserJet 1010 이며 USB만 지원합니다.
localhost - - [02/Apr/2011:13:10:15 +0900] "POST /printers/laserjet_1010 HTTP/1.1" 200 758030 Print-Job client-error-not-found
링크한 URL의 내용을 보니 xinetd 세팅 전에 "Created a queue writing to /dev/null" 란 것을 해야 하는데 방법을 어떻게 취해야 하는지 모르겠네요.
JetDirect Printer Emulation 을 성공하신 분 계신지요?
댓글 달기