Printing/ko

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Printing and the translation is 66% complete.
Outdated translations are marked like this.

이 문서는 CUPS 및 삼바를 활용하여 프린터 설치 및 관리를 다릅니다. 로컬 및 네트워크 설치를 다루며 다른 운영체제의 공유 프린터를 다루는 방법도 있습니다. 문서 인쇄시 lp 명령 또는 lpr 명령을 활용하는 방법을 알아보시려면, 업스트림 CUPS의 최적 문서en를 살펴보십시오.

인쇄 기능과 젠투 리눅스

올바른 도구 활용

리눅스에서는 어마어마한 인쇄기능을 갖추고 있습니다. 작업을 수행할 올바른 도구는 CUPS(Common Unix Printing System)입니다. 프로젝트를 시작하던 1999년으로 돌아가보자면 CUPS 설치 및 관리 체계가 기가막히게 바뀌었습니다.

이 문서에서는 CUPS 활용법에 있어 로컬, 네트워크 프린터 설정 방법을 다룹니다. 프로젝트 웹 사이트에 고급 사용법을 다루는 갱장한 문서en가 있으므로 이 문서에서는 언급한 이상은 다루지 않겠습니다.

설치

커널

사용자가 시스템에 프린터를 설치하려 할 때, 우선 해야 할 일은 시스템에 프린터가 어떻게 붙었는지 파악하는 일입니다.LPT 또는 USB 로컬 포트로 연결했나요? 네트워크로 연결했나요? 네트워크로 연결했다면 Internet Printing Protocol(IPP)로 연결했나요? 아니면 마이크로소프트 윈도우 CIFS 프로토콜(마이크로소프트 윈도우 공유)로 연결했나요?

다음 일부 섹션에서는 젠투에 연결한 프린터를 동작하게 하기 위해 최소한 어떤 커널 설정이 필요한지 설명합니다. 물론 시스템에 프린터가 어떻게 붙어있느냐에 따라 다르므로 절차 편의성이 달라집니다.

/usr/src/linux로 이동한 후 make menuconfig를 실행하여 커널 설정 화면으로 진입하십시오. 커널을 설정할 때 genkernel을 사용한다면, 빠진 과정이 없는지 확인하는 과정도 거쳐야 합니다. 모든 시스템 설정을 자동으로 설정하는 genkernel에 너무 기대지 마십시오. 인쇄라는건 자동으로 설정하기 어려운 설정 영역입니다.

다음 설정 예제에서는, 필요한 기능을 모듈이 아닌 커널에 포함한 형태로 추가합니다. 이런 방식으로 커널을 빌드하는건 필수 과정이 아닙니다. 모듈 방식 기능 추가가 쉽다면 적절한 모듈을 불러오는지 확인하는 과정을 기억하십시오!

이제 적절한 섹션으로 넘어가서 커널을 설정(또는 설정 확인)하십시오.

로컬 연결 프린터(LPT)

LPT 포트는 보통 병렬 프린터 포트로 식별하는 용도로 사용합니다. 우선 병렬 포트 지원을 활성화한 후, 어떤 병렬 프린터 지원을 활성화 하느냐에 따라 (SPARC 시스템을 활용하지 않는 한) PC-style parallel port support를 활성화해야합니다.

커널 병렬 포트 프린터 설정
'"`UNIQ--pre-00000001-QINU`"'
참고
일부 사용자는 아마 Parallel port support 섹션의 다른 옵션을 활성화할지도 모릅니다. 커널 설정 Help 기능에서 더 많은 내용을 확인하십시오.

끝났습니다! 커널 설정을 빠져나온 후 다음 명령으로 커널을 다시 빌드하십시오:

이제 CUPS 설치 및 설정 과정으로 계속 진행하십시오.

로컬 연결 프린터(USB)

USB 인쇄는 USB 플래그를 활성화한 CUPS에서 지원합니다. 사용자 영역 USB 기능을 지원하는 libusb 라이브러리를 활용합니다.

일부 오래된 프로그램은 커널에 내장한 USB 프린터 지원 기능이 필요할 수도 있습니다. 모듈로 빌드한다면 usblp가 됩니다:

커널 USB 프린터 지원
Symbol: USB_PRINTER [=n]
Type  :tristate
Prompt: USB Printer support
  Location:
    -> Device Drivers
      -> USB support (USB_SUPPORT [=y])
(1)     -> Support for Host-side USB (USB [=y])
  Defined at drivers/usb/class/Kconfig:21
  Depends on: USB_SUPPORT [=y] && USB [=y]

