강좌
클라우드/리눅스에 관한 강좌입니다.
리눅스 분류

JetDirect 네트워크 프린터 사용(삼바)

작성자 정보

  • 웹관리자 작성
  • 작성일

컨텐츠 정보

본문

icon01.giftitle76.gif

배철수/리눅스월드 발행인

 

리눅스 월드 사무실에 hp2100tn 레이저 프린터가 있다. 이 프린터에는 JetDirect 멀티 IO 카드(MIO) 가 들어 있어 이더넷, 패러렐, 로칼토크 세 개의 콘넥터가 있다. 이더넷은 랜케이블로 허브에 직접 연결하는 경우에, 패러렐은 피시의 패러렐(프린터)포트에 그리고 로칼토크는 맥킨토시에 연결하는데 사용된다. 하지만 데이터 전송속도는 당연히 이더넷을 사용하는게 가장 빠르다. 속도가 10메가 bps이기 때문이다. 패러렐 포트는 600kbps 정도로 알고 있다.

그래서 필자의 사무실에서도 이 프린터를 이더넷 허브에 연결해서 사용하고 있다. 맥킨토시도 랜에 연결되어 있으므로 맥에서는 이더토크를 사용해 랜으로 이 프린터를 연결하고, 윈도우에서도 역시 네트워크 프린터 설정을 사용해 이 프린터를 사용하고 있다. 그러면 이 프린터를 랜에 연결된 리눅스에서 사용하려면 리눅스에서 어떻게 설정하는가? 아래에 설명이 있다. 이 설명은 외장형 JetDirect 프린터 서버를 사용하는 경우에도 적용된다. 단지 JetDirect 프린터 서버는 프린터 포트가 세 개이므로 프린터 이름(rp)만 달라진다.

 

1. hp2100tn 프린터 셋업

Jetdirect 프린터를 네트워크에서 사용하려면 tcp/ip 프로토콜을 사용하는게 가장 좋다. IPX도 가능하나 네트워크가 인터넷에 연결돼 있다면 이미 모든 컴퓨터에 tcp/ip 지원이 들어 있으므로 구태여 ipx를 사용할 필요가 없다.

우선 프린터에서 tcp/ip 프로토콜을 사용하려면 당연히 tcp/ip 파라메터를 입력해야 한다. IP 주소, 서브네트마스크, 디폴트게이트웨이 등이다. Jetdirect 카드의 경우 공장 출하시의 디폴트 어드레스는 192.0.0.192 이다. 이 주소를 자신의 네트워크 주소에 맞는 IP 주소로 변경해야 한다. 방법은 리눅스에서 telnet를 사용한다.

우선 리눅스의 IP 주소를 임시로 192.0.0.1 네트워크 어드레스는 192.0.0.0 서브네트마스크는 255.255.255.0으로 변경해야 한다. 이는 단지 프린터의 IP 주소를 변경하기 위한 임시의 설정이다. (무슨 뜻이지 모른다면 이 글을 읽을 필요가 없다.)

다음에 telnet 192.0.0.192 명령을 주면 아래 화면이 나온다.
 

Escape character is ‘^]’.

HP JetDirect

Please type “?” for HELP, or “/” for current
settings
>


(혹시 안 나오면 랜 케이블이 프린터에 꼽혀 있는지부터 살펴볼 것.)

여기서 현재 설정을 보려면 “/” , 도움말은 “?” 키를 누르면 된다.

설정을 변경하려면 아래처럼 명령을 준다. 예를 들어 IP를 바꾸려면

ip: 192.168.1.8 <enter>

설정이 끝나면 quit 명령을 주면 설정이 저장되고 연결이 종료된다.
(네트워크 주소가 다른 ip로 프린터의 ip 주소를 변경했다면 다시 프린터로 telnet을 하려면 리눅스의 ip 주소도 변경해야 할 것이다.)

아래는 필자의 사무실에 있는 프린터의 설정이다. 참고 하기 바란다. 사무실의 네트워크는 방화벽이 구축되어 있어 네트워크 어드레스는 192.1.1.0이다. 그래서 프린터의 IP 주소는 192.168.1.8이다. (8과 프린터의 발음이 비슷해서 이 번호를 주었다.)
 

churlsu:~> telnet 192.168.1.8
Trying 192.168.1.8...
Connected to 192.168.1.8.
Escape character is ‘^]’.

HP JetDirect

Please type “?” for HELP, or “/” for current
settings
> /

===JetDirect Telnet Configuration===
Firmware Rev. : G.07.20
MAC Address : 00:10:83:55:19:8f
Config By : USER SPECIFIED

IP Address : 192.168.1.8
Subnet Mask : 255.255.255.0
Default Gateway : 192.168.1.1
Syslog Server : Not Specified
Idle Timeout : 120 Seconds
Set Cmnty Name : Not Specified
Host Name : MYUNGPIL

