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.

Lưu ý về bước cài đặt gốc:

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.

Sửa Lỗi Máy In Canon LBP2900 Trên Linux Mint 22

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
📖 Bảng tra cứu thuật ngữ trong bài:
  • 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.
⚖️ Góc nhìn đa chiều & Giới hạn:

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.