그러나 커널 내장 USB 프린터 지원 기능은 오래됐습니다. 정말 필요한 경우에만 사용하십시오.

참고
When using a USB to parallel port adapter, CUPS will not be able to detect the printer. As a workaround, add the printer using a different connection type and then change the DeviceURI directive in printers.conf and restart the cupsd service:
파일 /etc/cups/printers.confModify DeviceURI
# DeviceURI usb:/dev/usb/lp0  replace this line with
DeviceURI parallel:/dev/usb/lp0

원격 연결 프린터(IPP와 LPD)

IPP(인터넷 인쇄 프로토콜) 또는 LPD(라인 프린터 데몬) 프로토콜en로 원격 프린터에 연결하려면 커널에 네트워크 지원 기능을 넣어야합니다. 커널을 이미 빌드했다면 CUPS 과정을 계속 진행하십시오.

원격 연결 프린터(CIFS)

커널에 CIFS 지원기능을 추가 해야합니다:

커널 CIFS 프린터 설정
'"`UNIQ--pre-00000008-QINU`"'

CIFS 설정이 끝나면 커널 설정을 빠져나간 후 커널을 다시 빌드하십시오. /boot위치에 새 커널 이미지를 복사(필요하다면 /boot 마운트를 잊지 마십시오)하고 시스템을 다시 부팅하기 전에 부트로더 설정을 업데이트하십시오. 참고로 LPT 프린터 설정 과정의 루트 명령은 과정을 처리하기 위해 위에서 언급했습니다.

이제 다음 CUPS 설치 과정으로 계속 진행하겠습니다.

USE 플래그

CUPS에는 흥미로운 몇가지 추가 기능이 있습니다. 이 기능을 활성화하거나 끄려면 관련 USE 플래그를 사용하십시오.

USE flags for net-print/cups The Common Unix Printing System

X Add support for X11
acl Add support for Access Control Lists
dbus Enable dbus support for anything that needs it (gpsd, gnomemeeting, etc)
debug Enable extra debug codepaths, like asserts and extra output. If you want to get meaningful backtraces see https://wiki.gentoo.org/wiki/Project:Quality_Assurance/Backtraces
kerberos Add kerberos support
openssl Use dev-libs/openssl instead of net-libs/gnutls for TLS support
pam Add support for PAM (Pluggable Authentication Modules) - DANGEROUS to arbitrarily flip
selinux !!internal use only!! Security Enhanced Linux support, this must be set by the selinux profile or breakage will occur
ssl Add support for SSL/TLS connections (Secure Socket Layer / Transport Layer Security)
static-libs Build static versions of dynamic libraries as well
systemd Enable use of systemd-specific libraries and features like socket activation or session tracking
test Enable dependencies and/or preparations necessary to run tests (usually controlled by FEATURES=test but can be toggled independently)
usb Add USB support to applications that have optional USB support (e.g. cups)
xinetd Add support for the xinetd super-server
zeroconf Support for DNS Service Discovery (DNS-SD)

현재 USE 플래그 설정을 확인하십시오. CUPS에서만 사용하는 현재 USE 플래그 설정에서 벗어나려면, /etc/portage/package.use 파일에 적당한 USE 플래그를 추가하십시오.

root #emerge -pv net-print/cups
[ebuild N     ] net-print/cups-1.7.3  USE="X acl dbus pam ssl threads usb -debug -gnutls -java -kerberos -lprng-compat -python (-selinux) -static-libs -systemd -xinetd -zeroconf" ABI_X86="(64) (-32) (-x32)" LINGUAS="ca es fr it ja pt_BR ru" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_7" 0 kB

Emerge

결과에 만족한다면 포티지에 CUPS 설치를 요청하십시오:

root #emerge --ask net-print/cups

추가 프로그램

Samba

SAMBA 지원을 활성화하려면, net-fs/samba를 설치할 때 CUPS 지원 기능을 넣어야합니다. /etc/portage/package.use 파일 또는 디렉터리를 업데이트하여 cupsUSE 플래그를 활성화하십시오:

파일 /etc/portage/package.use삼바에 cups USE 플래그 활성화
net-fs/samba cups

그리고 삼바를 (다시) 설치하십시오:

root #emerge --ask net-fs/samba

Avahi

CUPS uses Avahi internally when built with the zeroconf USE flag to scan for printers on the local network. To use Avahi hostnames to connect to networked printers, set up .local hostname resolution and restart the CUPS service. CUPS and cups-filters need to be built with the zeroconf USE flag as well. Use the driverless command for listing available printers.

