네트워크 프린터 장치로서의 Linux(Raw, 포트 9100)

네트워크 프린터 장치로서의 Linux(Raw, 포트 9100)

Linux 컴퓨터를 "네트워크 프린터 장치"로 구성할 수 있습니까? 프린터처럼 네트워크에서 공유할 USB 프린터가 있습니다.기본 네트워크 프린터 장치.

그게 가능합니까? 어떻게?

노트: "자율" 네트워크 프린터는 일반적으로 "HP Jetdirect" 프로토콜("Raw"라고도 함)을 사용하여 통신합니다.

나는 모든 종류의 "자율" 네트워크 프린터를 찾아 작동할 수 있는 AIX 5가 설치된 RS/6000을 가지고 있습니다. AIX에서 액세스할 수 있는 일반 네트워크 프린터(자율 장치)처럼 Linux(바람직하게는 Debian)를 통해 네트워크에 USB 프린터를 노출하고 싶습니다.

편집하다: AIX에서도 비슷한 작업을 수행해야 합니다. 여기서 '내 프린터 IP'는 Linux IP입니다.

$ netcat my_printer_ip 9100
$ Hello remote USB printer plugged in a Linux !
$ <Ctrl+D>

답변1

네트워크 프린터가 RAW(또는 Jetdirect)라는 프로토콜을 사용한다고 알고 있는데 이것이 맞습니까?

예. 오늘날에도 여전히 유효한 인쇄 작업을 위한 두 가지 네트워크 프로토콜이 있습니다.LPD, TCP 포트 515에서 실행 중,제트 직항편, TCP 포트 9100에서 실행 중입니다. LPD는 과거에 Berkeley에서 BSD UNIX용으로 설계했습니다. 지금은 거의 쓸모가 없지만 아마도 오래된 서버와의 호환성을 위해 여전히 많은 프린터에서 작동합니다. JetDirect는 1990년대 초반 HP에서 설계했으며 LPD보다 간단하고 빠릅니다. 가능할 때마다 JetDirect를 사용해야 합니다.

나는 모든 유형의 "기본" 네트워크 프린터를 찾아서 사용할 수 있는 AIX 5가 설치된 RS/6000을 가지고 있습니다. 이를 위해 Linux(바람직하게는 Debian)를 사용하여 네트워크 프린터(자율 장치)로 네트워크의 USB 프린터를 노출하고 싶습니다.

Linux 컴퓨터에 CUPS를 설치하고 프린터를 연결합니다. 이 작업을 수행하려면 전체 시스템, Raspberry Pi 또는 이와 유사한 장치 또는 USB 포트가 있고 OpenWRT 또는 DD-WRT를 실행하는 홈 라우터가 필요하지 않습니다.

답변2

컴퓨터 지원 시스템(적어도) IPP, LPD 및 Samba 프로토콜을 통해 프린터를 공유할 수 있습니다. 대부분의 운영 체제는 IPP를 지원하며 IBM은 IPP의 일부입니다.인쇄 작업 그룹IPP를 제안하므로 AIX도 이를 지원할 수 있습니다.

또한 Samba에는 AIX 프로토콜이 있으므로 그 중 하나가 작동해야 합니다.AIX 검색

그러나 내가 접한 문서 중 AIX 버전을 참조하는 문서가 없기 때문에 AIX 5가 지원되는지 확실하지 않습니다.

어쨌든 작동 방식은 CUPS가 설치된 서버에 프린터를 연결한 후 공유 방식, 브로드캐스트 설정 등을 선택하면 됩니다. 이것은 매우 간단합니다. 그러면 클라이언트가 이에 연결할 수 있으며 네트워크 프린터로 나타납니다.

답변3

몇 가지 연구와 노력 끝에...

이러한 "네트워크 프린터 장치"는 몇 가지 프로토콜을 구현할 수 있으며 그 중 하나는 "Raw", "JetDirect" 또는 간단히 "9100"이라고도 알려진 "HP JetDirect"입니다. 네트워크 프린터에서 지원하는 가장 일반적인 프로토콜인 것 같습니다.

네트워크 프린터 구성 예: 네트워크 프린터 구성 예

JetDirect 프로토콜은 단지일반적인 네트워크 흐름, 적어도 내 테스트에서는 실제 프로토콜이 아닙니다.따라서 Linux를 네트워크 프린터처럼 작동시키기 위해 CUPS나 어떤 종류의 프린터 엔진도 필요하지 않습니다., 포트 9100에서 수신 대기하고 해당 스트림을 프린터 스트림으로 리디렉션하는 inetd(또는 xinetd)와 같은 "네트워크 스트림 서버"만 있으면 됩니다.

/dev/lp0비슷한 작업을 수행할 수 있는 포트의 프린터 스트림을 생각해 보세요 .

$ echo "Hi local legacy printer !" >/dev/lp0

/dev/lp0이제 구식 inetd를 사용하여 포트 9100에서 으로 트래픽을 리디렉션할 수 있습니다 .

9100 stream tcp nowait cat > /dev/lp0

따라서 AIX와 같은 다른 원격 시스템에서는 기존 병렬(또는 USB) 프린터를 Linux에 연결하여 네트워크 프린터처럼 작동하도록 할 수 있습니다.

$ netcat linux_ip 9100
$ Hello remote Parallel printer plugged in a Linux !
$ <Ctrl+D>

물론 다른 솔루션 중에서도 CUPS를 통해 스풀러 아래에 로컬 프린터를 구성하여 해결할 수 있는 동시성 문제가 있습니다.

이것은 나에게 효과적입니다!

답변4

이 아주 오래된 프로그램은 /dev/lp의 로컬 프린터를 localhost:9100으로 내보냅니다. 이전 프로그래밍 표준을 지원하려면 Makefile을 편집해야 했습니다. 최신 프로그램의 경우 이를 수행하는 다른 방법이 있을 수 있습니다. 나는 알고 싶다: lp_server-1.1.6 소스 코드

관련 정보