Debian ARM dan Brother DCP195C dengan CUPS

5

Saya ingin memiliki akses ke printer (Brother) DCP 195C saya melalui LAN. Untuk tujuan ini saya telah membeli pi raspberry dan menginstal CUPS di atasnya. CUPS berjalan dengan baik dan yang lainnya berjalan lancar juga. Masalah saya adalah bahwa saya tidak dapat menginstal driver yang diberikan saudara (hanya untuk x86 dan x64) pada pi saya. Apakah ada opsi yang saya lewatkan untuk menginstal driver pada pi saya?

Sven Niehus
sumber

Jawaban:

3

Pendek: Anda harus mengekstrak file ppd dari driver linux

panjang:

PERTAMA

KEDUA

  • Buka cangkir antarmuka web via https://192.168.1.2:631/admin [ganti ip dengan pi]
  • Klik "Tambah Printer" Pilih "Brother DCP-195C (Brother DCP-195C)" dan tekan "lanjutkan"
  • Edit informasi yang akan datang jika perlu, periksa "berbagi printer" dan tekan "terus"
  • Dalam "Atau berikan File-PPD" browse ke yang diekstraksi File "brother_dcp195c_printer_en.ppd" dan unggah. Ikuti yang berikutnya langkah ... dilakukan

Setelah itu, printer tersedia, tetapi dengan kesalahan: "File" / usr / lib / cups / filter / brlpdwrapperdcp195c "tidak tersedia" Karena saya menginstal driver pada Laptop Ubuntu saya, saya cukup menyalin file dari Laptop saya di / usr / lib / cups / filter / ke pi

Setelah ini, laptop saya dapat menemukan printer

Murmel
sumber
Terima kasih atas jawabannya! Saya akan mencoba ini dan melaporkan jika saya berhasil dengan solusi Anda.
Sven Niehus
Maaf butuh waktu lama untuk menjawab, tetapi saya harus menginstal Debian di VM, karena saya menggunakan Windows. Solusi Anda berhasil. Terima kasih terbaik!
Sven Niehus
Karena tampaknya merupakan masalah umum yang harus disalin dari file driver dari komputer lain ke kartu SD Raspberry: bisakah seseorang berbagi file drivernya? Saya kira beberapa orang akan menghargai itu.
tidak berfungsi seperti yang dijelaskan, tetapi terima kasih atas tautannya: menginstal file .deb memecahkan masalah (elementary.io OS / freya)
avp
Langkah apa yang Anda ambil?
Murmel
2

Anda bisa membuat driver i386 bekerja pada Raspberry Pi melalui emulasi, meskipun ia memiliki set instruksi yang berbeda. Ini sangat lambat dan butuh beberapa menit hingga hasil cetak tiba, tetapi berhasil.

Saya menemukan petunjuk di posting forum ini: https://www.raspberrypi.org/forums/viewtopic.php?f=28&t=15526&start=25#p708038

Langkah 1: Instal driver seperti yang diperintahkan pada dokumentasi Brother

Anda harus memiliki direktori seperti /opt/brother/Printers/dcp195c/lpd dengan biner filter brdcp195cfilter. Biner ini disebut oleh filterdcp195c skrip shell tepat di sebelahnya di direktori yang sama.

Saya percaya mereka menawarkan skrip instalasi sekarang, tetapi saya melakukannya tanpa. Ada instruksi di suatu tempat yang perlu diinstal sebelumnya.

Langkah 2: Dapatkan emulasi i386 berfungsi

Ini mengikuti langkah-langkah di https://wiki.debian.org/QemuUserEmulation

Pada akhir langkah 2, Anda harus dapat menjalankan binari i386 seperti binari biasa. Di ps ax, mereka akan menunjukkan

Instal Qemu

Instal paket qemu, binfmt-support dan qemu-user-static.

Menjalankan update-binfmts --display untuk melihat format biner mana yang didukung. Mereka harus diaktifkan secara otomatis pada Raspbian dan Debian.

Instal pustaka dukungan x86

Di Raspbian, tambahkan baris seperti ini ke Anda /etc/apt/sources.list:

## Debian i386
deb [arch=i386] http://http.debian.net/debian stable main contrib non-free

Repositori Debian lain juga akan dilakukan.

