Sterownik drukarki Canon CAPT jest zamkniętym źródłem, a biblioteki binarne dostarczone przez firmę Canon są kompilowane dla i386. Więc jeśli korzystasz z amd64, musisz najpierw włączyć multiarch i zainstalować kilka bibliotek:
# amd64 only
dpkg --add-architecture i386
apt-get update
apt-get install libstdc++6:i386 libxml2:i386 zlib1g:i386 libpopt0:i386
Zainstaluj kubki, jeśli jeszcze go nie masz:
apt-get install cups
Pobierz i rozpakuj sterownik drukarki 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
Zainstaluj sterownik 32-bitowy lub 64-bitowy w zależności od architektury:
Teraz poszukaj /usr/share/cups/model
plików ppd, które opisują drukarki i wybierz ten, który pasuje (lub jest najbliższy) do Twojej drukarki:
# grep -H ModelName /usr/share/cups/model/*.ppd | less
...
/usr/share/cups/model/CNCUPSLBP6018CAPTS.ppd:*ModelName: "Canon LBP6000/LBP6018 CAPT (US)"
W tym przypadku wybraliśmy CNCUPSLBP6018CAPTS.ppd
model LBP6000.
Dodaj drukarkę:
# lpadmin -p LBP6000 -m CNCUPSLBP6018CAPTS.ppd -v ccp://localhost:59687
# lpadmin -p LBP6000 -E
# ccpdadmin -p LBP6000 -o /dev/usb/lp0
I skonfiguruj system, aby automatycznie uruchamiał demona Canon ccpd:
# update-rc.d ccpd defaults
Problemy
Istnieje kilka problemów ze sterownikiem drukarki Canon:
Został zbudowany dla Debiana, a ostatnia obsługiwana wersja Ubuntu to 12.04. Jednak działa w 14.04.
Zawiera zamknięte biblioteki binarne, które są zbudowane dla 32-bitowej wersji i386, więc nie można jej uruchamiać natywnie na amd64 (nawet w pakiecie 64-bitowym)
captstatusui zawiera nieograniczone wywołanie strcpy
w pliku cnsktmodule.c, które nie działa z błędem aborted *** buffer overflow detected ***
w niektórych systemach
Sterownik drukarki Canon jest w rzeczywistości osobnym demonem, który komunikuje się z kubkami przez gniazdo lokalne lub sieciowe - pozostawia otwarty port sieciowy w twoim systemie i wątpię, aby kod Canon był kiedykolwiek sprawdzany pod kątem luk w zabezpieczeniach
Drukarka może pojawić się dwa razy w filiżankach (raz dla automatycznie wykrywanej drukarki USB, raz jako demon Canon CCPD), ale drukarka „USB” nie będzie działać, jeśli spróbujesz na niej wydrukować. W ustawieniach drukarki, jeśli widzisz drukarkę skonfigurowaną jako drukarka USB, musisz ją ręcznie wyłączyć (kliknij prawym przyciskiem myszy, wyłącz)
Firma Canon używa własnego oprogramowania i protokołu do komunikacji z drukarką, dlatego nie jest zintegrowana z kubkami, nie jest automatycznie wykrywana i wymaga ręcznej instalacji sterownika. Można oczekiwać, że drukarka powinna zostać automatycznie wykryta i działać, ale nie jest to możliwe w przypadku Canon LBP. Moja następna drukarka to drukarka, która „po prostu działa” ze sterownikami typu open source, prawdopodobnie drukarka sieciowa obsługująca standard PCL - Printer Command Language , np. Brother HL-2250DN (tania dupleksowa drukarka sieciowa, wcześniej najlepiej sprzedająca się drukarka laserowa Amazon) lub zalecana drukarka HP Linux, która współpracuje z oprogramowaniem HPLIP typu open source .
Skrypty kompilacji kodu źródłowego są stare i trochę bałaganu. Ze względu na włączenie bibliotek binarnych i386 o zamkniętym źródle oraz brak obsługi wielu skryptów w skryptach kompilacji bardzo trudno byłoby skompilować w pełni działającą wersję 64-bitową. Kompilacja wersji 32-bitowej w systemie 32-bitowym jest możliwa po obejściu różnych błędów w systemie kompilacji.
Problem: ccpd zawiesza się
Czasami ccpd zawiesza się, a kolejka mówi po prostu „Przetwarzanie od ...”
Spróbuj ręcznie uruchomić ponownie:
pkill -9 -x ccpd
pkill -9 -x captmoncnabc
/etc/init.d/ccpd start
/etc/init.d/ccpd status
Problem: ccpd nie działa - tylko jeden proces ccpd działa po uruchomieniu systemu
Do normalnej pracy w systemie powinny działać dwa procesy ccpd. Demon ccpd zależy od uruchomienia demona cup przed rozwarciem drugiego procesu. Aby obejść problem, możesz użyć następującej metody:
Włącz skrypt inicjujący puchary (ustawienia domyślne pucharów update-rc.d).
Poinstruuj skrypt inicjujący ccpd, aby uruchomił się po init init (update-rc.d ccpd domyślnie 99), lub dodaj „sleep 10 && /etc/init.d/ccpd start” w skrypcie /etc/rc.local.
Jeśli chcesz korzystać z reguł UDEV i skryptu uruchamiania, pamiętaj, że reguły UDEV działają przed skryptem inicjującym CUPS, więc może być przydatne zrestartowanie skryptu inicjującego ccpd, a nie po prostu uruchomienie. Na przykład możesz umieścić następujący ciąg w „/etc/rc.local”:
sleep 10 && /etc/init.d/ccpd restart
(Rozwiązanie z
wiki Ubuntu )
Zgłaszanie błędów i problemów do pomocy technicznej Canon
Firma Canon ma oficjalny adres e-mail do zgłaszania wszelkich błędów i problemów ze sterownikiem:
sup-debian@list.canon.co.jp
Kompiluj ze źródła
Jeśli masz ochotę zbudować i zainstalować ze źródła, postępuj zgodnie z tymi instrukcjami ( skrypt kompilacji Arch może również pomóc):
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
Zamieszczam to jako notatkę dla każdego, kto jest skłonny podążać tą ścieżką. Większość ludzi nie powinna próbować budować tego ze źródła. Nawet w systemie amd64 powstały pakiet będzie zawierał zamknięte biblioteki i386.