Canon LBP yazıcımın Ubuntu 14.04 altında çalışmasını sağlayamıyorum


17

Canon'dan Linux CAPT sürücüsü V2.60'ı indirdim ve Ubuntu Software-Center ile 64bit klasör altında listelenen her iki .deb paketini kurdum. Canon yazıcım hala tanınmayacak. Yapmam gereken başka bir şey var mı? Yazıcım USB üzerinden bağlı.

Ubuntu ofisim için harika bir yedek olurdu, ancak ne yazık ki yazıcı desteği olmadan hala Windows'a güveneceğim.

resim açıklamasını buraya girin


Canon'un Linux'a verdiği destek eksikliği nedeniyle Ubuntu'yu suçlamayın.
Rinzwind

@Rinzwind Bence Ubuntu daha iyi destek almak için Canon ile konuşmak için yeterli güce sahip olacaktı.
empedokles

Hayır, orada yanılıyorsun. Basit: Bir işletme olarak Canon para istiyor. Ve Canonical ödemeyecek (şirketin ideallerine aykırı). Ubuntu'da Canon ile ilgili gördüğünüz tüm destek (!) Bir gönüllüden (launchpad launchpad.net/~michael-gruz/+archive/canon-trunk'ta michael gruz ).
Rinzwind

@Rinzwind Buradaki talimatlara göre bir terminal açtım ve "sudo add-apt-repository ppa: michael-gruz / canon-trunk" ve "sudo apt-get update" yaptım. Başka herhangi bir şey?
empedokles

1
PPA kullanılmıyor, Ubuntu 14.04'ü desteklemiyor.
bain

Yanıtlar:


14

Canon CAPT yazıcı sürücüsü kapalı kaynaklıdır ve Canon tarafından sağlanan ikili kütüphaneler i386 için derlenmiştir. Eğer amd64 üzerindeyseniz, önce çoklu arşivlemeyi etkinleştirmeniz ve bazı kütüphaneleri yüklemeniz gerekir:

# amd64 only
dpkg --add-architecture i386
apt-get update
apt-get install libstdc++6:i386 libxml2:i386 zlib1g:i386 libpopt0:i386

Zaten sahip değilseniz bardakları takın:

apt-get install cups

Canon CAPT yazıcı sürücüsünü indirip paketinden çıkarın:

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