user $driverless list

설정

인쇄 그룹

인쇄하려는 사용자는 lp 그룹에 추가해야합니다:

root #gpasswd -a username lp

프린터를 추가하고 CUPS 웹 인터페이스로 편집할 수 있게 하려면, 이 설정을 편집하도록 허용할 사용자를 lpadmin 그룹에 넣어야합니다:

root #gpasswd -a username lpadmin

서비스

OpenRC

프린터를 시스템에 연결했고, 매번 부팅할 때마다 프린터를 사용해야한다면, 시스템을 부팅할 때 CUPS 데몬을 자동으로 시작해야합니다. CUPS 데몬을 시작하기 전에 프린터를 연결하고 전원을 켰는지 확인하십시오.

root #service cupsd start
root #rc-update add cupsd default

systemd

CUPS 데몬을 바로 시작하고 시스템을 부팅할 때 시작하도록 하려면 다음 명령을 실행하십시오:

root #systemctl start cups.service
root #systemctl enable cups.service

HTTP 인터페이스

서비스를 시작하고 나면, 프린터를 인증 사용자가 추가할 수 있습니다. 루트는 당연히 기본으로 사용할 수 있고 lpadmin 그룹에 있는 구성원도 가능합니다. 다음 URL을 웹 브라우저에서 열어보십시오:

http://localhost:631/

파일

/etc/cups/cupsd.conf 에 있는 기본 CUPS 서버 설정은 대부분 사용자에게 충분합니다. 허나, 일부 사용자에게는 CUPS 설정을 바꾸어야합니다.

다음 섹션에서는 주로 필요한 몇가지 변경 설정을 다룹니다:

  • 다른 시스템에서 이 리눅스 워크스테이션에 붙은 프린터를 사용할 수 있게 함.
  • CUPS 관리를 원격 시스템에서 할 수 있도록 접근 허용.
  • CUPS에서 윈도우 PCL 드라이버를 지원하도록 설정합니다. 대부분 윈도우 드라이버가 PCL 드라이버이기 때문에, 윈도우 시스템에서 SAMBA 공유 프린터를 쓸 수 있게 하려면 이 설정을 처리하는게 좋습니다.
  • 다른 시스템(윈도우 공유 아님)에 연결한 프린터를 이 시스템에서 사용하도록 설정.

원격 프린터 접근

다른 시스템에서 IPP를 통해 프린터를 사용하게 하려면, 프린터에 명백하게 접근하는 행위를 /etc/cups/cupsd.conf 파일에서 허용해야합니다. SAMBA를 통해 프린터를 공유한다면 이 과정은 필요하지 않습니다.

원하는 텍스트 편집기에서 /etc/cups/cupsd.conf 파일을 열고 시스템이 프린터에 연결할 수 있도록 Allow 줄을 추가하십시오. 다음 예제에서는 192.168.0으로 시작하는 IP 주소를 가진 시스템과 localhost 에서의 프린터 접근을 허용합니다.

파일 /etc/cups/cupsd.conf프린더 원격 접근 허용
<Location />
  Order allow,deny
  Allow localhost
  Allow from 192.168.0.*
</Location>

이 줄은 네트워크에 있는 클라이언트에게 탐색 정보를 공개합니다. 네트워크의 사용자에게 프린터를 언제 사용할 수 있는지 알려줍니다:

파일 /etc/cups/cupsd.conf브로드캐스트 정보
BrowseAddress 192.168.0.*:631

CUPS가 감청하는 포트를 지정하여 네트워크의 다른 머신에서 인쇄를 요청했을때 응답할 수 있게 해야합니다:

파일 /etc/cups/cupsd.conf포트 설정
Listen *:631
#Listen localhost:631

The CUPS server reject a hostname or server alias in the HTTP request with "Bad request" message. It works with IP-addresses by default. So if you want to print or browse CUPS interface by using a hostname or domain, add the ServerAlias parameter:

파일 /etc/cups/cupsd.confServer alias configuration
ServerAlias *

CUPS 원격 관리

원격 관리가 필요하다면, localhost가 아닌 다른 시스템의 CUPS 관리 페이지 접근을 허용해야합니다. /etc/cups/cupsd.conf 파일을 편집하여 접근이 필요한 각 시스템의 접근을 분명하게 허용하십시오. 예를 들어 192.168.0.3 IP 주소를 가진 시스템의 접근을 허용하려면:

