HPLIP
HPLIP (HP Linux Imaging and Printing)에는 HP 장치 프린터 드라이버가 들어있습니다. 다양한 다목적 주변기기에서 활용할 서비스 도구에 스캐너 및 팩스 지원 기능도 들어있습니다.
HPLIP가 필요할까요?
HP 잉크젯 레이저젯 기반 프린터 대부분에 HPLIP 활용을 추천합니다. 그러나 충분한 드라이버 또는 PPD 파일을 제공하는 기본 CUPS 설치로 동작하는 프린터가 대부분입니다.
일부 장치는 바이너리 플러그인을 활성화했을 때 만 사용할 수 있는 기능이 있습니다. 이 플러그인은 드라이버에 추가로 설치해야합니다. 따라서 해당 기능(인쇄 기능 개선, 고속 인쇄/스캔)을 활용하려면 플러그인이 필요합니다. 자세한 내용은 바이너리 플러그인을 참고하십시오.
설치
프린터를 관리할 모든 사용자 - 웹 인터페이스를 활용하든지 hp-setup을 활용하든지 - 는 lpadmin 그룹의 구성원이어야합니다. CUPS 설정 파일을 텍스트 편집기로 편집하려면 루트 권한이 필요합니다. 인쇄만 하려는 사용자는 특별한 권한이나 그룹 구성원 참여 여부가 필요없습니다.
인쇄 지원 기능을 활용하려면 hpcups
USE 플래그로 활성화 할 수 있는 새 hpcups 드라이버를 사용하시는게 좋습니다. 이전 hpijs 드라이버는 hpijs
USE 플래그를 활용하면 HPLIP를 빌드할 때 들어갑니다.
기본 설치에는 실행 시간에 동적으로 만든 PPD 파일을 활성화합니다. 일부 프린터는 아직도 정적 PPD 파일이 필요합니다. hp-setup에 문제가 있다면 static-ppds
USE 플래그를 활성화하고 HPLIP를 다시 빌드해보십시오
USB 프린터를 활용하려면 usb
USE 플래그를 활용하여 net-print/cups를 빌드해야합니다. 이 방식으로 커널 USB 드라이버 지원(CONFIG_USE_PRINTER
) 대신 사용할 사용자 영역 도구 dev-libs/libusb를 할용합니다. 문제가 있다면 net-print/cups의 usb
USE 플래그를 비활성화하고 커널 기능을 다시 활성화하십시오.
네트워크 프린터를 설정할 수 있으려면, avahi
또는 slp
USE 플래그 중 하나로 net-print/cups-1.5를 빌드해야합니다. net-print/cups 1.6 버전대에서는 slp 지원을 뺐고 avahi
또는 zeroconf
USE 플래그 중 하나로 빌드하는 방식을 선택할 수 있습니다. 네트워크 프린터로 인쇄할 수 있으려면, HPLIP를 snmp
USE 플래그를 붙여 빌드해야합니다.
일부 스캐너 장치를 활용하려면 적당한 SANE 백엔드를 활성화해야합니다. 장치에 어떤 백엔드가 필요한지 찾아보려면 SANE 프로젝트의 드라이버 검색 엔진을 찾아가신 후, 제조사 검색 이름을 "HEWLETT-PACKARD"로 지정하여 검색하십시오. 검색 결과에서는 백엔드에 필요한 내용과 모든 지원 장치 목록을 보여줍니다. 예를 들어, 장치에서 hp 백엔드가 필요하다면, media-gfx/sane-backends를 시작할 때 포티지 설정에 다음 내용을 추가해야합니다:
SANE_BACKENDS="hp"
hpaio 백엔드는
scanner
USE 플래그를 활성화하면 HPLIP 자체에서 제공합니다. 이 백엔드가 필요하다면 /etc/sane.d/dll.conf 파일에 이미 다음 설정을 지정해둔 이상, 추가 설정은 필요하지 않습니다.# Add support for the HP-specific backend. Needs net-print/hplip installed.
hpaio
커널
USB로 연결한 장치에는 기본 커널 USB 지원이 필요합니다. 구식 커널 USB 프린터 드라이버를 활용 - net-print/cups에 usb
USE 플래그를 사용한다는 의미는 아님 - 할 때, 다음 커널 옵션을 설정해야합니다:
Device Drivers --->
[*] USB support --->
<*> USB Printer support
원한다면 이 드라이버를 usblp
모듈을 활성화할 수 있습니다. USE 플래그를 비활성화하고 커널 모듈을 불러오거나 USE 플래그를 활성화하고 modprobe로 커널 모듈 로드 상태를 해제하는 방식처럼 간단하게 usb
USE 플래그를 시험해볼 수 있습니다. 이 방식은 커널을 다시 컴파일하고 재부팅할 시간을 줄여줍니다. USE 플래그 설정을 바꿔 기능을 활용하려면 HPLIP만 다시 컴파일하면 됩니다. 모듈을 완전히 비활성화하려면, 블랙리스트에 등록하여 부팅시간에 자동으로 불러오는 동작을 막아둘 수 있습니다.
usblp
커널 모듈을 불러오십시오:
root #
modprobe usblp
usblp
커널 모듈 로드를 해제하십시오:
root #
modprobe -r usblp
usblp
커널 모듈을 블랙 리스트에 등록하십시오:
root #
echo "blacklist usblp" >> /etc/modprobe.d/blacklist.conf
병렬 포트에 연결한 장치는 다음 커널 옵션이 필요합니다:
Device Drivers --->
<*> Parallel port support --->
<*> PC-style hardware
[*] IEEE 1284 transfer modes
Character devices --->
<*> Parallel printer support
위 두가지 방식은 보통 대부분 커널에서 이미 활성화 한 방식입니다.
네트워크에 연결한 장치는 특별한 커널 드라이버가 필요 없지만 기본 커널 네트워크 지원은 필요합니다.
프로그램
다음 표에서는 net-print/hplip의 현재 USE 플래그 설정을 보여줍니다:
USE flags for net-print/hplip HP Linux Imaging and Printing - Print, scan, fax drivers and service tools
+hpcups
|
Build the hpcups driver for cups (by HP) |
+snmp
|
Add support for net-analyzer/net-snmp which enables this driver to work over networks (both for server and client) |
X
|
Enables scanner GUI dependencies with USE="scanner" where media-gfx/xsane is preferred over media-gfx/sane-frontends |
doc
|
Add extra documentation (API, Javadoc, etc). It is recommended to enable per package instead of globally |
fax
|
Enable fax on multifunction devices which support it |
hpijs
|
Build the IJS driver for cups (Foomatic) |
kde
|
Enables kde-misc/skanlite as scanner GUI with USE="scanner X" |
libnotify
|
Enable desktop notification support |
libusb0
|
Depend on virtual/libusb SLOT 0. Some old printers do not work with virtual/libusb SLOT 1. |
minimal
|
Only build internal hpijs/hpcups driver (not recommended at all, make sure you know what you are doing) |
parport
|
Enable parallel port for devices which require it |
policykit
|
Enable PolicyKit (polkit) authentication support |
qt5
|
Add support for the Qt 5 application and UI framework |
scanner
|
Enable scanner on multifunction devices which support it |
static-ppds
|
Use statically-generated PPDs instead of Dynamic PPDs. Although this is deprecated some printers may still need it to work properly. Use this flag if hp-setup fails to find/create a valid PPD file |
net-print/hplip를 설치하십시오:
root #
emerge --ask hplip
hplip를 설치하기 전에 올바른 USE 플래그를 설정했는지 확인하십시오. 예를 들면, 네트워크 프린터에는
snmp
플래그가 필요합니다. 전체적으로 설정하지 않았다면, hplip 꾸러미에 따로 설정하십시오:
root #
emerge --ask echo "net-print/hplip snmp" >> /etc/portage/package.use
설정
프린터 및 팩스
USB 프린터를 컴퓨터에 연결했는지, 또는 네트워크 프린터를 네트워크 소켓에 연결했는지 확인하십시오.
qt4
USE 플래그를 활성화 한 상태에서 HPLIP를 설치했다면 장치 설정시 "HP 장치 관리자"를 활용하십시오.
대신 터미널에서 hp-setup을 실행하십시오:
root #
hp-setup
네트워크 프린터에는, 추가로 프린터 IP 주소를 지정하십시오:
root #
hp-setup -i 192.168.1.27
그 다음 CUPS 데몬을 다시 시작하십시오:
root #
rc-service cupsd restart
스캐너
전반적으로 스캐너는 있는 그대로 동작해야 하고 XSane 등에서 찾습니다.
시험
프린터
hp-setup 실행이 끝나면 시험 페이지 인쇄를 허용해야합니다. "HP 장치 관리자" 또는 http://localhost:631/ 의 CUPS 웹 인터페이스에서 나중에 설정할 수 있습니다.
스캐너
xsane을 활용하시고 미리보기(preview) 단추를 눌러 스캐너 드라이버를 제대로 설치했고 올바르게 동작하는지 확인하십시오.
업그레이드
HPLIP를 업그레이드할 때마다 hp-setup -r 명령을 실행하여 설정 섹션 윗부분에 설명한대로 모든 프린터를 제거하고 다시 설정하시는게 좋습니다.
바이너리 플러그인
장치에서 제공하는 모든 기능을 활용할 때 바이너리 플러그인이 필요한 일부 자치가 있습니다. 바이너리 플러그인을 사용해야 하는 이유와 바이너리 플러그인이 필요한 장치 목록은 프로젝트 홈페이지에 있습니다. 젠투에서는 바이너리 플러그인을 아직 지원하지 않습니다. 그러나, hp-setup에서 플러그인을 자동으로 설치하려고 시도합니다.
설치 파일은 포티지 관리 범위를 벗어나며 /usr/share/hplip/data/firmware/, /usr/share/hplip/data/plugins/, /usr/share/hplip/prnt/plugins/ 경로에 있습니다. 프린터 큐를 설정하지 않고 플러그인을 설치하려는 용도로 hp-plugin 명령이 있습니다.
hp-setup 명령 또는 hp-plugin 명령으로 플러그인 설치에 실패하면 오픈 프린팅 사이트의 플러그인 설치 관리자를 다운로드하여 사용하실 수 있습니다. 플러그인을 설치하려면 다운로드한 .run 파일을 셸에서 실행해야 합니다:
root #
sh hplip-version-plugin.run
그 다음, hp-setup 명령 또는 hp-plugin 명령과 비슷한 방식으로 설치 관리자의 지시를 따르십시오.
문제 해결
프린터를 찾을 수 없음
문제: hp-setup 또는 HP 장치 관리자에서 네트워크 프린터를 찾지 못합니다.
해결책: net-print/hplip 꾸러미 설치시 snmp
USE 플래그를 활성화하고 프린터 설정에서 SNMP를 활성화했는지 확인하십시오.
인쇄 멈춤
문제점: 작업을 요청하면 인쇄를 바로 시작하지 않음.
해결책: CUPS 프린터 관리 인터페이스를 확인하시고 프린터가 일시 정지 상태인지 확인하십시오.
설치 과정 중 "File "./plugin_install.py", line 78 except ImportError, e:" 오류
문제점: 다음 오류가 나타납니다:
root #
hp-setup -i 192.168.1.27
[...SNIP...] ---------------------- | INSTALLING PLUG-IN | ---------------------- Verifying archive integrity... All good. Uncompressing HPLIP 3.12.10a Plugin Self Extracting Archive..................................................... File "./plugin_install.py", line 78 except ImportError, e: ^ SyntaxError: invalid syntax error: Python gobject/dbus may be not installed
해결책: Python 3를 파이썬 주 인터프린터 로 설정했습니다. HPLIP는 아직 Python 3와 제대로 동작하지 않습니다. 문제를 해결하려면 eselect python 명령으로 Python 2로 바꾸십시오.
Launchpad bug #718069에도 적어두었습니다
HPLIP 이빌드 업그레이드 과정에서 바이너리 플러그인을 업그레이드하지 않음
문제점: HPLIP 이빌드 자체를 업그레이드하면 바이너리를 업그레이드하지 않습니다. 문제의 증상은 다음과 같습니다: XSane을 시작할 때 세그먼테이션 오류가 뜹니다(예: HP LaserJet M1522nf에서 스캔 기능을 활용하려면 바이너리 플러그인이 필요함).
해결책 1: 다음 업그레이드 절차에서 플러그인을 업그레이드할 때 hp-setup을 실행하는 것처럼 살펴봐야 합니다. 여전히 문제가 있다면 플러그인을 설치할 때 활용할 수 있는 hp-plugin HPLIP를 활용하십시오. 마지막으로 의지해 볼 수 있는 해결책이라면, OpenPrinting에서 플러그인을 다운로드하고 직접 설치하는 방법입니다.
해결책 2: 최근에, 사용자 터미널에서 hp-info (qt4
USE 플래그로 HPLIP를 빌드) 를 실행하면 설치한 드라이버의 바이너리 버전 충돌 부분을 자동으로 찾아서 사용자에게 자동으로 업그레이드할 지, 업그레이드한다면 qt4 위젯 프롬프트로 업그레이드할 때 필요한 루트 암호가 무엇인지 물어봅니다.
이상한 문자 출력
문제점: 출력물에 이상한 문자가 있습니다.
해결책: 프린터에서 아마도 포스트스크립트 3단계 출력을 처리할 수 없는 것 같습니다. 문제를 해결하려면, 프린터 PPD 파일을 편집하여 *LanguageLevel: "3"
설정을 *LanguageLevel: "2"
로 바꾸십시오.
자세한 내용은 2008년에 열어둔 Launchpad bug #277404 버그와 Freedesktop.org bug #19640 버그를 참고하십시오.
=net-print/hplip-3.13과 PPD 파일을 설치할 때 일부 HP 프린터에서 level 3를 지원하지 않음에도 불구하고 "LanguageLevel 3"를 할당하여 Launchpad bug #277404 문제를 아직 수정하지 않았습니다.
마이크로소프트 윈도우에서도 포스트스크립트 언어 레벨 2로 인쇄합니다. 그래픽 인터페이스에서 레벨 3로 나타나지만, 나타난 상태는 잘못됐으며 코드를 뜯어고쳤기 때문에 레벨 2로 인쇄합니다.
Infinality로 설정하면 알 수 없는 문제를 만들어냅니다. 동작하지 않으면, Infinality를 비활성화해보십시오.
SANE/XSANE에서 hpaio 스캐너를 찾지 않음
문제점: SANE 또는 XSANE에서 아직도 hpaio 기반 스캐너를 찾지 못합니다.
Solution: SANE/XSANE SANE_BACKENDS
에 hp
를 설정하거나 media-gfx/sane-backends 꾸러미를 컴파일할 때 hp
USE 플래그를 설정해야합니다. 현재, 'hp' sane-backend는 HPLIP hpaio 장치에 접근할 때 더이상 필요하지 않은 것 같습니다. 또한, /etc/portage/make.conf에 SANE_BACKENDS
장치를 지정하지 않으면, media-gfx/sane-backends 꾸러미를 컴파일하는 동안 대부분의 모든 sane-backend 장치를 컴파일합니다. 이는 USE 플래그 기능의 주 목적에 반하며 x86 플랫폼에서 컴파일 시간을 매우 오래걸리게합니다.
/etc/portage/make.conf 파일에SANE_BACKENDS="hp"
(또는 최소한 필요하지 않더라도 일부 드라이버를) 설정을 넣거나 꾸러미 USE 플래그로 "hp"를 넣는 방식이 여전히 신중한 방식일 수도 있습니다.SANE_BACKENDS="sane_backends_hp"
이전 형식으로 넣(었)을 수도 있으니, 설정을 새 형식에 맞춰 넣었는지 확인하십시오.
이런 방식의 문제를 해결하는데 확인할 가장 최근의 관련 부분은 사용자가 /etc/groups 파일의 scanner, usb, lp 그룹에 있는지 확인한느 일입니다. scanimage -L과 HPLIP hp-scan 명령이 루트 권한으로 동작한다면, 권한 문제가 잘못된 것임에 틀림없습니다. 루트 계정으로도 스캔 기능이 동작하지 않으면, 특히 HPLIP의 hp-scan 프로그램일 경우, 플러그인을 제대로 설치하고 업데이트했으며, 장치를 연결했는지 확인하십시오.
위의 모든 설정을 제대로 했을 때 마지막으로 /etc/sane.d/ (특히 /etc/sane.d/dll.conf 파일)의 파일을 읽을 수 있는지 확인하십시오.
이 권한 문제에 대해 HPLIP의 hp-scan -g 명령 또는 SANE의 scanimage -L 명령을 활용할 때 쓸만한 정보가 아직 알려지지 않았습니다.
나머지 모든 방법으로도 실패하면, strace(dev-util/strace 꾸러미에 있음)로 자세한 해결 실마리를 얻을 수 있습니다. strace 동작 방식 설명은 이 문서의 주제를 벗어나기 때문에 다루지 않겠습니다.