DHCP Config : Disabled
Passwd : Disabled
IPX/SPX : Disabled
DLC/LLC : Enabled
Ethertalk : Enabled
Banner page : Disabled

 

*. 필자의 사무실에서는 맥을 사용하므로 ethertalk를 enable 해 주었다.
    맥을 사용 않는다면 필요 없다.

*. Banner 란 프린터를 여러 사람이 사용시 각 프린트 작업이 끝났을 때 마지막 페이지에
    인쇄작업을 누가 보낸 건지를 알려주는 페이지를 말한다. 리눅스나 유닉스에서 프린트할
    때만 해당된다.

이렇게 셋팅했다면 윈도우에서는 프린터에서 제공하는 윈도우 셋업 CD를 이용해 동위간 네트워크로 설정해 프린터 사용이 가능해 진다. (윈도우에 tcp/ip 프로토콜을 올려야 한다.) 하지만 리눅스에서는 이 CD로 셋팅 할 수 없겠죠?

 

2. 리눅스에서 네트워크 프린터 사용

리눅스의 IP 주소가 192.168.1.1 이라면 192.168.1.8 주소의 네트워크 프린터를 사용하는 절차이다.(필자의 서버는 데비안 2.1이다.)

 

2.1 /etc/hosts 파일에 프린터의 ip 주소와 이름을 넣는다.
 

192.168.1.8 hp2100.linuxlab.com hp2100

 

2.2 /etc/printcap 에 디폴트 프린터로 hp2100을 지정한다.
 

lp|HP2100_Laser:\
               :lp=:\
               :rm=hp2100:\
               :rp=raw:\
               :sd=/var/spool/lpd/remote:\
               :mx#0:\
               :sh:

 

1) 첫 줄의 lp 는 디폴트 프린터를 말한다. lpr 명령에서 -P 옵션으로 프린터를 지정하지
    않으면 lp로 지정한 프린터에서 인쇄한다.

2) rm은 위의 hosts 파일의 맨 뒤에 지정한 이름이다.

3) rp=raw 는 이 프린터를 포스트스크립트 문서 인쇄나 삼바를 통한 윈도우에서 인쇄에
    사용할 때 지정한다. 만약 리눅스에서 text 문서를 인쇄한다면 위의 설정을 사용하면 lpr
    명령으로 인쇄시 계단 현상이 나온다. 그러므로 리눅스에서 텍스트 문서를 인쇄를 하려면
    아래 설정을 /etc/printcap 에 추가한다.
 

lp-txt|HP2100_Text:\
             :lp=:\
             :rm=hp2100:\
             :rp=text:\
             :sd=/var/spool/lpd/lp-txt:\
             :mx#0:\
             :sh:

 

그리고 텍스트 문서를 인쇄할 때는 아래 명령을 준다. (-P 가 프린터를 지정한다)

lpr -P lp-txt xxx.txt

 

2.3 /etc/group 파일 수정

사용자가 프린트 명령을 주면 프린트할 내용(프린터로 보내지는 바이너리 데이터)은 위의 printcap 에서 sd로 지정한 디렉토리에 보내 진다. 따라서 사용자가 이 디렉토리에 쓰기 권한이 있어야 프린트가 된다.

/var/spool/lpd/remote 디렉토리의 허가모드는 다음과 같다.
 

drwxrwxr-x 2 root lp 1024 Jul 25 18:05
remote

 

즉 root 외에 lp라는 그룹에 쓰기 권한이 있다. 따라서 프린터를 root 외의 사용자가 사용하려면 그 사용자를 lp라는 그룹에 추가한다.

lp:x:7:lp,bae

이제 리눅스에서 텍스트 문서나 포스트스크립트 문서를 hp2100tn 프린터로 인쇄할 수 있다. 단 포스트스크립트 문서는 프린터가 포스트스크립트 인쇄를 지원해야 한다. hp2100 기종은 포스트스크립트 지원이 안된다.

HP 프린터에 PCL 표준으로 인쇄하려면 필터를 사용해야 한다. 이 부분은 설명이 어려우므로 다음 기회로 미룬다.

 

3.네트워크 프린터를 리눅스의 삼바 프린터로 사용하기.

위의 hp2100tn 네트워크 프린터를 리눅스에서 삼바 프린터로 설정해서 윈도우에서 사용하는 방법이다. 윈도우에서 직접 네트워크로 프린터를 사용할 수 있는데 '왜 리눅스의 삼바프린터를 경유해 사용해야 하는가'라는 질문이 나올 수 있는데 아래 3 가지 경우에 필요하다.

