飞牛NAS(Ubuntu)驱动Canon LBP2900+打印机并局域网共享

2026年08月18日 24点热度 0人点赞 0条评论

目录

Canon LBP2900+ 使用专有的 CAPT(Canon Advanced Printing Technology)协议,不能直接用通用 PCL/IPP 驱动。官方驱动是 32 位闭源程序 captfilter,在 64 位系统上依赖 32 位库 libc6 和 libpopt0,且官方驱动对新版 Ubuntu 的兼容性已基本丢失(最后官方兼容版本是 Ubuntu 14.04),这里决定使用captdriver(开源驱动)方式。

captdriver 是自由开源的 CAPT 替代驱动,mounaiban 分叉正是专为维护 LBP3000(LBP2900+) 支持而创建的,已在 x86-64 的 Debian 10.6/10.7、Fedora 32 上验证通过。安装分四步 :

第一步:准备编译环境

sudo apt install build-essential automake libcups2-dev libcupsimage2-dev git cups-ppdc cups-bsd cups

 

第二步:下载并编译源码

git clone https://github.com/mounaiban/captdriver.git captdriver
cd captdriver
aclocal
autoconf
automake --add-missing
./configure
make
make ppd

编译成功后会在 src/ 目录生成 rastertocapt 二进制文件,在 ppd/ 目录生成 PPD 文件。

 

第三步:安装到 CUPS 过滤器目录

sudo make install
sudo cp -p /usr/local/bin/rastertocapt $(cups-config --serverbin)/filter/

CUPS 出于安全原因只运行 root 所有、对其他用户只读可执行的过滤器,make install 已处理好权限。

 

第四步:配置打印机

确保打印机已连接并开机,然后获取 URI:

sudo lpinfo -v

# 找到类似:direct usb://Canon/LBP3000?serial=0000A3D6NBB6 的行

添加打印机:

sudo lpadmin -p 'LBP3000' \
-v usb://Canon/LBP3000?serial=0000A3D6NBB6 \
-P ppd/CanonLBP-2900-3000.ppd \
-L '办公室' -E

设为默认打印机:

sudo lpadmin -d 'LBP3000'

修改CUPS参数:

sudo nano /etc/cups/cupsd.conf

首先将下面代码中的 localhost 改为 0.0.0.0

Listen localhost:631

然后在以下 4 段代码中加入 Allow all,加完效果如下:

# Restrict access to the server...
<Location />
Order allow,deny
Allow all
</Location>

# Restrict access to the admin pages...
<Location /admin>
Order allow,deny
Allow all
</Location>

# Restrict access to configuration files...
<Location /admin/conf>
AuthType Default
Require user @SYSTEM
Order allow,deny
Allow all
</Location>

# Restrict access to log files...
<Location /admin/log>
AuthType Default
Require user @SYSTEM
Order allow,deny
Allow all
</Location>

将飞牛用户加入管理员权限(不加后面无法进入cups管理员界面)

sudo usermod -a -G lpadmin 您的用户名

重启cups

systemctl start cups

开机启动cups

systemctl enable cups

 

测试打印机

方法一:通过 CUPS Web 界面打印测试页(推荐)
在浏览器中打开:

https://localhost:631

或:

https://<你的服务器IP>:631

 

直接打印一个简单文本文件

echo "Hello, Canon LBP3000 test page from Ubuntu CUPS" | lp -d LBP3000

 

打印任意已有的文本文件:

lp -d LBP3000 /etc/hostname

 

生成一个简单的 PostScript 文件再打印

echo '%!PS
/Helvetica findfont 24 scalefont setfont
72 700 moveto
(Canon LBP3000 Test Page) show
showpage' > /tmp/test.ps

lp -d LBP3000 /tmp/test.ps

 

验证打印队列状态

lpstat -p LBP3000 # 查看打印机状态
lpstat -o # 查看排队中的作业

如果打印机已就绪,作业应该很快出纸。如果作业卡在队列中不出纸,可以用 lpstat -o 查看状态,然后用 cancel -a LBP3000 清除队列,再检查 USB 连接和 captdriver 的安装是否正确。

如果一切正常,现在就能通过电脑增加网络打印机,或直接在手机上使用网络打印机了。

路灯

这个人很懒,什么都没留下

文章评论