Driver printer CAPT Canon adalah sumber tertutup dan perpustakaan biner yang disediakan oleh Canon dikompilasi untuk i386. Jadi jika Anda menggunakan amd64, Anda harus terlebih dahulu mengaktifkan multiarch dan menginstal beberapa perpustakaan:
# amd64 only
dpkg --add-architecture i386
apt-get update
apt-get install libstdc++6:i386 libxml2:i386 zlib1g:i386 libpopt0:i386
Pasang cangkir jika Anda belum memilikinya:
apt-get install cups
Unduh dan buka paket driver printer Canon CAPT:
wget http://gdlp01.c-wss.com/gds/6/0100004596
tar -zxvf Linux_CAPT_PrinterDriver_V260_uk_EN.tar.gz/03/Linux_CAPT_PrinterDriver_V260_uk_EN.tar.gz
Instal driver 32-bit atau 64-bit tergantung pada arsitektur Anda:
Sekarang cari /usr/share/cups/model
file ppd yang menggambarkan printer dan pilih salah satu yang cocok (atau paling dekat dengan) printer Anda:
# grep -H ModelName /usr/share/cups/model/*.ppd | less
...
/usr/share/cups/model/CNCUPSLBP6018CAPTS.ppd:*ModelName: "Canon LBP6000/LBP6018 CAPT (US)"
Dalam hal ini kami memilih CNCUPSLBP6018CAPTS.ppd
model mana yang cocok dengan LBP6000.
Tambahkan printer:
# lpadmin -p LBP6000 -m CNCUPSLBP6018CAPTS.ppd -v ccp://localhost:59687
# lpadmin -p LBP6000 -E
# ccpdadmin -p LBP6000 -o /dev/usb/lp0
Dan konfigurasikan sistem Anda untuk memulai daemon Canon ccpd secara otomatis:
# update-rc.d ccpd defaults
Masalah
Ada beberapa masalah dengan driver printer Canon:
Itu dibangun untuk Debian dan versi Ubuntu yang didukung terakhir adalah 12,04. Itu bekerja di 14,04 sekalipun.
Ini termasuk perpustakaan biner sumber tertutup yang dibangun untuk i386 32-bit, jadi tidak dapat dijalankan secara native di amd64 (bahkan dalam paket 64-bit)
captstatusui termasuk panggilan tidak terbatas ke strcpy
dalam cnsktmodule.c yang gagal dengan kesalahan aborted *** buffer overflow detected ***
pada beberapa sistem
Driver printer Canon sebenarnya adalah daemon terpisah yang berbicara dengan cangkir melalui soket lokal atau jaringan - ia meninggalkan port jaringan terbuka di sistem Anda, dan saya ragu kode Canon pernah diaudit untuk kerentanan keamanan
Printer dapat muncul dua kali dalam gelas (satu kali untuk printer USB yang terdeteksi secara otomatis, sekali sebagai daemon Canon CCPD) tetapi printer "USB" tidak akan berfungsi jika Anda mencoba dan mencetaknya. Dalam pengaturan printer, jika Anda melihat printer Anda dikonfigurasikan sebagai printer USB, Anda harus menonaktifkannya secara manual (klik kanan, nonaktifkan)
Canon menggunakan perangkat lunak dan protokol milik mereka sendiri untuk berbicara dengan printer, itulah sebabnya mengapa printer tidak terintegrasi dengan gelas, tidak terdeteksi secara otomatis, dan mengharuskan driver dipasang secara manual. Masuk akal untuk berharap bahwa printer harus secara otomatis terdeteksi dan hanya berfungsi, tetapi ini tidak mungkin dengan Canon LBP. Printer saya berikutnya adalah printer yang "hanya berfungsi" dengan driver open source, mungkin printer jaringan yang mendukung PCL - standar Bahasa Perintah Printer , seperti Brother HL-2250DN (printer jaringan duplex murah, yang sebelumnya merupakan printer laser terlaris di Amazon) , atau printer yang direkomendasikan oleh HP Linux yang bekerja dengan HPLIP open source mereka perangkat lunak .
Skrip build untuk kode sumber sudah tua dan sedikit berantakan. Karena dimasukkannya pustaka sumber tertutup i386 sumber tertutup, dan kurangnya dukungan untuk multiarch dalam skrip build, akan sangat sulit untuk mengkompilasi rilis 64-bit yang berfungsi penuh. Mengkompilasi rilis 32-bit, pada sistem 32-bit, dimungkinkan setelah Anda mengatasi berbagai bug dalam sistem build.
Masalah: ccpd hang
Terkadang ccpd hang dan antrian hanya mengatakan "Memproses sejak ..."
Coba mulai ulang secara manual:
pkill -9 -x ccpd
pkill -9 -x captmoncnabc
/etc/init.d/ccpd start
/etc/init.d/ccpd status
Masalah: ccpd tidak berfungsi - hanya satu proses ccpd yang berjalan setelah sistem dinyalakan
Untuk operasi normal, dua proses ccpd harus dijalankan dalam suatu sistem. Daemon ccpd tergantung pada menjalankan daemon cangkir sebelum melakukan proses kedua. Anda dapat menggunakan metode berikut untuk menyelesaikan masalah:
Aktifkan skrip init cups (perbarui-rc.d default cups).
Instruksikan skrip init ccpd untuk menjalankan setelah cawan init (perbarui-rc.d ccpd default 99), atau tambahkan "sleep 10 && /etc/init.d/ccpd start" di skrip /etc/rc.local.
Jika Anda ingin menggunakan aturan UDEV dan skrip startup, perlu diketahui bahwa aturan UDEV dijalankan sebelum skrip init CUPS, jadi mungkin berguna untuk me-restart skrip init ccpd daripada hanya memulai. Misalnya, Anda dapat menempatkan string berikut di "/etc/rc.local":
sleep 10 && /etc/init.d/ccpd restart
(Solusi dari
wiki Ubuntu )
Melaporkan bug dan masalah ke dukungan Canon
Canon memiliki alamat email resmi untuk melaporkan segala bug dan masalah dengan pengemudi:
sup-debian@list.canon.co.jp
Bangun dari sumber
Jika Anda tergoda untuk mencoba membangun dan menginstal dari sumber, ikuti petunjuk ini ( skrip pembuatan Arch juga dapat membantu):
sudo apt-get install build-essential automake libtool libgtk2.0-dev libglade2-dev libcups2-dev
wget http://gdlp01.c-wss.com/gds/6/0100004596/03/Linux_CAPT_PrinterDriver_V260_uk_EN.tar.gz
tar -zxvf Linux_CAPT_PrinterDriver_V260_uk_EN.tar.gz
cd Linux_CAPT_PrinterDriver_V260_uk_EN/Src/
# do cndrvcups-common
sudo apt-get install build-essential automake libtool libgtk2.0-dev libglade2-dev libcups2-dev
rm -rf cndrvcups-common-2.60-1/
tar -zxvf cndrvcups-common-2.60-1.tar.gz
cd cndrvcups-common-2.60-1/
sed -i -e 's/-lcups/-lcups -lgmodule-2.0/' cngplp/src/Makefile.am
dpkg-buildpackage -b -uc
cd ..
sudo apt-get install cups
sudo dpkg -i cndrvcups-common_2.60-1_amd64.deb
# do cndrvcups-capt
rm -rf cndrvcups-capt-2.60-1/
tar -zxvf cndrvcups-capt-2.60-1.tar.gz
cd cndrvcups-capt-2.60-1/
export echo=echo
sed -i -e 's/dh_shlibdeps/dh_shlibdeps --dpkg-shlibdeps-params=--ignore-missing-info/' debian/rules
sed -i -e 's/eval cmds=\"$old_archive_cmds/echo/' cngplp/ltmain.sh
sed -i -e 's:uimain.h":uimain.h"\n#include <cups/ppd.h>:' statusui/src/ppapdata.c
sed -i -e 's/cnsktmodule.la/cnsktmodule.la -lpthread/' statusui/src/Makefile.am
debian/rules configure
sed -i -e 's/RANLIB=/#RANLIB=/' cngplp/libtool
debian/rules build
fakeroot debian/rules install
fakeroot debian/rules binary-arch
cd ..
sudo dpkg -i cndrvcups-capt_2.60-1_amd64.deb
Saya memasukkan ini hanya sebagai catatan bagi siapa saja yang cenderung mengikuti jalan ini. Kebanyakan orang seharusnya tidak berusaha membangun ini dari sumber. Bahkan pada sistem amd64, paket yang dihasilkan akan menyertakan pustaka i386 tertutup.