You are not logged in.

#1 2011-08-22 15:17:28

Registered: 2011-08-22
Posts: 22

Compile Canon printer driver - howto decypher the error?

Hi everybody,

since three weeks I am using archlinux and everything till now worked awesome (including awesome), but now I seem to have found my first brainteaser. I was trying to get a network printer a canon mf8450 working. Unfortunately Canon is not the best brand for linux support. They have an extra driver (Ufr2) for this and similar devices with deb and rpm support. Different distro users have to, as usual, compile it from source. (There is an aur package but is way out of date.)
Well that wouldn't be to bad if the source was actually compiling. But the package cndrvcups-lb is notoriously ignoring my attempts. Thanks to the gentoo forums [1] I was able to single out the 'cpca' subfolder as the source of the problem. Sadly the error message is beyond me. It would help me a lot if somebody could tell me what it means or could mean.

(Btw: The requirements shouldn't be a problem let it be alone that my software is to new...)


My commands:

tar zxvf cndrvcups-lb-2.20.tgz
cd cndrvcups-lb-2.20/cpca

the results:

make  all-recursive
make[1]: Entering directory `/home/user/canon/Sources/cndrvcups-lb-2.20/cpca'
Making all in cnpklib
make[2]: Entering directory `/home/user/canon/Sources/cndrvcups-lb-2.20/cpca/cnpklib'
/bin/sh ../libtool --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I..    -O2 -Wall -fPIC -D_UFR2_ -g -O2 -MT cnpklib.lo -MD -MP -MF .deps/cnpklib.Tpo -c -o cnpklib.lo cnpklib.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -O2 -Wall -fPIC -D_UFR2_ -g -O2 -MT cnpklib.lo -MD -MP -MF .deps/cnpklib.Tpo -c cnpklib.c -o cnpklib.o
mv -f .deps/cnpklib.Tpo .deps/cnpklib.Plo
/bin/sh ../libtool --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I..    -O2 -Wall -fPIC -D_UFR2_ -g -O2 -MT cnpkopt.lo -MD -MP -MF .deps/cnpkopt.Tpo -c -o cnpkopt.lo cnpkopt.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -O2 -Wall -fPIC -D_UFR2_ -g -O2 -MT cnpkopt.lo -MD -MP -MF .deps/cnpkopt.Tpo -c cnpkopt.c -o cnpkopt.o
mv -f .deps/cnpkopt.Tpo .deps/cnpkopt.Plo
/bin/sh ../libtool --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I..    -O2 -Wall -fPIC -D_UFR2_ -g -O2 -MT cnpkproc.lo -MD -MP -MF .deps/cnpkproc.Tpo -c -o cnpkproc.lo cnpkproc.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -O2 -Wall -fPIC -D_UFR2_ -g -O2 -MT cnpkproc.lo -MD -MP -MF .deps/cnpkproc.Tpo -c cnpkproc.c -o cnpkproc.o
mv -f .deps/cnpkproc.Tpo .deps/cnpkproc.Plo
/bin/sh ../libtool --tag=CC   --mode=link gcc -O2 -Wall -fPIC -D_UFR2_ -g -O2 -shared -version-info 1:0:0  -o -rpath /usr/lib cnpklib.lo cnpkopt.lo cnpkproc.lo -lbuftool
make[2]: Leaving directory `/home/user/canon/Sources/cndrvcups-lb-2.20/cpca/cnpklib'
libtool: link: can not build a shared library
libtool: link: See the libtool documentation for more information.
libtool: link: Fatal configuration error.
make[2]: *** [] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2

Last edited by magum (2011-08-23 11:48:32)


#2 2011-10-21 16:42:33

Registered: 2011-10-21
Posts: 1

Re: Compile Canon printer driver - howto decypher the error?

I have exactly the same problem. My printer is Canon MF4320d however.

So far I have no idea how to resolve this...


#3 2011-10-27 15:42:04

Registered: 2008-04-09
Posts: 32

Re: Compile Canon printer driver - howto decypher the error?

I got more or less same trouble with canon-cndrv* on the aur so i wrote this PKGBUILD for myself.

Note that this doesn't compile sources, it merely repackages the RPMS from official driver, but it works for me.
Hope it helps wink

# This is an example PKGBUILD file. Use this as a start to creating your own,
# and remove these comments. For more information, see 'man PKGBUILD'.
# NOTE: Please fill out the license field for your package! If it is unknown,
# then please put 'unknown'.

# Maintainer: Vaquerito <>
pkgdesc="canon ufr2 printer driver"
arch=('i686' 'x86_64')
md5sums=() #generate with 'makepkg -g'

build() {

  if [ "$arch" = "i686" ];then
        cd "$srcdir/Linux_UFRII_PrinterDriver_V240_uk_EN/32-bit_Driver/RPM" cndrvcups-common-2.40-2.i386.rpm cndrvcups-ufr2-uk-2.40-2.i386.rpm
  elif [ "$arch" = "x86_64" ];then
         cd "$srcdir/Linux_UFRII_PrinterDriver_V240_uk_EN/64-bit_Driver/RPM" cndrvcups-common-2.40-2.x86_64.rpm cndrvcups-ufr2-uk-2.40-2.x86_64.rpm

  cp -R etc $startdir/pkg/
  cp -R usr $startdir/pkg/


# vim:set ts=2 sw=2 et:


Edit: updated to 2.40

Last edited by vaquerito (2012-01-13 11:52:14)


Board footer

Powered by FluxBB