Nhà mình có cái máy in đời cũ HP LaserJet P1006 sử dụng cổng USB để kết nối với máy tính, trước giờ cắm vào máy PC để in giấy tờ linh tinh. Sẵn hôm nay vừa lục từ kho ra được con laptop Lenovo S10-3T đã mua hơn chục năm trước với cấu hình cực kỳ cùi bắp nên mình quyết định lấy em nó ra cho chạy Ubuntu Server để vọc vạch và sẵn làm print server luôn.
Trước khi bắt đầu, mình xin tóm tắc lại các lợi ích khi sử dụng CUPS làm print server:
- Hỗ trợ chia sẻ máy in cho tất cả các nền tảng: Windows, macOS, Android, iOS
- Chỉ cần cài đặt trình điều khiển trên máy chủ, không cần cài đặt trình điều khiển ở máy khách
- Có thể quản lý từ xa thông qua trình duyệt web. Xem hướng dẫn cách truy cập máy tính từ xa bằng Apache Guacamole + Cloudflare Tunnel an toàn nhất
Sau đây mình ghi lại các bước mình đã thực hiện để cấu hình em nó làm print server trên Ubuntu
1. Điều kiện tiên quyết
Để thực hiện các bước bên dưới, cần phải thoả điều kiện sau:
- Máy tính đang chạy hệ điều hành Linux (Ubuntu)
- Máy in đã kết nối với máy tính qua cổng USB
2. Cài đặt CUPS
CUPS (Common Unix Printing System) là một phần mềm mã nguồn mở giúp quản lý và chia sẻ máy in, được sử dụng rất phổ biến trên các hệ điều hành Linux. Vì CUPS sử dụng giao diện web để cấu hình và quản lý máy in nên rất phù hợp để làm print server chạy trên máy chủ Linux.
Để cài đặt CUPS cho Ubuntu, thực hiện lệnh sau:
$ sudo apt install cups
Mặc định thì CUPS chỉ cho phép truy cập nội bộ, từ localhost. Để cho phép truy cập từ các máy khác trên cùng mạng, thực hiện tiếp lệnh sau:
$ sudo cupsctl --remote-any
$ sudo systemctl restart cups
Mặc định thì CUPS sử dụng user “root” để quản lý máy in. Nếu không sử dụng user “root” mà sử dụng một user khác thì cần cấu hình lại file cups-files.conf như sau:
$ sudo nano /etc/cups/cups-files.conf
# tìm và thay thế <USER> thành tên user dùng đăng nhập Ubuntu
SystemGroup lpadmin <USER>
Ví dụ:
SystemGroup lpadmin myusername
Sau đó khởi động lại CUPS:
$ sudo systemctl restart cups
Cuối cùng thêm người dùng vào group “lpadmin” bằng lệnh:
$ sudo usermod -a -G lpadmin $USER
Sau bước này thì CUPS đã hoạt động. Tuy nhiên do mình cũng sẽ chia sẻ máy in cho các máy tính chạy hệ điều hành Windows nên mình phải làm thêm 1 bước nữa, đó là cài đặt Samba Server.
3. Cài đặt Samba Server
Samba Server là một phần mềm cung cấp giao thức SMB, cho phép chia sẻ tập tin giữa các thiết bị trong mạng nội bộ. Do Samba hỗ trợ cả Linux và Windows nên thường được dùng để chia sẻ tập tin qua lại giữa 2 hệ điều hành này.
Cách cài đặt Samba Server như sau:
$ sudo apt install samba
Sau khi cài đặt, tiếp tục cấu hình Samba bằng lệnh sau:
$ sudo nano /etc/samba/smb.conf
Kéo xuống dưới cùng của tập tin smb.conf, thực hiện các thay đổi sau:
[printers]
comment = All Printers
browseable = no
path = /var/spool/samba
printable = yes
guest ok = yes
read only = yes
create mask = 0700
[print$]
comment = Printer Drivers
path = /var/lib/samba/printers
browseable = yes
read only = no
guest ok = no
Sau đó khởi động lại Samba bằng lệnh:
$ sudo systemctl restart smbd
4. Quản lý máy in bằng CUPS
CUPS sử dụng giao diện web để quản lý máy in, bạn có thể truy cập vào trang này bằng tại địa chỉ:
https://<IP>:631/admin
# Lưu ý: thay thế <IP> bằng địa chỉ IP của máy chủ chạy CUPS
Ví dụ:
https://192.168.1.2:631/admin
Tài khoản đăng nhâp của CUPS cũng chính là tài khoản mà mình dùng để đăng nhập Ubuntu
Lưu ý
Để lấy địa chỉ IP của máy chủ chạy CUPS thực hiện lệnh sau:
$ hostname -I
4.1 Thêm máy in vào CUPS & chia sẻ máy in
Trước khi bắt đầu, đảm bảo mình đã ghim dây USB của máy in vào máy tính chạy CUPS, sau đó thực hiện như sau:
Nhấn vào “Add Printer”
Chọn máy in muốn thêm từ danh sách, sau đó nhấn “Continue”
Đánh dấu vào ô “Share This Printer” rồi nhấn “Continue”
Chọn mã của máy in trong phần “Model”
Nếu không tìm thấy mã máy in của mình ở đây có nghĩa là CUPS không hỗ trợ mặc định trình điều khiển (driver) cho máy in đó. Tuy nhiên, mình vẫn có thể tải driver tại trang https://openprinting.org/printers
Lưu ý
Trong trường hợp của mình, do máy in “HP LaserJet P1006” đã quá cũ nên không được CUPS hỗ trợ mặc định mà mình phải cài đặt thêm driver của HP bằng lệnh sau:
$ sudo apt install hplip hpijs-ppds
$ sudo hp-setup -i
Sau đó mình tải lại trang (reload) là thấy mã máy in của mình ở đây.
Chọn xong nhấn vào nút “Add Printer”
Khi thấy báo như trên là máy in của mình đã được thêm vào CUPS thành công.
Cuối cùng mình quay trở lại trang quản trị bằng cách nhấn vào menu “Administrator”
Đánh dấu vào ô “Share printers connected to this system” rồi nhấn nút “Change Settings”, sau đó đợi CUPS khởi động lại là xong!
4.2 Cấu hình và xoá máy in khỏi CUPS
Để thay đổi cấu hình và xoá máy in ra khỏi CUPS, vào menu Printers
Sau đó chọn tên máy in mình cần cấu hình
5. Kết nối máy in với máy tính Windows
Sau khi cài đặt máy in với CUPS thành công, mình mở laptop đang chạy hệ điều hành Windows 11 và kết nối với máy in như sau:
Nhấn vào nút Search trên Windows và gõ vào “Printer”
Chọn “Add a printer or scanner”
Khi thấy tên máy in xuất hiện, tiếp tục chọn “Add device”
Đợi Windows kết nối đến máy in và cài đặt trình điều khiển (driver). Sau khi thành công sẽ thấy báo “Ready” như trên.
Vậy là mình đã hoàn tất việc chia sẻ máy in của mình.