hello, stranger?
라즈베리 파이에 CUPS + HPLIP 로 프린터 서버 설정 | Hanashi | 2019-03-11 18:01
라즈베리 파이로 네트워크 프린터를 만들어보았다. 무선 설정을 하니 네트워크 기능이 없는 프린터도 공유하여 사용할 수 있게 되었다. 그렇다, 무선이다!! 크흑 차후 다시 설정할 필요가 있을 것 같아 기록용으로 남겨놓는다.

0. 먼저 필요한 라이브러리와 데몬을 설치한다.
sudo apt-get install cups libcups2 libcups2-dev cups-bsd cups-client libcupsimage2 libcupsimage2-dev libdbus-1-dev g++ libssl-dev libsnmp-dev libc6 libtool libusb-1.0.0-dev make wget python-imaging policykit-1 policykit-1-gnome python-qt4 python-qt4-dbus python-dbus python-gobject python-dev python-notify python python-reportlab sane libsane-dev sane-utils xsane automake xinetd

1. HPLIP 를 source 로 설치한다. 아래 링크에서 다운로드할 수 있다. 여기서는 fax 와 scan 기능을 사용하지 않는다. 설치 후 반드시 hp-plugin 을 실행하여 플러그인을 받아야한다. 라즈베리 파이의 경우, HPLIP 의 버전이 높으면 이미징 라이브러리의 문제로 설치가 되지 않았다. 나는 3.18.4 버전으로 설치했다.
https://sourceforge.net/projects/hplip/files/

./configure --with-hpppddir=/usr/share/ppd/HP --prefix=/usr --disable-libusb01_build --enable-doc-build --disable-cups-ppd-install --disable-foomatic-drv-install --disable-foomatic-ppd-install --disable-hpijs-install --disable-udev_sysfs_rules --disable-policykit --enable-cups-drv-install --enable-hpcups-install --enable-network-build --enable-dbus-build --disable-scan-build --disable-fax-build
# note: Armbian 을 OS 로 사용하는 RPi 호환 보드에서 configure 가 안되는 경우 /usr/share/misc/config.guess 를 source 디렉토리에 복사한다. (덮어쓰기)
make
sudo make install

2. CUPS 를 설정한다. (셸에서 관리자 권한으로 cupsctl --remote-admin; service cups restart 로 원격 관리를 설정할 수 있다. CUPS 설정은 각자 찾보도록 하자.) Administration 탭에서 프린터를 추가하면 되는데, 이때 local printer 를 선택하되 이름에 hplip 가 포함된 프린터를 선택한다.

    2-1. MacOS 에서 사용할 프린터는 HPLIP 프린터로 추가한다. 모델명을 확인하여 추가하면 끝. 별다른 설정없이 네트워크 프린터를 추가할 수 있다.
    2-2. Windows 에서 JetDirect 로 사용하기 위해서는 Raw 프린터를 추가해야한다. 프린터를 추가할 때 Make 를 Raw 로 선택하고 share printer 의 체크박스를 해제한다. 전자정부 사이트에서 출력을 하기 위해서는 로컬 프린터로 설정할 필요가 있는데, 이 때 타입을 JetDirect 를 사용할 수 있다.

3. JetDirect 를 설정하기 위해 /etc/xinetd.d 에 아래 파일을 추가한다.
sudo vi /etc/xinetd.d/jetdirect

service jetdirect
{
socket_type = stream
protocol = tcp
wait = no
user = root
server = /usr/bin/lp
server_args = -d {2-2의 프린터 이름} -o raw
groups = yes
disable = no
}


4. 데몬을 재시작한다.
sudo service cups restart
sudo service xinetd restart


5. 삼바를... 꼭 설치해야 하는지 잘 모르겠다. - _-) 혹시 필요하다면 삼바를 설치한 후 smb.conf 에 아래 옵션을 추가한다.
[global] 섹션에
load printers = yes
printcap name = cups
printing = cups

[printers] 섹션에
use client driver = yes

비밀덧말