Canon LBP2900 là dòng máy in laser quốc dân tại các văn phòng Việt Nam nhờ độ bền vượt trội và chi phí hộp mực rẻ. Tuy nhiên, khi kết nối với Linux Mint 22 nền tảng Ubuntu 24.04 LTS, thiết bị thường xuyên rơi vào trạng thái nhận lệnh nhưng không in.
Nguyên nhân bắt nguồn từ cơ chế quản lý tiến trình của Canon Capt Filter (ccpd) không tự khởi động đồng bộ cùng hệ thống in ấn CUPS. Ngoài ra, xung đột quyền truy cập trên cổng USB cũng khiến lệnh in bị kẹt vô thời hạn trong hàng đợi.
Nếu máy tính của bạn hoàn toàn chưa nhận driver CAPT, hãy tham khảo lại bài viết hướng dẫn cài máy in Canon LBP2900 trên Linux Mint 22 trước khi tiến hành các bước khắc phục lỗi nâng cao bên dưới.
Kiểm tra trạng thái kết nối phần cứng và tiến trình ccpd
Trước khi can thiệp vào cấu hình dịch vụ, bạn cần xác minh hệ điều hành đã nhận diện chính xác cổng USB của thiết bị. Mở Terminal và kiểm tra qua lệnh:
lsusb | grep -i canon
sudo ccpdadmin
Hệ thống phải trả về mã nhận diện thiết bị Canon cùng bảng ánh xạ cổng dạng /dev/usb/lp0 hoặc đường dẫn URI theo chuẩn CUPS. Nếu mục Spooler hiển thị thông số trống hoặc ccpd báo trạng thái Stop, tiến trình in đã bị gián đoạn.
Bước 1: Khởi động lại cụm dịch vụ CUPS và ccpd theo đúng thứ tự
Trình điều khiển độc quyền CAPT của Canon yêu cầu dịch vụ CUPS phải sẵn sàng hoàn toàn trước khi daemon ccpd được kích hoạt. Bạn thực hiện chuỗi lệnh sau để giải phóng hàng đợi bị tắc:
sudo systemctl restart cups
sudo /etc/init.d/ccpd restart
captstatusopt -P LBP2900
Cửa sổ trạng thái đồ họa sẽ xuất hiện. Nếu thông báo hiển thị Ready to print, lệnh in thử nghiệm của bạn đã có thể xuất thành công ra khay giấy.
| Thông báo captstatusopt | Nguyên nhân kỹ thuật | Phương án xử lý |
|---|---|---|
| Ready to print | Dịch vụ đã bắt tay thành công với phần cứng | Sẵn sàng in tài liệu bình thường |
| Device or resource busy | Module usblp của kernel xung đột quyền chiếm dụng | Cấu hình lại quy tắc udev rule |
| Check the Device Path | Sai lệch đường dẫn thiết bị trong ccpdadmin | Đăng ký lại cổng qua ccpdadmin |
Bước 2: Cấu hình systemd service để tự phục hồi tiến trình khi khởi động
Do Linux Mint 22 quản lý khởi động bằng systemd, các tập lệnh SysVinit cũ trong /etc/init.d/ccpd thường bị bỏ qua hoặc thực thi quá sớm. Giải pháp ổn định nhất là tạo một unit file riêng biệt:
sudo nano /etc/systemd/system/canon-ccpd.service
Dán nội dung cấu hình sau vào trình soạn thảo Nano để thiết lập quan hệ phụ thuộc chặt chẽ với CUPS:
[Unit]
Description=Canon CAPT Daemon Service
After=cups.service
Requires=cups.service
[Service]
Type=forking
ExecStart=/etc/init.d/ccpd start
ExecStop=/etc/init.d/ccpd stop
Restart=on-failure
[Install]
WantedBy=multi-user.target
Kích hoạt service mới để đảm bảo máy in tự nhận diện mỗi lần khởi động lại máy tính:
sudo systemctl daemon-reload
sudo systemctl enable canon-ccpd.service
sudo systemctl start canon-ccpd.service
- CUPS: Hệ thống in ấn mã nguồn mở tiêu chuẩn cho các hệ điều hành họ Unix và Linux.
- CAPT: Kiến trúc in tiên tiến độc quyền do Canon phát triển nhằm xử lý raster trực tiếp trên máy chủ.
- ccpd: Daemon trung gian điều phối và trung chuyển dữ liệu in giữa hàng đợi CUPS và phần cứng Canon.
- systemd: Hệ thống khởi tạo và quản lý dịch vụ nền tảng mặc định trên các bản phân phối Linux hiện đại.
Driver CAPT của Canon là phần mềm nhị phân nguồn đóng được biên dịch từ lâu. Trên các bản cập nhật Linux Kernel mới, mô-đun này có thể tiếp tục phát sinh lỗi tương thích với kiến trúc 64-bit hoặc xung đột với giao thức driverless ipp-usb. Nếu môi trường văn phòng đòi hỏi tính ổn định tuyệt đối và in ấn liên tục nhiều máy, giải pháp kinh tế dài hạn vẫn là chia sẻ máy in qua một máy chủ phụ hoặc cân nhắc thiết bị hỗ trợ sẵn giao thức AirPrint/IPP Everywhere.