파일 /etc/cups/cupsd.conf원격 접근 허용
<Location /admin>
(...)
  Encryption Required
  Order allow,deny
  Allow localhost
  Allow 192.168.0.3
</Location>

/etc/cups/cupsd.conf 파일의 설정을 바꾼 후 /etc/init.d/cupsd restart 명령을 실행하여 CUPS 데몬을 재시작하는 과정을 잊지 마십시오.

윈도우 PCL 드라이버 지원 활성화

PCL 드라이버는 프린터 서버에 RAW 데이터를 보냅니다. CUPS에서 RAW 인쇄를 활성화하려면 /usr/share/cups/mime/mime.types를 편집하여 application/octet-stream 부분의 주석 표시가 아직 남아있으면 주석 표시를 없애십시오. 그 다음 /usr/share/cups/mime/mime.convs를 편집하여 주석 처리가 빠져있지 않으면 같은 조치를 취하십시오.

파일 /usr/share/cups/mime/mime.typesRAW 인쇄 기능 지원 활성화
application/octet-stream
파일 /usr/share/cups/mime/mime.convs
application/octet-stream     application/vnd.cups-raw    0    -

설정을 바꾸고 나면 /etc/init.d/cupsd restart 명령으로 CUPS 데몬을 재시작하는 과정을 잊지 마십시오.

원격 프린터 설정

CUPS를 가동중인 원격 서버에 프린터를 연결했다면 /etc/cups/client.conf 파일을 수정하여 원격 프린터를 사용할 수 있게 쉽게 설정할 수 있습니다.

printserver.mydomain 시스템에 프린터를 연결했다면, 원하는 텍스트 편집기에서 /etc/cups/client.conf 파일을 열고 ServerName 지시문을 설정하십시오:

파일 /etc/cups/client.conf
# (Substitute printserver.mydomain with your print server name)
ServerName printserver.mydomain

원격 시스템은 앞으로 사용할 기본 프린터 설정을 보유했습니다. 기본 프린터를 바꾸려면 lpoptions 명령을 사용하십시오.

우선 존재하는 프린터를 확인하십시오:

root #lpstat -a
hpljet5p accepting requests since Jan 01 00:00
hpdjet510 accepting requests since Jan 01 00:00

HP LaserJet 5P를 기본 프린터로 설정하십시오:

root #lpoptions -d hpljet5p

프린터 설정

도입부

(CUPS를 가동중인) 다른 인쇄 서버에서 원격으로 사용할 수 있게 프린터를 설정했다면 다음 과정 진행은 필요하지 않습니다. 대신 원격 프린터 설정을 읽어보십시오.

프린터 찾기

리눅스 시스템을 부팅할 때 USB 프린터 또는 병렬 포트 프린터의 전원을 켰다면 프린터 발견을 성공적으로 시작할 무렵 커널에서 정보를 받아올 수 있습니다. 이런 과정은 프린터를 발견할 때의 일이며 필요하지 않습니다.

user $dmesg | grep -i print
parport0: Printer, Hewlett-Packard HP LaserJet 2100 Series

USB 프린터에게는:

user $lsusb
(...)
Bus 001 Device 007: ID 03f0:1004 Hewlett-Packard DeskJet 970c/970cse


The lpinfo command can be used in order to list all connected printers:

root #lpinfo -v
network ipp
network http
network socket
network https
network ipps
network lpd
network lpd://BRW67890ABCDEF/BINARY_P1

Running lpinfo -l -v will give a more verbose output.


Listing available drivers

사용할 수 있는 모든 드라이버를 확인하려면 다음 명령을 실행하십시오:

root #lpinfo -m

lpinfo는 친절하지가 않아 활용하는데 조금 까다로울 수 있습니다. 어떤 문제가 나타날 경우, 자세한 정보는 man lpinfo에서 확인하십시오.

프린터 설치

시스템에 프린터를 설치하려면, 브라우저를 실행한 후 http://localhost:631 주소로 들어가십시오. 모든 관리 작업을 수행할 수 있는 CUPS 웹 인터페이스가 나타나야합니다.

참고
CUPS로 HTTPS 연결을 한다면 처음 페이지를 띄우기 전에 아마도 시간이 좀 걸릴 것입니다. 왜냐면 연결 초기에 시간이 상당히 오래 걸릴 수 있는 CUPS SSL 인증서 생성 작업을 실행하기 때문입니다.

