Pasang printer di / dev / usb dan masih menggunakan CUPS

12

Karena versi CUPS baru, saya tiba-tiba kehilangan jalur langsung ke printer saya yang sebelumnya tersedia di bawah /dev/usb/lpXXX. Saya menggunakan ini untuk mencetak langsung dari baris perintah. echo "test" > /dev/usb/lp0.

Setelah mencari saya menemukan cara untuk memperbaikinya, dengan berkomentar blacklist usblpdi /etc/modprobe.d/blacklist.conf. Ini memang berfungsi, tetapi jika saya melakukannya CUPS tidak akan lagi dapat berkomunikasi dengan printer apa pun (dan saya memang membutuhkannya). Jadi bagaimana saya bisa memiliki semacam jalur langsung ke printer saya, dan masih ada CUPS yang berfungsi?

CATATAN: beberapa printer (tanda terima) tidak dikenali oleh CUPS, jadi lprtidak akan berfungsi untuk itu.

imz - Ivan Zakharyaschev
sumber
Archwiki memiliki beberapa paragraf tentang masalah ini , pada akhirnya mereka menyarankan untuk menggunakan usblpmodul untuk memuat firmware (misalnya cat sihp1020.dl > /dev/usb/lp0) dan rmmodsesudahnya . (Jelek, memang.)
sr_
Untuk referensi di masa mendatang, saya mengonfirmasi bahwa DEVICE_URI="usb://HP/LaserJet%20102?serial=XYZ" /usr/lib/cups/backend/usb 1 1 1 1 '' ~/sihp1020.dlini adalah libusbcara yang tepat untuk mengirim firmware ke printer yang membutuhkannya (dan, menggunakan usblp, membuatnya dikirim melalui cat sihp1020.dl > /dev/usb/lp0sebelum). Ini juga dapat digunakan untuk mengirim file sewenang-wenang ke printer USB, sehingga OP dapat mencobanya.
sr_
Hal lain untuk dicoba, menurut ini , mungkin ada cara untuk menggunakan CUPS dengan usblpmodul, dengan mengonfigurasinya untuk digunakan file:/dev/usb/lp0 sebagai gantinya usb:/dev/usb/lp0 .
sr_

Jawaban:

1

Saya dapat mengkonfirmasi bahwa solusi di atas berfungsi dengan baik untuk saya. Saya menggunakan OpenWRT dengan CUPS untuk mencetak melalui router (TL-WR1043ND). Saya menggunakan HP Laserjet P1005. Yang ini membutuhkan firmware yang diunggah setiap kali dihidupkan. Saya memasukkan firmware /usr/libdan menggunakan perintah berikut:

DEVICE_URI="usb://HP/HP%20LaserJet%20P1005?serial=BB0417Y" /usr/lib/cups/backend/usb 1 1 1 1 '' /usr/lib/sihpP1005.dl

Di mana usb://HP/HP%20LaserJet%20P1005?serial=BB0417Yperlu diganti dengan milik Anda. Anda dapat menemukannya dengan menggunakan perintah / usr / lib / cups / backend / usb.

Bas
sumber
0

Apa versi CUPS dan distribusi Anda? Sejak 1.4.x, CUPS dapat digunakan libusbuntuk berbicara dengan node perangkat USB alih-alih melewatinya lpusb.

singkat
sumber
0

Bisakah Anda mencantumkan merek dan model printer Anda? Juga, apa distribusimu? Juga, apa versi CUPS Anda? Saya tidak jelas apa masalah yang dijelaskan dalam paragraf pertama. Anda dapat mengatur pencetakan dengan CUPS melalui USB. Ini (biasanya) bukan masalah besar. Bisakah Anda menguraikan bagaimana Anda mengaturnya? Perhatikan bahwa CUPS memiliki lprutilitas, yang dalam Debian setidaknya ada dalam cups-bsdpaket, dan dapat digunakan untuk mencetak dari baris perintah, menggunakan CUPS sebagai backend, dengan cara yang biasa, yaitu lpr filename.

Biasanya ketika USB sudah diatur, Anda /etc/cups/printers.confakan terlihat seperti ini. Printer saya saat ini menggunakan USB.

# Printer configuration file for CUPS v1.4.4
# Written by cupsd
# DO NOT EDIT THIS FILE WHEN CUPSD IS RUNNING
<DefaultPrinter SamsungLaser>
Info SamsungLaser
MakeModel Samsung ML-2850 Series PS
DeviceURI usb://Samsung/ML-2850%20Series
[...]

Ini biasanya diatur menggunakan perintah command-line lpadmin. Perintahnya terlihat seperti ini:

/usr/sbin/lpadmin -p printer -E -v device -P ppd_file

Jalankan ini sebagai root atau pengguna dalam lpadmingrup. Dalam perangkat ini usb://something. Untuk menemukan perangkat USB yang sesuai dengan printer Anda, coba

lpinfo -l -v

Tentu saja Anda perlu memastikan sudah terhubung dan dihidupkan. Seseorang menyarankan untuk berlari /usr/lib/cups/backend/usb, yang juga bekerja untuk saya. Tetapi lpinfolebih standar. Bagaimana Anda bisa menggunakannya /dev/usb/lpXXX?

Di komputer saya, saya mendapatkan output berikut:

/usr/lib/cups/backend/usb

DEBUG: list_devices_libusb
DEBUG: usb_find_busses=2
DEBUG: usb_find_devices=5
direct usb://Samsung/ML-2850%20Series "Samsung ML-2850 Series" "Samsung ML-2850 Series" "MFG:Samsung;CMD:PCL5E,PCL6,POSTSCRIPT;MDL:ML-2850 Series;CLS:PRINTER;STATUS:BUSY;" ""

Anda dapat memeriksa Manual Adminstrator Perangkat Lunak CUPS untuk informasi lebih lanjut. Apple telah melakukan sesuatu yang aneh dengan dokumentasi untuk versi CUPS yang lebih baru, jadi ini untuk CUPS 1.1 tetapi masih harus valid.

Catatan: Saya tidak akan memulai modul daftar hitam kecuali Anda benar-benar yakin itu masalahnya.

Faheem Mitha
sumber