Repositori Raspbian tidak memiliki binari x86, jadi tambahkan [arch=armhf] baris ke baris yang ada mulai dengan deb. Baris dimulai dengan deb-src bisa dijaga apa adanya.

Beri tahu Raspbian bahwa Anda menginginkan sistem multiarch dengan paket i386, dan dapatkan libc i386. Untuk update langkah untuk bekerja, Anda harus mengimpor dan mempercayai kunci GPG Debian untuk manajemen paket.

sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install libc6:i386

Pada titik ini, Anda harus dapat menjalankan brdcp195cfilter biner yang disertakan dengan driver:

$ ./brdcp195cfilter 
ERROR: ld.so: object '/usr/lib/arm-linux-gnueabihf/libarmmem.so' from /etc/ld.so.preload cannot be preloaded (cannot open shared object file): ignored.
Error: invalid option !!

Jika Anda melihat output ini, itu berhasil. Itu Error: invalid option !! garis adalah brdcp195cfilter mengeluh bahwa Anda harus melewati argumen.

Opsional: Hapus ld.so pesan eror

Penggunaan raspbian /etc/ld.so.preload untuk memuat sebelumnya libarmmem perpustakaan ke dalam semua proses. Perpustakaan menggantikan beberapa rutinitas memori yang mahal dengan rutin yang lebih cepat yang ditulis dalam perakitan ARM, tetapi tidak sepenuhnya diperlukan untuk menjalankan Raspbian.

Aman untuk mengabaikan peringatan, tetapi juga aman untuk menghapus atau berkomentar dari garis itu /etc/ld.so.preload. Peringatan akan muncul di log kesalahan CUPS jika tidak dinonaktifkan.

Langkah 3: Dapatkan ini berfungsi dengan CUPS

Anda harus memiliki instalasi CUPS agar tidak mengikuti instruksi dari situs web Brother.

Koneksi USB tidak stabil

Di Raspberry saya, the dmesg log berganti-ganti dengan cepat di antara baris-baris ini di beberapa titik:

[58981.586842] usblp0: removed
[59222.794260] usblp 1-1.3:1.0: usblp0: USB Bidirectional printer dev 8 if 0 alt 0 proto 2 vid 0x04F9 pid 0x0222

Apa yang diperbaiki bagi saya adalah untuk pergi ke localhost:631 (antarmuka web CUPS) dan memodifikasi printer di bagian "Pencetak" sehingga menggunakan perangkat USB yang diakui CUPS daripada usb://dev/usb/lp0 alat.

Biarkan printer menerima data dengan kecepatan normal

brdcp195cfilter adalah langkah dalam proses pencetakan yang menerima bitmap input besar, dan mengubahnya menjadi sesuatu yang kemudian disalurkan ke perangkat printer. Saya mengukur ukuran input ~ 90MB untuk pesan "Hello world" sederhana di bagian atas halaman.

Emulasi pada Raspberry tidak cukup cepat untuk mengimbangi memberi makan printer dengan data. Pencetakannya berhasil, tetapi saya mendengar suara tidak sehat dari motor printer sedang aktif saat menunggu data.

Untuk memperbaikinya, instal utilitas sponge dari moreutils paket dan edit filterdcp195c sehingga output dari $BRCONV $BRCONV_OP (a.k.a. brdcp195cfilter ) disalurkan melalui pipa sponge. Seharusnya ada tiga baris dalam kasus "PostScript", "PDF" dan "*" di akhir file, berakhir dengan ... | $BRCONV $BRCONV_OP | sponge.

Apa yang dilakukan adalah dengan melahap semua output dari proses konverter yang berjalan lama dan hanya mengirimkannya ke printer secara bersamaan ketika konverter selesai. Dengan begitu, perlu waktu lebih lama hingga pencetakan dimulai, tetapi printer menerima datanya dengan kecepatan normal.

( sponge menyimpan data yang buffer dalam direktori sementara, jadi Anda tidak dibatasi oleh RAM Raspberry Pi)

Günther Noack
sumber
Saya akan tertarik untuk mendengar bagaimana segala sesuatunya bekerja untuk Anda. Saya mengalami masalah yang tidak berhubungan selama instalasi dengan modul kernel tidak ditemukan yang mungkin menyebabkan beberapa masalah bagi saya dengan qemu persaingan tidak langsung bekerja. Tolong koreksi saya jika saya salah.
Günther Noack