Administration 으로 이동한 후 루트 로그인 이름 및 암호 정보를 입력 상자에 넣으십시오. 그 다음 관리 인터페이스에 들어가면 Add Printer를 누르십시오. 다음 정보를 입력하게 해주는 새 화면이 나타납니다:

  • spooler name은 짧지만 프린터를 식별할 때 시스템에서 사용하며 사람이 알아볼 수 있는 이름입니다. 이 이름은 공백 또는 특수문자가 들어가면 안됩니다. 예를 들어, HP LaserJet 5P는 hpljet5p 이름을 붙일 수 있습니다.
  • location은 프린터가 실제로 위치한 장소의 설명입니다(예: "침실", "주방 식기 세척기 옆", 등.)
  • description은 프린터에 대한 완전한 설명이 들어갑니다. 보통 (HP LaserJet 5P 처럼) 프린터의 전체 이름이 들어갑니다.

다음 화면에서는 프린터 작업을 대기할 장치를 요청합니다. 몇가지 장치가 나타납니다. 다음 표에서는 일부 장치를 다루지만, 충분히 나타낸 목록은 아닙니다.

장치 설명
AppSocket/HP JetDirect 이 특별한 장치는 네트워크 프린터가 HP JetDirect 소켓으로 접근할 수 있게 합니다. 해당하는 프린터만 이 옵션에 대한 지원을 포함합니다.
Internet Printing Protocol (IPP 또는 HTTP) 원격 프린터가 IPP 프로토콜로 직접 접근하거나 HTTP로 접근할 때 활용합니다.
LPD/LPR 호스트 또는 프린터 프린터가 LPD/LPR 서버에 원격으로 붙어있는 경우 이 옵션을 선택하십시오.
병렬 포트 #1 프린터가 병렬 포트에 자체적으로 붙어있을 때 선택하십시오(LPT). 프린터를 자동으로 찾았을 경우 장치에 이름을 붙입니다.
USB 프린터 #1 프린터가 USB 포트에 자체적으로 붙어있을 때 선택하십시오. 프린터 이름은 장치 이름으로 자동으로 붙습니다.

원격 프린터를 설치한다면 프린터 URL을 요청합니다:

  • LPD 프린터 서버는 lpd://hostname/queue 문법이 필요합니다.
  • HP JetDirect 프린터는 socket://hostname 문법이 필요합니다.
  • IPP 프린터는 ipp://hostname/printers/printername 또는 http://hostname:631/printers/printername 문법이 필요합니다.

그 다음 인접 화면에서 프린터 제조사를 선택하고, 모델 형식 및 모델 번호를 그 다음 화면에서 선택하십시오. 대부분의 프린터에 대해 여러가지 드라이버가 있습니다. 하나를 선택하든지 OpenPrinting 프린터 목록en에서 바람직한 드라이버를 찾아보십시오. 드라이버는 나중에 쉽게 바꿀 수 있습니다.

드라이버를 선택하고 나면, CUPS에서 시스템에 프린터를 성공적으로 추가했다고 알려줍니다. 관리 인터페이스에서 프린터 관리 페이지를 찾아 Configure Printer 를 선택하고 프린터 설정을 바꾸십시오(용지 크기, 페이지 형식, 등).

프린터 시험 및 재설정

프린터가 제대로 동작하는지 확인하려면, 프린터 관리 페이지로 가서 프린터를 선택하고 Print Test Page를 누르십시오.

프린터가 제대로 동작하는 것 같지 않다면, Modify Printer를 눌러 프린터를 다시 설정하십시오. 처음 설치 화면과 비슷한 화면이 나타나겠지만, 이제 기본 화면은 현재 설정 화면입니다.

프린터가 동작하지 않으면 사람들은 아마 다음 예제의 /var/log/cups/error_log에 있는 CUPS 오류 기록을 찾아보고, /etc/cups/cupsd.conf 파일에 설정한 잘못된 Allow 설정을 발견하여, 아 권한 오류구나 하는걸 알아낼 것입니다.

root #tail /var/log/cups/error_log
(...)
E [11/Jun/2005:10:23:28 +0200] [Job 102] Unable to get printer status (client-error-forbidden)!

최상의 드라이버 설치

여러가지 프린터 드라이버가 있지만 어떤 드라이버가 가장 성능이 좋은지 찾아보려면 OpenPrinting 프린터 목록en을 방문하십시오. 프린터의 브랜드, 형식/모델을 선택하여 사이트에서 추천하는 드라이버를 찾으십시오. 예를 들어 HP LaserJet 5P 프린터에 대해서는 사이트에서 ljet4 드라이버를 추천합니다.

