CUPS – Tips Berguna
Cara menginstal antrian cetak
Faktanya, apakah Anda perlu menginstal printer atau tidak tergantung pada beberapa hal:
-
perangkat apa yang ingin Anda instal - printer dari server CUPS jarak jauh (disebut antrian cetak jarak jauh) atau printer,
-
di mana perangkat yang ingin Anda instal - terhubung melalui USB ke PC Anda, berada di jaringan lokal Anda, berada di jaringan lain, atau diinstal pada server jarak jauh,
-
berapa usia perangkat yang ingin Anda instal:
-
printer mandiri - sebagian besar printer SOHO (Small Office, Home Office) dan printer kantor yang diproduksi setelah tahun 2010 memiliki setidaknya satu cara untuk mendukung pencetakan tanpa driver, perangkat yang lebih tua bergantung pada driver - klasik atau aplikasi printer,
-
antrian cetak jarak jauh pada server - sistem operasi apa pun yang menggunakan CUPS 2.2.8 atau versi yang lebih baru, atau sistem operasi di mana dukungan IPP Everywhere telah di-backport (misalnya RHEL 8), mampu mendukung IPP Everywhere. Jika tidak, kombinasi driver dan antrian mentah diperlukan dalam komunikasi klien-server,
-
-
apa tujuan dari perangkat tempat Anda menginstal printer - apakah itu perangkat akhir (endpoint device) yang digunakan pengguna sebagai desktop, atau server yang membagikan printer yang diinstal ke perangkat lain,
-
apa preferensi pribadi Anda - menggunakan atau tidak menggunakan protokol IPP, menggunakan atau tidak menggunakan mDNS untuk instalasi otomatis jika memungkinkan berdasarkan konfigurasi jaringan.
Jadi, ada beberapa cerita pengguna yang didasarkan pada ketergantungan tersebut, yang dijelaskan lebih lanjut di bawah ini.
Cerita pengguna umum
Saya memiliki printer yang diproduksi setelah tahun 2015, saya berada di rumah dan ingin mencetak dari PC saya
-
pengaturan yang paling umum pada desktop
-
printer ini cukup baru untuk mendukung standar tanpa driver melalui USB dan jaringan, sehingga dukungan tanpa driver tidak bergantung pada koneksi Anda
-
PC adalah perangkat ujung, saya tidak ingin berbagi printer
-
Saya tidak keberatan menggunakan mDNS dan IPP. mDNS telah diaktifkan di firewall saya, IPP dan mDNS (atau pengaturan serupa) telah diaktifkan di printer, dan resolusi mDNS berfungsi (diverifikasi dengan melakukan ping ke nama host .local)
Saya memiliki printer yang lebih tua, saya berada di rumah dan ingin mencetak dari PC saya
Saat ini ada dua opsi - instal printer melalui aplikasi printer, dan CUPS akan secara otomatis mendeteksinya, atau instal dengan driver klasik secara permanen. Pemasangan dengan driver klasik sudah tidak direkomendasikan dan akan dihapus dalam CUPS 3.0.
Saya bekerja di sebuah perusahaan yang memiliki server cetak tempat printer kantor dipasang. Saya ingin mencetak ke server cetak tersebut—tanpa mDNS, tetapi tanpa driver
-
server cetak mendukung IPP Everywhere dan berada di jaringan yang berbeda atau tidak terdaftar di mDNS, atau saya tidak ingin menggunakan mDNS
-
antrian cetak jarak jauh memiliki URI ipp://<server_hostname>:631/printers/<queue_name>, di mana <server_hostname> adalah nama host server cetak dan <queue_name> adalah nama antrian cetak yang ingin saya hubungkan
-
perintah ipptool akan berhasil jika URI digunakan
Printer-printer tersebut harus diinstal secara permanen menggunakan driver IPP Everywhere.
Saya bekerja di sebuah perusahaan yang memiliki server printer tempat printer-printer kantor dipasang. Saya ingin mencetak ke server printer tersebut dengan mDNS yang berfungsi di jaringan lokal
Printer jarak jauh semacam itu ditemukan secara otomatis melalui mDNS dan digunakan sebagai CUPS temporary queues di jaringan - mereka terdeteksi melalui mDNS dan secara otomatis dikenali oleh dialog.
Saya ingin mencetak, tetapi saya tidak ingin atau tidak bisa menggunakan mDNS, terlepas dari apakah printer saya mendukung pencetakan tanpa driver
Setiap printer yang tidak dapat ditemukan melalui mDNS harus diinstal secara permanen di CUPS atau, pada CUPS 3.0, melalui profil printer.
-
Printer tanpa drtiver:
-
semua di antaranya didukung oleh model IPP Everywhere di bawah entri Pabrikan di antarmuka web CUPS dan sebagai everywhere di antarmuka baris perintah (CLI)
-
jenis berdasarkan asal:
-
Jaringan:
-
URI: ipp://<hostname_or_ip>:631/ipp/print , di mana <hostname_or_ip> adalah nama host atau alamat IP printer
-
-
Printer IPP-over-USB menggunakan ipp-usb:
-
URI: ipp://localhost:60000/ipp/print
-
-
Printer yang diinstal melalui aplikasi printer:
-
URI: ipp://localhost:8000/ipp/print/<printer_name> , di mana <printer_name> adalah nama printer yang dipilih dalam aplikasi printer
-
-
-
-
Antrian cetak jarak jauh pada server cetak:
-
URI: ipp://<server_ip_or_server_hostname>:631/printers/<remote_print_queue>, di mana <server_ip_or_server_hostname> adalah alamat IP atau nama host server, dan <remote_print_queue> adalah nama antrian cetak yang terpasang di server
-
hal ini bergantung pada CUPS di server apakah printer lokal yang mengarah ke printer di server dapat diinstal sebagai model IPP Everywhere - biasanya CUPS 2.2.8 dan versi yang lebih baru mendukung mode tanpa driver, dan beberapa distribusi seperti CentOS 8 juga telah mengadopsi kembali fungsionalitas tersebut
-
jika tidak, hal ini bergantung pada driver printer di server lama - kuncinya adalah mencegah pengaplikasian opsi secara berulang (sehingga salah satu koneksi harus dalam mode raw dan kehilangan beberapa fungsi)
-
-
Printer warisan atau printer khusus
-
(usang, akan dihapus dalam CUPS 3.0) dapat dideteksi oleh CUPS dan diinstal menggunakan driver klasik
-
dapat diinstal di aplikasi printer dan kemudian diinstal di CUPS sebagai antrian permanen (lihat printer tanpa driver - printer yang diinstal melalui aplikasi printer di atas)
-
Opsi tanpa driver tidak berfungsi dengan baik pada printer saya yang tidak menggunakan driver. Saya ingin menggunakan fitur-fitur dari driver
Tindakan yang direkomendasikan saat ini adalah menginstal printer melalui aplikasi printer, yang berisi driver klasik, karena menginstal printer secara permanen di CUPS dengan driver klasik sudah tidak direkomendasikan dan akan dihapus di CUPS 3.0. Kemudian mDNS dapat digunakan untuk mendeteksinya oleh CUPS, atau printer dari aplikasi printer harus diinstal secara permanen di CUPS sebagai printer IPP Everywhere.
Untuk printer IPP-over-USB, aturan penolakan harus ditambahkan sesuai dengan yang dijelaskan dalam masalah yang diketahui.
Saya menginstal printer pada server, yang akan membagikan printer tersebut ke pengguna lain
Printer di server harus diinstal secara permanen agar dapat dibagikan. Model IPP Everywhere (langsung ke printer atau melalui aplikasi printer) adalah yang ideal, tetapi driver klasik dengan opsi PPD standar pada server yang mendukung penggunaan tanpa driver juga dapat digunakan - klien dapat menggunakan model IPP Everywhere saat mengarah ke server dan opsi diterjemahkan dengan benar. Jika tidak, ada kemungkinan beberapa opsi tidak diterapkan atau diterapkan dua kali. Jangan lupa mengaktifkan IPP di firewall, mengatur ACL ke server melalui /etc/cups/cupsd.conf, dan menghubungkan daemon ke port 631 alih-alih localhost.
Saya bekerja di perusahaan yang menggunakan server cetak lama yang tidak mendukung pencetakan tanpa driver, dan saya ingin mencetak
Hal yang penting adalah mencegah pengaplikasian opsi berulang kali dalam skenario ini. Ada beberapa cara untuk melakukannya:
-
minta bantuan tim IT Anda untuk driver (antrian cetak di server harus dalam format mentah)
-
gunakan direktif ServerName dalam
/etc/cups/client.confatau variabel lingkungan CUPS_SERVER untuk terhubung langsung ke server - Anda tidak akan dapat melakukan tugas administrasi, tetapi dapat mencetak.
Bagaimana cara mengetahui apakah printer saya mendukung pencetakan tanpa driver?
Printer jaringan memiliki persyaratan prasyarat - pengaktifan port IPP pada printer adalah persyaratan minimum, sedangkan mDNS diperlukan untuk penemuan printer otomatis oleh libcups. Jika diperlukan, aktifkan AirPrint, IPP Everywhere, atau opsi standar tanpa driver lainnya dalam pengaturan printer, baik melalui panel printer maupun antarmuka web printer.
-
Perintah
ipptoolyang mengirimkan permintaan IPP Get-Printer-Attributes ke printer jaringan berhasil:
$ ipptool -tv ipp://printer.example.com:631/ipp/print get-printer-attributes.test
"/usr/share/cups/ipptool/get-printer-attributes.test":
Get-Printer-Attributes:
attributes-charset (charset) = utf-8
attributes-natural-language (naturalLanguage) = en
printer-uri (uri) = ipp://printer.example.com:631/ipp/print
requested-attributes (1setOf keyword) = all,media-col-database
Get printer attributes using get-printer-attributes [PASS]
...
, di mana printer.example.com adalah nama host atau alamat IP printer jaringan Anda,
Bagaimana cara mengetahui apakah perangkat USB saya mendukung IPP melalui USB
Periksa apakah perangkat USB Anda memiliki teks berikut dalam output perintah lsusb -v:
...
bInterfaceClass 7 Printer
bInterfaceSubClass 1 Printer
bInterfaceProtocol 4
iInterface 0
...
Jika perangkat memiliki bInterfaceClass 7, bInterfaceSubClass 1, dan bInterfaceProtocol 4 dalam urutan tersebut, perangkat tersebut mendukung IPP melalui USB, yang sangat penting untuk pencetakan dan pemindaian tanpa driver perangkat USB.
Catatan: Beberapa produsen mengikat dukungan IPP melalui USB dengan standar driverless jaringan, yang tidak benar. Jika printer memiliki konektivitas jaringan dan USB, dan IPP melalui USB tidak ditampilkan dalam output lsusb, coba periksa pengaturan printer, aktifkan AirPrint, dan periksa kembali output lsusb -v.
Cara mengatur antrian sementara CUPS
Untuk mengatur antrian sementara dengan benar, terdapat beberapa persyaratan:
-
printer/antrian cetak jarak jauh memiliki dukungan tanpa driver dan fitur tersebut telah diaktifkan,
-
komputer Anda memiliki layanan avahi-daemon atau soket avahi-daemon yang sedang berjalan,
-
komputer Anda memiliki soket CUPs atau layanan yang sedang berjalan,
-
Nama host mDNS dapat di-resolve - uji dengan melakukan ping ke nama host .local
Cara mengatur antrian sementara CUPS dengan printer jaringan
-
persyaratan tambahan:
-
aktifkan MDNS di pengaturan firewall Anda
-
Setelah ini, antrian sementara akan muncul di dialog cetak, dan Anda tidak perlu menginstal antrian cetak khusus kecuali Anda memiliki alasan untuk melakukannya.
Anda dapat memeriksa apakah printer Anda terdeteksi dalam pesan mDNS dengan (avahi-tools harus diinstal):
$ avahi-browse -avrt ... = enp0s25 IPv4 HP LaserJet M1536dnf MFP (42307C) _ipp._tcp local hostname = [NPI42307C.local] address = [192.168.1.10] port = [631] txt = ["UUID=434e4239-4243-4a42-5859-3c4a9242307c" "Scan=T" "Duplex=T" "Color=F" "note=" "adminurl=http://NPI42307C.local." "priority=10" "product=(HP LaserJet M1536dnf MFP)" "ty=HP LaserJet M1536dnf MFP" "URF=CP99,W8,OB10,PQ3-4-5,DM1,IS1-4,MT1-2-3-5,MT1-2-3-5,RS600" "rp=ipp/printer" "pdl=application/postscript,application/vnd.hp-PCL,application/vnd.hp-PCLXL,application/pdf,image/urf" "qtotal=1" "txtvers=1"] ...
dan jika CUPS atau backend-nya mendeteksi printer melalui perintah:
(menampilkan semua antrian cetak yang ada - permanen atau sementara - antrian sementara mengandung network sebagai string kedua pada baris)
$ lpstat -l -e HP_LaserJet_M1536dnf_MFP_42307C network none ipp://HP%20LaserJet%20M1536dnf%20MFP%20(42307C)._ipp._tcp.local/ myprinter permanent ipp://localhost/printers/myprinter beh:/1/3/5/socket://printer:9100
atau
(menampilkan daftar semua perangkat yang terdeteksi oleh CUPS di jaringan lokal atau USB)
$ lpinfo -l -v
...
Device: uri = ipp://HP%20LaserJet%20M1536dnf%20MFP%20(42307C)._ipp._tcp.local/
class = network
info = HP LaserJet M1536dnf MFP (driverless)
make-and-model = HP LaserJet M1536dnf MFP
device-id = MFG:HP;MDL:LaserJet M1536dnf MFP;CMD:PDF,PS,PCL,AppleRaster,URF;
location =
...
Cara mengatur antrian sementara CUPS dengan printer USB
-
persyaratan tambahan:
-
instal ipp-usb, yang akan mengubah perangkat IPP melalui USB menjadi printer jaringan di localhost:
-
$ sudo dnf -y install ipp-usb
Kemudian Anda dapat mengikuti langkah-langkah dalam manual untuk printer jaringan.
Cara menginstal antrian cetak permanen
Persyaratan untuk printer tanpa driver permanen: aktifkan IPP di firewall Anda, aktifkan IPP di printer Anda jika memungkinkan.
Pemasangan melalui antarmuka web CUPS
-
mulai layanan cups.service
$ sudo systemctl start cups
-
buka http://localhost:631 di browser Anda
-
buka tab Administrasi
-
klik pada Tambahkan printer
-
masukkan kredensial Anda
-
pilih perangkat yang ditemukan atau koneksi yang Anda inginkan - untuk antrian permanen tanpa driver, pilih Internet Printing Protocol (IPP)
-
jika Anda tidak memilih perangkat yang ditemukan, masukkan URI perangkat di halaman berikutnya - untuk printer tanpa driver, biasanya URI-nya adalah:
Printer jaringan: ipp://<alamat IP printer atau nama host printer>:631/ipp/print Printer USB melalui ipp-usb: ipp://localhost:60000/ipp/print Printer non-otomatis melalui aplikasi printer: ipp://localhost:8000/ipp/print/<nama_printer> Printer yang terhubung ke server CUPS jarak jauh: ipp://<alamat_IP_server_atau_nama_host_server>:631/printers/<antrian_cetak_jarak_jauh>
-
pilih produsen dan model perangkat (IPP Everywhere untuk printer tanpa driver)
-
atur opsi default yang berbeda jika diperlukan dan selesaikan
Catatan:
Adding a permanent queue for driverless USB printers or non-driverless printers installed in a printer application is usually unnecessary, because they are shared by mDNS on localhost, so any application using CUPS 2.0+ API functions (cupsGetDests(), cupsGetNamedDest(), cupsCopyDestInfo()) should be able to pick them automatically (for network printer it depends whether the device is in the same subnet as your machine). Installling them permanently should be necessary only if an application doesn’t use the recent API or to work around a bug which happens when using them as temporary queues.
Jika ada lebih banyak perangkat melalui ipp-usb atau aplikasi printer, mereka mendengarkan pada port yang berbeda - perangkat melalui ipp-usb dimulai pada port 60000, sementara aplikasi printer terpisah dimulai pada port 8000.
Pemasangan melalui perintah CLI
-
Anda memerlukan URI perangkat -
<device_uri>, yang dapat Anda temukan dengan perintahlpinfo -v:
$ lpinfo -v
direct usb://HP/Officejet%20Pro%208500%20A909a?serial=NNNNNNNNN&interface=1
====================================================================
network dnssd://Officejet%20Pro%208500%20A909a%20%5B43FD8E%5D._pdl-datastream._tcp.local/
=================================================================================
atau bangun secara manual - misalnya untuk printer IPP:
ipp://<IP/hostname>:631/ipp/print
dan nama driver - <driver>, misalnya:
$ lpinfo -m .... everywhere IPP Everywhere ========== ...
$ lpadmin -p <name> -v <device_uri> -m <driver> -E
di mana <device_uri> dan <driver> adalah string yang diawali dengan garis bawah dari perintah sebelumnya, dan <name> adalah nama antrian cetak yang Anda pilih.
Cara menginstal printer melalui aplikasi printer di SNAP dan membuatnya tersedia untuk CUPS
Saat ini, aplikasi printer tersedia dalam bentuk SNAP di Fedora. Saya berencana untuk merilisnya sebagai RPM, tetapi basis kode akan tetap sama, sehingga pengujiannya dapat dilakukan bahkan dengan SNAP.
-
instal snapd,
Pertama, kita harus menginstal snapd untuk tujuan pengujian:
$ sudo dnf -y install snapd $ sudo ln -s /var/lib/snapd/snap /snap $ snap version
Jika instalasi berhasil, perintah terakhir akan menampilkan versi snapd.
-
instal dan jalankan aplikasi printer,
Pertama, aplikasi printer SNAP harus diinstal dan dijalankan menggunakan perintah di bawah ini. Semua aplikasi printer tersedia di SNAP Store dengan nama yang sama seperti di OpenPrinting repositories. Kami akan menggunakan aplikasi printer ps-printer-app pada langkah-langkah berikutnya.
$ sudo snapd install --edge ps-printer-app $ sudo snapd run ps-printer-app
-
kunjungi http://localhost:8000,
Setelah memulai aplikasi printer, antarmuka web-nya akan tersedia di http://localhost:8000. Jika pengguna menginstal dan menjalankan aplikasi printer lain, antarmuka web tersebut akan tersedia di localhost pada port berikutnya (8001). Aplikasi printer dapat berisi beberapa printer (seperti yang dilakukan oleh cupsd).
-
klik pada
Tambah Printerdi halaman utama, -
pilih nama printer,
-
pilih perangkat yang ditemukan atau pilih
Printer Jaringandari menu gulirPerangkat, lalu masukkan nama host atau alamat IP perangkat, -
pilih untuk mendeteksi driver secara otomatis atau pilih driver secara manual,
-
klik pada
Tambahkan Printer, -
sekarang printer seharusnya sudah tersedia setidaknya di localhost melalui mDNS (jika
avahi-daemonsedang berjalan dannss-mdnsterinstal) - periksa denganavahi-browse(avahi-toolsharus terinstal):
$ avahi-browse -avrt ... = lo IPv4 HP Laserjet M1536 _ipp._tcp local hostname = [fedora-2.local] address = [127.0.0.1] port = [8000] txt = ["Scan=F" "PaperMax=legal-A4" "Fax=F" "product=(HP LaserJet M1536dnf MFP Postscript (recommended))" "mopria-certified=1.3" "priority=0" "qtotal=1" "txtvers=1" "Duplex=T" "Color=F" "TLS=1.2" "URF=V1.5,W8,PQ3-4-5,DM1,FN3,IS0-20,MT1-5-6-3,OB10,RS300-600" "UUID=24837a30-5f87-3ac9-6d85-086d486092dd" "pdl=image/pwg-raster,image/urf,application/vnd.printer-specific,application/pdf,application/postscript,image/jpeg,image/png" "note=" "adminurl=http://fedora-2.local:8000/HP_Laserjet_M1536/" "ty=HP LaserJet M1536dnf MFP Postscript (recommended)" "rp=ipp/print/HP_Laserjet_M1536"] ...
-
dan dengan
lpstat -e:
$ lpstat -e ... HP_Laserjet_M1536 ...
Opsi pencetakan yang tersedia untuk printer yang diinstal melalui aplikasi printer dapat diperiksa dengan perintah lpoptions:
$ lpoptions -p HP_Laserjet_M1536 -l PageSize/Media Size: 184.15x260mm 195.09x269.88mm A4 A5 B5 DoublePostcardRotated Env10 EnvC5 EnvDL EnvMonarch Executive FanFoldGermanLegal ISOB5 Legal *Letter Postcard roc16k Custom.WIDTHxHEIGHT InputSlot/Media Source: *Auto Tray1 Auto MediaType/Media Type: *Unspecified Stationery Light6074 MidWeight96110 Heavy111130 ExtraHeavy131175 MonochromeLaserTransparency Labels StationeryLetterhead Envelope StationeryPreprinted Prepunched Colored Bond StationeryRecycled Rough Vellum cupsPrintQuality/cupsPrintQuality: Draft *Normal High ColorModel/Output Mode: *Gray Duplex/Duplex: *None DuplexNoTumble DuplexTumble OutputBin/OutputBin: *FaceDown
Cara menginstal pemindai
Pemindai (scanner) di Linux tidak perlu diinstal dengan cara yang sama seperti printer jika mereka berada dalam jaringan yang sama atau terhubung melalui USB - Anda hanya perlu menginstal sane-backends, dan aplikasi pemindaian apa pun akan berkomunikasi dengan pemindai/perangkat multifungsi melalui backend yang mendukung pemindai tersebut.
Namun, pemindai HP dan perangkat multifungsi yang lebih lama memerlukan paket tambahan - hplip - beserta plugin binernya yang harus diunduh melalui perintah hp-plugin -i jika belum didukung oleh sane-backends.
Bagaimana cara mengetahui apakah perangkat multifungsi atau pemindai mandiri saya mendukung pemindaian tanpa driver?
-
periksa spesifikasi perangkat dan cari eSCL/AirScan/WSD - jika salah satu dari ini disebutkan, perangkat tersebut mampu melakukan pemindaian tanpa driver
-
sebagian besar perangkat yang mengiklankan bahwa mereka dapat menggunakan AirPrint juga mampu menggunakan AirScan
-
[Hanya perangkat USB] Periksa (panduan dukungan IPP melalui USB di sini).
Cara membuat pemindaian tanpa driver berfungsi
Untuk perangkat LAN dan USB:
-
pastikan avahi-daemon diaktifkan dan berjalan
$ sudo systemctl enable avahi-daemon $ sudo systemctl start avahi-daemon
-
aktifkan MDNS di firewall
-
[Hanya perangkat USB] instal ipp-usb
Untuk pemindai jaringan di jaringan yang berbeda:
-
tetapkan URI perangkat pemindai di
/etc/sane.d/airscan.conf- lihat:
man sane-airscan
Cara mengonfigurasi mDNS dengan systemd-resolved
systemd-resolved diaktifkan dan berjalan secara default sejak F33 dan dapat dikonfigurasi untuk bekerja dengan Avahi dalam mendukung mDNS yang dibutuhkan oleh CUPS - Avahi menangani pengiklanan, pendaftaran, dan berbagi perangkat, sedangkan resolved akan menangani resolusi alamat ‘.local’. Prosesnya akan berjalan dengan langkah-langkah berikut:
-
tambahkan
MulticastDNS=resolveke dalam/etc/systemd/resolved.conf
$ sudo systemctl restart systemd-resolved $ sudo nmcli connection modify <connection_name> connection.mdns yes connection.llmnr yes $ sudo systemctl restart NetworkManager
Cara mengompres file
Contoh:
$ tar -czvf cups-information.tar.gz /etc/cups cups.logs troubleshoot.txt lpinfo.log
Menghidupkan kembali layanan Cups
Anda dapat me-restart layanan cups dengan:
su -c 'systemctl restart cups.service'
Want to help? Learn how to contribute to Fedora Docs ›