Mimarinize bağlı olarak 32 bit veya 64 bit sürücü yükleyin:

  • 32 bit

    dpkg -i Linux_CAPT_PrinterDriver_V260_uk_EN/32-bit_Driver/Debian/*.deb
    
  • 64 bit

    dpkg -i Linux_CAPT_PrinterDriver_V260_uk_EN/64-bit_Driver/Debian/*.deb
    

Şimdi /usr/share/cups/modelyazıcıları tanımlayan ppd dosyalarını arayın ve yazıcınızla eşleşen (veya ona en yakın olan) dosyayı seçin:

# grep -H ModelName /usr/share/cups/model/*.ppd | less
...
/usr/share/cups/model/CNCUPSLBP6018CAPTS.ppd:*ModelName: "Canon LBP6000/LBP6018 CAPT (US)"

Bu durumda CNCUPSLBP6018CAPTS.ppdhangi model LBP6000 ile eşleştiğini seçtik .

Yazıcı ekle:

# lpadmin -p LBP6000 -m CNCUPSLBP6018CAPTS.ppd -v ccp://localhost:59687
# lpadmin -p LBP6000 -E
# ccpdadmin -p LBP6000 -o /dev/usb/lp0

Ve sisteminizi Canon ccpd arka plan programını otomatik olarak başlatacak şekilde yapılandırın:

# update-rc.d ccpd defaults

sorunlar

Canon yazıcı sürücüsüyle ilgili birkaç sorun var:

  • Debian için yapılmış ve desteklenen son Ubuntu sürümü 12.04'tür. Yine de 14.04'te çalışıyor.

  • 32 bit i386 için oluşturulmuş kapalı kaynak ikili kütüphaneleri içerir, bu nedenle amd64 üzerinde (64 bit pakette bile) yerel olarak çalıştırılamaz

  • captstatusui, strcpycnsktmodule.c dosyasına aborted *** buffer overflow detected ***, bazı sistemlerde hata ile başarısız olan sınırsız bir çağrı içerir

  • Canon yazıcı sürücüsü aslında yerel veya ağ soketi üzerinden bardaklarla konuşan ayrı bir arka plan programıdır - sisteminizde açık bir ağ bağlantı noktası bırakır ve Canon kodunun güvenlik açıkları için denetlendiğinden şüpheliyim

  • Yazıcı kaplarda iki kez görünebilir (bir kez otomatik olarak algılanan USB yazıcı için, bir kez Canon CCPD arka plan programı olarak görünebilir), ancak yazdırmaya çalışırsanız "USB" yazıcı çalışmaz. Yazıcı ayarlarında, yazıcınızın USB yazıcı olarak yapılandırıldığını görürseniz, el ile devre dışı bırakmanız gerekir (sağ tıklama, devre dışı bırakma)

  • Canon, yazıcıyla konuşmak için kendi özel yazılımlarını ve protokollerini kullanır, bu nedenle bardaklarla entegre edilmez, otomatik olarak algılanmaz ve bir sürücünün manuel olarak kurulmasını gerektirir. Bir yazıcının otomatik olarak algılanmasını ve sadece çalışmasını beklemek mantıklıdır, ancak Canon LBP ile bu mümkün değildir. Bir sonraki yazıcım , Brother HL-2250DN (ucuz dubleks ağ yazıcısı, daha önce Amazon'un en çok satan lazer yazıcısı) gibi PCL - Yazıcı Komut Dili standardını destekleyen bir ağ yazıcısı olan açık kaynaklı sürücülerle "sadece çalışan" bir yazıcı olacak. veya açık kaynaklı HPLIP yazılımlarıyla çalışan HP Linux tarafından önerilen bir yazıcıdır .

  • Kaynak kod için derleme betikleri eski ve biraz karışık. Kapalı kaynak i386 ikili kitaplıklarının eklenmesi ve yapı komut dosyalarında çok amaçlı desteğin bulunmaması nedeniyle, tam olarak çalışan bir 64 bit sürümünün derlenmesi çok zor olacaktır. 32 bitlik bir sürümü 32 bitlik bir sistemde derlemek, derleme sistemindeki çeşitli hatalar üzerinde çalıştıktan sonra mümkündür.


Sorun: ccpd kilitleniyor

Bazen ccpd kilitleniyor ve sıra "Şu tarihten beri işleniyor ..." diyor

Manuel olarak yeniden başlatmayı deneyin:

pkill -9 -x ccpd
pkill -9 -x captmoncnabc
/etc/init.d/ccpd start
/etc/init.d/ccpd status

Sorun: ccpd çalışmıyor - sistem başladıktan sonra yalnızca bir ccpd işlemi çalışıyor

Normal çalışma için bir sistemde iki ccpd işlemi çalışıyor olmalıdır. Ccpd arka plan programı, ikinci süreci çatallamadan önce kupa arka plan programına bağlıdır. Soruna geçici bir çözüm bulmak için aşağıdaki yöntemi kullanabilirsiniz:

  1. Bardak başlangıç ​​komut dosyasını etkinleştirin (update-rc.d bardak varsayılanları).

  2. Ccpd init betiğine bardaklar başlangıcından sonra çalışmasını söyleyin (update-rc.d ccpd varsayılan 99) veya /etc/rc.local betiğine "sleep 10 && /etc/init.d/ccpd start" ekleyin.

UDEV kurallarını ve başlangıç ​​komut dosyasını kullanmak istiyorsanız, UDEV kurallarının CUPS init komut dosyasından önce yürütüldüğünü unutmayın, bu nedenle yalnızca başlamak yerine ccpd init komut dosyasını yeniden başlatmak yararlı olabilir. Örneğin, "/etc/rc.local" dosyasına aşağıdaki dizeyi yerleştirebilirsiniz:

uyku 10 && /etc/init.d/ccpd yeniden başlatma

( Ubuntu wiki çözümü )


Hataları ve sorunları Canon desteğine bildirme

Canon'un sürücüdeki hataları ve sorunları bildirmek için resmi bir e-posta adresi vardır:

sup-debian@list.canon.co.jp

Kaynaktan derleme

Kaynaktan oluşturmayı ve yüklemeyi denemeye cazipseniz, aşağıdaki talimatları uygulayın ( Arch derleme betiği de yardımcı olabilir):

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

Bu yolu izlemeye meyilli herkes için bir not olarak ekliyorum. Çoğu insan bunu kaynağından inşa etmeye çalışmamalıdır. Bir amd64 sisteminde bile, elde edilen paket kapalı i386 kütüphanelerini içerecektir.


Teşekkürler. Ayrıca her zaman enerji verimliliği ararım. LaserJet Pro P1102 ne olacak? topten.ch/deutsch/buro/laserdrucker/…
empedokles

Göre HPLIP P1102 sayfa yazıcı tamamen Ubuntu 14.04 üzerinde desteklendiğini. İndirilebilir bir kapalı kaynak eklentisi gerektirir; hp-setupindirmeyi yapılandıracak ve yapılandıracak yazılım ( ) sağlarlar .
bain


1
Cevap için teşekkürler! Bu arada, bunun libstdc++6:i386 libxml2:i386 zlib1g:i386gerekli olduğunu nasıl bildin ? Talimatlar ia32-libs, daha sonraki Ubuntu sürümlerinde bulunmadığından bahsetti , bu yüzden değiştirmenin ne olduğunu merak ettim.
syockit

1
@syockit Çalıştırırsanız file canon/libcapt.so, Canon kitaplıklarını "ELF 32-bit" olarak tanımlayacaktır, bu yüzden 32-bit dinamik kitaplıklara ihtiyacı olduğunu biliyoruz. Ldd komutunu şu şekilde çalıştırın ldd canon/libcapt.so- bağlayıcı gerekli dinamik kitaplıkları yazdırır ve bulunmayanları gösterir. Daha sonra apt-file search libpthread.sokütüphanelerin bulunduğu paketi bulmak için kullanabilirsiniz .
bain
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.