사이트에서 PPD 파일을 다운로드하여 /usr/share/cups/model에 복사한다음 /etc/init.d/cupsd restart를 루트 권한으로 실행하십시오. 이 절차를 통해 CUPS 웹 인터페이스에서 드라이버를 사용할 수 있습니다. 이제 위에 설명한대로 프린터를 다시 설정하십시오.

Enabling job accounting in for Xerox printers

High-end Xerox printers (often a gray, cabinet sized device) use XCPT PDL, and XML based, and poorly documented XPIF ticketing instruction format.

XCPT filter in Cups never made it to a release grade, and the work on it was eventually dropped and all XPIF must be input into a PPD manually. Luckily, it's largely a direct copy of IPP, using XML syntax. After peeking into docs available online, we can craft an arbitrary XPIF command using corresponding IPP attributes.

To configure XPIF solely for ticketing/accounting, drop the following into any PPD:

코드 XPIF code for inserting a user id
*JCLBegin:"<1B>%-12345X@PJL JOB<0A>"

*% Base JCL key code option
*JCLOpenUI JCLPasscode/Key Code: PickOne
*OrderDependency: 10 JCLSetup *JCLPasscode
*JCLPasscode None/No Code: ""
*JCLCloseUI: *JCLPasscode

*% Custom JCL key code option
*CustomJCLPasscode True: "@PJL XCPT <?xml version=<22>1.0<22> encoding=<22>UTF-8<22>?>
  @PJL XCPT <!DOCTYPE xpif SYSTEM <22>xpif-v02074.dtd<22><3E>
  @PJL XCPT <xpif version=<22>1.0<22> cpss-version=<22>2.07<22> xml:lang=<22>en-US<22><3E>
  @PJL XCPT          <job-template-attributes>
  @PJL XCPT <09><09><3C>job-accounting-user-id syntax=<22>name<22> xml:space=<22>preserve<22><3E>\1<3C>/job-accounting-user-id>
  @PJL XCPT          </job-template-attributes>
  @PJL XCPT </xpif>"
*ParamCustomJCLPasscode Code/Key Code: 1 password 0 16

*JCLEnd:"<1B>%-12345X@PJL EOJ<0A><1B>%-12345X<0A>"

It will draw a dropdown box in any printing ui compliant with CUPS PPD extensions to enter the id.

The long term solution would still be for Xerox to fully publish XPIF, and XCPT specifications, to allow for a proper XPIF cups filter to be developed.

특별한 프린터 드라이버 활용

도입부

일부 프린터는 특정 드라이버가 필요하거나 일반 설치 과정을 통해 활성화할 수 없는 추가 기능을 제공(위에 설명함)해야합니다. 이 장에서는 젠투 리눅스에서 선정한 프린터를 언급하고 동작하게 하는 방법을 다루겠습니다.

Gutenprint 드라이버

gutenprint 드라이버는 Canon, Epson, HP, Lexmark, Sony, Olympus 등 CUPS에서 지원하는 다양한 PCL 프린터에 대한 고품질, 공개 소스 코드 기반 프린터 드라이버입니다. ghostscript, GIMP 및 기타 프로그램도 지원합니다.

젠투 포티지 트리에는 gutenprint 드라이버 이빌드가 있습니다. 설치하려면 emerge gutenprint를 설치하십시오. 참고로 이빌드에서는 USE 플래그를 요청합니다. gutenprint 드라이버가 제대로 동작하려면 최소한 cupsppds를 활성화해야합니다.

root #emerge --ask net-print/gutenprint

이머지 과정을 끝냈으면 gutenprint 드라이버를 CUPS 웹 인터페이스에서 사용할 수 있습니다.

HPLIP 드라이버

HPLIP 드라이버en를 참고하십시오.

Lexmark driver

Most Lexmark printers are handled by their "Universal Printer Driver":

root #emerge --ask net-print/lexmark-upd-ppd

Once this is installed, there is a single Lexmark driver available in the CUPS setup wizard that should work with most printers and MFDs.

PNM2PPA 드라이버

PPA는 프린터 제조 단가를 낮추는 대신 시스템 자원을 많이 먹는 시스템 하위 수준 처리 전송에 역점을 둔 HP 기술입니다.

OpenPrinting 사이트에서 pnm2ppa 드라이버가 최상의 옵션이라고 안내한다면 시스템에 net-print/pnm2ppa 필터를 설치해야합니다:

root #emerge --ask net-print/pnm2ppa

