리눅스에 직접 연결된 프린터(HP LaserJet 1320) 를 cups 프린터 서버로
설정하는 것과 클라이언트인 리눅스와 윈도우에서 연결하는 방법에
대한 팁입니다. 서버에는 X가 깔려 있지 않기때문에 커맨드라인을
사용해서 설정하고 우분투에서 작업을 하였습니다
인스톨할 패키지는 다음과 같습니다
$ sudo apt-get install cupsys cupsys-client cupsys-bsd
(cupsys-bsd는 옵션으로 bsd스타일의 print명령에 익숙해 있는
사용자를 위해 설치하는게 좋습니다)
다음의 사이트에 가셔서 프린터 기종에 맞는 manufacturer-supplied PPD파일을 받아 옵니다
http://www.linuxprinting.org/printer_list.cgi
root유저로 작업을 수행합니다
$sudo -s
#lpinfo -v
를 해보면 사용할 수 있는 로컬디바이스및 네트워크프로토콜을 보여줍니다(smb가 빠져 있는데 삼바프린터 서버도 됩니다.)
프린터가 패러럴포트에 연결 되어 있으면
#lpadmin -p ps -v parallel:/dev/lp0 -P HP_LaserJet_1320_Series.ppd -E
p옵션 다음의 ps는 queue이름입니다
이렇게 하면 ps라는 queue의 프린터가 설정되는데, 기본적으로 로컬머신에서만 접근할 수 있기때문에 외부의 머신이 접속할 수 있도록
cupsd.conf파일을 수정합니다
#vi /etc/cups/cupsd.conf
Listen 127.0.0.1:631
…
<Location />
Order Deny,Allow
Deny From All
Allow From 127.0.0.1
</Location>
에서
#Listen 127.0.0.1:631
Port 631
…
<Location />
Order Deny,Allow
Deny From All
Allow From 127.0.0.1
Allow From 192.168.0.*
</Location>
그리고 드라이버로 ppd파일을 사용하였기때문에 기본적으로
postscript 프린터가 되는데, 외부의 윈도우계열같은 경우에 PCL
드라이버를 사용할 수 있도록 하기 위해서는 /etc/cupsys밑에
있는 mime.types과 mime.convs에서
“#application/octet-stream” 라인의 “#”을 제거해 줍니다
그리고 나서 cups을 다시 시작합니다
# /etc/init.d/cupsys restart
이제 클라이언트쪽 설정에 대해 설명하겠습니다
리눅스에서는 서버와 동일한 패키지를 설치하시고
root에서
#lpadmin -p ps -v ipp://192.168.0.1/printers/ps -P HP_LaserJet_1320_Series.ppd -E
(192.168.0.1은 서버 아이피입니다)
이제 유저에서 사용할때는
$lpoptions -p ps -l
로 프린터 옵션을 확인할 수 있습니다
Duplex/Duplex: *None DuplexNoTumble DuplexTumble
PageSize/Media Size: *Letter LetterSmall Executive Legal LegalSmall A4
A4Small A5 A6 B6 ISOB5 B5 Postcard DoublePostcard w558h774 Env10
EnvMonarch EnvDL EnvC5 EnvISOB5 Custom
……
ppd파일에서 기본적으로 duplex off와 Letter 용지로 되어 있는데
양면인쇄와 A4를 사용하고 싶다면
$lpoptions -p ps -o “PageSize=A4 Duplex=DuplexNoTumble”
(~/.lpoptions에 설정내용이 저장됩니다. 또 시스템 wide한 설정을 하고 싶으면 root에서 실행하시면 되고 /etc/cupsys/lpoptions에
설정내용이 저장됩니다)
또 프린트할때 프린터옵션을 주면 기본설정을 override 할 수 있습니다
$lp -o Duplex=None test2.ps
자 이제 윈도우(XP)에서 프린터 설정입니다.
프린터 추가에서 네트웍프린트를 설정하고 URL: 에 서버및 큐를 쓰면 되는데…
주의할 것은 서버주소를 ip로 하면 안된다는 것입니다 반드시 호스트네임이어야 합니다
그래서 192.168.0.1라는 주소를 hostname으로 인식하도록 하기 위해서는 C:WINDOWSSYSTEM32DRIVERSETCHOSTS에
192.168.0.1 chep
처럼 ip에 호스트네임을 할당합니다
그리고 나서 URL에 http://chep:631/printers/ps라고 적어줍니다
드라이버는 PS나 PCL이든 어떤 것이든 상관 없습니다