1) 윈도우에서 직접 프린터로 인쇄를 하면 인쇄 대기열이 윈도우 피시에 설정되어 프린트
    동안에 윈도우 피시의 속도가 크게 느려진다. 이때 리눅스의 삼바 프린터로 설정하면 인쇄
    대기열이 리눅스에 설정되어 윈도우의 속도는 변함이 없다.

2) 여러 윈도우에서 동시에 네트워크 프린터에 프린트를 보내면 나중에 보낸 윈도우의 인쇄
    작업이 사라지는 경우가 있다. 이는 윈도우의 설정에 문제가 있는지도 모른다.
    그러나 리눅스의 삼바프린터로 보내면 이런 현상이 없다.

3) 윈도우 피시와 프린터가 별도의 네트워크에 연결되어 있고 리눅스가 두 네트워크를
    연결하는 방화벽으로 설정되어 있을 때. 이것이 가장 중요한 이유일 것이다.

필자의 사무실에서도 이 때문에 hp2100tn 프린터를 리눅스에서 삼바 프린터로 설정해 사용하는데 우선 아래 그림을 보자.

 

위에서 윈도우 피시(211.192.xx.171)는 방화벽밖에 연결되어 공인 IP를 사용하고 HP 프린터는 방화벽 내에 설치되어 192.168.1.8 내부 IP를 사용하고 있다. 윈도우 피시의 디폴트게이트웨이는 당연히 라우터의 IP 주소이므로 프린터로 접근할 수가 없다.(공인 IP 에서 내부 IP로의 접근은 불가능하다.)

이제 윈도우에서 HP 프린터를 사용하려면 리눅스에서 HP 프린터를 삼바 프린터로 지정하면 된다. 아래가 그 설정이다.(삼바의 설정은 여기서 설명하지 않는다. 그 부분만해도 몇 페이지는 되니까.)

 

3.1 /etc/princap 설정

위의 2.2 의 설정과 같다.(rp=raw인 설정)

 

3.2 smb.conf 에서 프린터 부분
 

[global]
load printers = yes
printcap name = /etc/printcap
printing = bsd

[printers]
comment = All Printers
path = /var/spool/lpd/remote
printername = hp2100
browseable = no
public = no
guest ok = no
writable = no
printable = yes
print command = lpr -r -h %s

 

*. path 는 /etc/printcap 의 sd 와 같아야 한다.
*. printername 는 printercap 의 rm 과 같아야 한다.
*. print command 에서

-r 은 프린트 후 스풀을 지운다.
-h 는 배너 페이지를 인쇄 않는다.
%s 는 삼바에서 lpr 에 넘겨 주는 스풀 파일 이름이다. 필히 지정해야 한다.

이렇게 설정 후 윈도우에서 리눅스의 삼바 프린터를 설치하면 네트워크가 달라도 네트워크 프린터 사용이 가능하다. 윈도우에서 삼바 네트워크 프린터를 사용하려면 리눅스에서 삼바 설정이 완료되어야 한다.

 

3.3  윈도우의 네트워크환경에서 리눅스 서버를 선택하면 아래처럼 프린터가 나타나야 한다.
      (안나타나면 삼바 설정이 잘못 됐다.)

00-8-8.gif

 

3.4  제어판/프린터 메뉴에서 프린터 추가를 선택해 프린터를 추가한다. 이때 프린터를 로칼 프린터
      (즉 프린터 포트 : lpt1)에 연결된 것으로 지정해 설치한다.

 

3.5  설치가 끝나 프린터 아이콘이 생성되면 아이콘을 우축 마우스 버튼을 눌러 등록정보를 선택
      하고 등록정보에서 자세히/포트추가를 선택해 인쇄할 포트에 위의 3.3에 나타난 프린터를
      지정해 준다.

아래와 같다.

00-8-7.gif 

다른 방법도 있으나 필자는 이 방법이 제일 쉬웠다.

 

4. 리눅스에서 프린터 사용 팁

 

4.1 텍스트 문서를 포스트 스크립트로 인쇄

리눅스에서 텍스트 문서를 인쇄하면 별로 보기에 좋지 않다. 여백도 그렇고 폰트도 별로다. 만약 프린터가 포스트 스크립트를 지원한다면 a2ps 명령을 쓰면 보기에 좋다. A2ps 는 텍스트 파일을 포스트스크립트로 변환해 인쇄해 준다.

a2ps -R -1 --margin=30 파일명

*. -margin은 왼쪽 여백이다.

 

4.2 man 문서로 포스트스크립트로 인쇄

man 페이지를 포스트스크립트 프린터로 인쇄하는 방법이다.

man -t page | lpr -P 포스트스크립트프린터 -h

만약 모든 설정이 필자의 사무실과 같다면
“man -t tr | lpr” 하면 tr에 대한 man 페이지가 인쇄될 것이다.

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,070 명
  • 현재 강좌수 :  35,982 개
  • 현재 접속자 :  386 명