설치하고 나면 OpenPrinting에서 사용할 프린터용 PPD 파일을 다운로드하여 /usr/share/cups/model 폴더에 복사하십시오. 다음 위에서 설명한 과정대로 프린터를 설정하십시오.

SpliX 드라이버

SpliX 는 SPL (Samsung Printer Language) 프린터용 CUPS 프린터 드라이버 모음입니다. SpliX 드라이버가 OpenPrinting 에 있긴 하지만 net-print/splix 꾸러미는 포티지에서 관리하며 드라이버를 신속하게 설치합니다. 설치를 진행하려면 다음 명령을 실행하십시오:

root #emerge --ask net-print/splix

그리고 cupsd를 다시 시작하십시오.

브라더 프린터 드라이버

Brother 네트워크 프린터를 참고하십시오.

Canon printer drivers

See the specific pages:

마이크로소프트 윈도우에서/로 인쇄

참고
CUPS에 삼바를 설정하는 자세한 내용을 살펴보려면 Samba/CUPS 안내서를 살펴보십시오.

IPP 윈도우 클라이언트 설정

마이크로소프트 윈도우에서는 IPP를 지원합니다(윈도우 9x 및 me 사용자는 해당 프로토콜을 따로 설치해야합니다). 리눅스 머신에 연결한 프린터를 윈도우에 설치하려면 프린터 추가 마법사를 실행한 후 네트워크 프린터를 선택하십시오. URI를 물어보면, http://hostname:631/printers/queue 문법을 활용하십시오.

삼바 공유 프린터의 윈도우 클라이언트 설정

CIFS 네트워크의 프린터를 공유하려면 SAMBA를 설치하고 올바르게 설정해야합니다. 이 과정은 이 게시글의 주제를 벗어나지만 공유 프린터 설정에 대한 SAMBA 의 간편 설정방법을 다루겠습니다.

선호하는 텍스트 편집기로 /etc/samba/smb.conf 파일을 열고 이 파일에 [printers] 섹션을 추가하십시오:

코드 [printers] 섹션
[printers]
  comment      = All printers
  path         = /var/spool/samba
  browseable   = no
  guest ok     = no
  writable     = no
  printable    = yes
  public       = yes
  printer name = hpljet5p

[global] 섹션에 들어가기 전까지 smb.conf 파일 상단을 탐색해보십시오. printcap nameprinting 설정을 가리키고 각 설정을 cups로 설정하십시오(하단 예제 참고):

코드 smb.conf의 [global] 섹션 설정 바꾸기
[global]
  (...)
  printcap name = cups
  printing      = cups

CUPS에서 윈도우 PCL 지원을 활성화했는지 확인하십시오. 그 다음, 바뀐 설정을 적용하도록 smb 서비스를 다시 시작하십시오.

윈도우 인쇄 서버용 리눅스 클라이언트 설정

우선 윈도우 시스템에서 프린터를 공유했는지, (위 절차대로) cups USE 플래그를 활성화한 상태에서 net-fs/samba를 이머지했는지 확인하십시오.

원하는 프린터 URI를 찾으려면, 다음 명령을 실행하십시오. server는 삼바 공유 프린터를 식별하는 컴퓨터를 말합니다:

user $smbclient -N '\\server\'

CUPS 웹 인터페이스에서 앞서 설명한대로 프린터를 설정하십시오. CUPS에는 Windows Printer via SAMBA라는 다른 드라이버를 추가했습니다. 이 드라이버를 선택하고 smb://username:password@workgroup/server/printername 또는 smb://server/printername URI 주소로 접속하십시오.

중요
위의 URI에 있는 일부 특수 문자는 제대로 인용해야 합니다. 다음의 경우는:

smb://BEN-DESKTOP/HP Color LaserJet CP1510 series PCL6

다음으로 표현해야합니다:

smb://BEN-DESKTOP/HP%20Color%20LaserJet%20CP1510%20series%20PCL6


이 결과 문자열은 다음 명령을 실행하여 가져올 수 있습니다:

user $python2 -c 'import urllib; print "smb://" + urllib.quote("BEN-DESKTOP/HP Color LaserJet CP1510 series PCL6")'

인쇄 관련 프로그램

도입부

프린터 설정 과정을 도와주는고, 추가 인쇄 필터를 활용하며, 인쇄 기능을 추가하는 도구는 여러가지가 있습니다. 이 장에서는 이 중 몇가지만 다루겠습니다. 앞으로 다룰 목록은 완전하지 않으며 각 도구에 대한 내용은 상당히 자세한 수준으로 다루지 않습니다.

