我家的打印机是一台比较老的Dell B1260dn激光打印机,虽然可以网络打印,但还是需要驱动,在Windows操作系统上很容易就能下载到驱动。但在Linux上就没有那么方便了,我曾试过用别的品牌或是Dell自己的其余驱动蒙混过关,但即使偶尔打出来,不是乱码,就是格式不对,还有时会死循环,一直不停地乱打一气,只能拔电才停。
我于是从戴尔官网上下载了一个2013版的For RedHat Linux的驱动:
B1260dn_Linux_v1.3_Driver.tar.gz
试着在Deepin 15.11和UOS2.0上,以及Ubuntu, Manjaro上安装,因为不是源码,安装上去了,界面很老土,且配置界面一运行就报错。也难怪,这都是很多年前的二进制文件,跟现在的内核版本,Linux发行版也不兼容。
一筹莫展之下,我进行了如下操作,就是一点点Track,看看系统到底需要哪个文件才能驱动。
先是发现其实只要一个ppd文件,我先到解压下的原始驱动包下找到:
/cdroot/Linux/noarch/at_opt/share/ppd/B1260dn.ppd
输入打印机地址:
ipp://192.168.12.201/ipp/printer
再手动添加驱动时选上这个文件,一下子就装上了。
刚得意了一下,可一打印,还是报错,根本打不出来。
于是我找到:
/var/log/cups/error_log
文件,发现报了如下的错:
printer: 文件"/usr/lib/cups/filter/pstospl"不可用: No such file or directory
于是我到解压的驱动下找到:
/cdroot/Linux/x86_64/pstospl
将其拷贝到:
/usr/bin/cups/filter
目录下,再试,还不行。
我在
/usr/bin/cups/filter
目录下运行:
ldd pstospl
发现:
libscmssc.so => not found
再到解压后的驱动包里找到:
/cdroot/Linux/x86_64/libscmssc.so
将libscmssc.so拷贝到/lib目录下。
再打印,成功了!
我想其余找不到Linux驱动的打印机大概都可以这么试一下。