Gtk-LP - Gtk-기반 프린터 설정 도구

net-print/gtklp 꾸러미를 활용하면, 프린터의 설치, 수정, 설정을 독립 GTK 프로그램에서 처리할 수 있습니다. 이 프로그램은 CUPS를 활용하며 표준 CUPS 기능을 제공합니다. CUPS 웹 인터페이스를 싫어하거나 일일 인쇄 작업을 처리하는 단일 프로그램을 찾으신다면 이 프로그램이 제격입니다.

다음 명령으로 설치하십시오:

root #emerge --ask net-print/gtklp

KDE 4용 프린터 설정 도구

KDE 4에는 kde-apps/print-manager라고 하는 프린터 설정 도구도 있습니다. CUPS와 동작하며 사용자에게 익숙한 프린터 설정 인터페이스가 있습니다. 다음 명령으로 설치하십시오:

root #emerge --ask kde-apps/print-manager

제거

USE 플래그

cups USE 플래그로 설치한 꾸러미를 수정해야합니다. /etc/portage/package.use 파일을 검색하여 cups 플래그를 분명히 적용한 꾸러미가 있는지 확인하고 플래그를 제거하십시오.

다음, 앞선 과정에서 /etc/portage/make.confUSE 변수에 cups 값을 설정했다면 제거해야합니다.

Unmerge

root #emerge --ask --depclean --verbose net-print/cups

마지막으로, CUPS를 제거한 후 더 이상 필요하지 않은 시스템의 꾸러미를 정리하십시오.

root #emerge --ask --depclean

문제 해결

Debugging

See archlinux wiki

Error: Unable to convert file 0 to printable format

인쇄에 문제가 있고 /var/log/cups/error_log파일에 다음 메시지가 나타난다면:

코드 오류 기록
Unable to convert file 0 to printable format

app-text/ghostscript-gplcups USE 플래그를 활성화 한 상태에서 다시 이머지하십시오. /etc/portage/make.conf의 시스템 USE 플래그 설정에 cups 를 추가하거나 다음과 같이 ghostscript-gpl 전용으로 활성화할 수 있습니다:

root #echo "app-text/ghostscript-gpl cups" >> /etc/portage/package.use

위의 과정이 끝났으면 emerge app-text/ghostscript-gpl을 실행하십시오. 컴파일 과정이 끝나면, cupsd를 다시 시작하십시오:

OpenRC를 활용할 때:

root #service cupsd restart

systemd를 활용할 때:

root #systemctl restart cups

USB printer is not detected

Assuming that cups is built with the usb USE flag, verify that the printer's character device has the correct permissions. For example:

user $lsusb Bus 002 Device 058: ID 04e8:3297 Samsung Electronics Co., Ltd ML-191x/ML-252x Laser Printer

There should be a character device for this printer at /dev/bus/usb/002/058.

user $ls -l /dev/bus/usb/002/058 crw-rw-r-- 1 root android 189, 185 Apr 16 05:55 /dev/bus/usb/002/058

In this example, /lib64/udev/rules.d/80-android.rules over-zealously modified the permissions. This is bug #644636. Lets try fixing them:

root #chgrp lp /dev/bus/usb/002/058
root #chmod 660 /dev/bus/usb/002/058

Now we should see:

user $ls -l /dev/bus/usb/002/058 crw-rw---- 1 root lp 189, 185 Apr 16 05:55 /dev/bus/usb/002/058

The printer likely is detected now. You should be able to add it, configure it (provided that you have a working driver) and print a test page. This implies a permissions problem. Assuming that your system uses udev/eudev for managing its /dev directory, you can make this change permanent by making a udev file:

파일 /etc/udev/rules.d/99-printer.rulesCustom Udev Rule
SUBSYSTEMS=="usb", ATTRS{idVendor}=="04e8", ATTRS{idProduct}=="3297", MODE="0660", GROUP="lp"

Our device is "ID 04e8:3297" according to the earlier lsusb output. We split that into idVendor and idProduct as demonstrated in the example. Now udev should ensure that the correct permissions are set at every boot and at every hotplug.

See also

외부 자료


This page is based on a document formerly found on our main website gentoo.org.
The following people contributed to the original document: Sven Vermeulen (SwifT) ,
They are listed here because wiki history does not allow for any external attribution. If you edit the wiki article, please do not add yourself here; your contributions are recorded on each article's associated history page.