feat: 添加 HPLIP 插件安装提示功能

- 安装 HP 驱动后自动检测 hplip 版本
- 显示对应版本插件的下载地址和安装命令
- 添加 README.md 项目说明文档

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-12-01 16:48:46 +08:00
parent 799e190ea8
commit f41b44238f
2 changed files with 181 additions and 0 deletions

132
README.md Normal file
View File

@@ -0,0 +1,132 @@
# CUPS 打印服务一键配置脚本
适用于 Armbian / Debian / Ubuntu 系统,支持 x86_64 和 ARM 架构。
## 功能特性
- 一键安装 CUPS 打印服务
- 自动配置远程访问和局域网共享
- 中文 Web 管理界面
- AirPrint 支持iOS/macOS 自动发现)
- 虚拟 PDF 打印机(测试连接用)
- 多种打印机驱动可选
- 支持一键卸载
## 快速安装
```bash
# 方式一curl
curl -fsSL https://gitee.com/yu-yon/S905L3A/raw/master/setup_cups.sh | bash
# 方式二wget
wget -qO- https://gitee.com/yu-yon/S905L3A/raw/master/setup_cups.sh | bash
```
## 卸载
```bash
# 下载脚本
wget -O setup_cups.sh https://gitee.com/yu-yon/S905L3A/raw/master/setup_cups.sh
chmod +x setup_cups.sh
# 执行卸载
./setup_cups.sh --uninstall
```
## 驱动选项
安装时可选择以下驱动:
| 选项 | 说明 |
|------|------|
| 1 | 通用驱动(推荐,支持大多数打印机) |
| 2 | HP 打印机 (hplip) |
| 3 | 爱普生 (gutenprint) |
| 4 | 兄弟 (brlaser) |
| 5 | 奔图 Pantum |
| 6 | 全部安装(不含奔图) |
| 7 | 虚拟 PDF 打印机(测试用) |
| 0 | 仅安装 CUPS不安装驱动 |
默认选项:`1 7`(通用驱动 + PDF 打印机)
## 客户端连接
### 局域网环境
| 客户端 | 连接方式 |
|--------|----------|
| **macOS/iOS** | 自动发现AirPrint无需配置 |
| **Android** | 安装 Mopria Print Service自动发现 |
| **Windows** | 设置 → 打印机 → 添加打印机 |
| **Linux** | 自动发现或 `ipp://IP:631/printers/打印机名` |
### 管理界面
- 地址:`https://服务器IP:631`
- 用户名:`root`
- 密码SSH 登录密码
## 服务端口
| 服务 | 端口 | 用途 |
|------|------|------|
| CUPS | 631 | 打印服务/Web管理界面 |
| Avahi | 5353 | mDNS/AirPrint 自动发现 |
## 常用命令
```bash
# 查看打印机列表
lpstat -p -d
# 重启 CUPS
systemctl restart cups
# 查看 CUPS 日志
tail -f /var/log/cups/error_log
# 检查 USB 打印机
lsusb | grep -i print
lpinfo -v | grep usb
```
## 支持架构
- x86_64 / amd64
- aarch64 / arm64
- armv7l / armhf
## 文件说明
```
├── setup_cups.sh # 一键安装/卸载脚本
├── cups-templates-zh_CN/ # 中文界面模板65个文件
├── README.md # 本文档
└── 刷机教程.md # Armbian 刷机教程
```
## 常见问题
### 手机打印提示"不再接受加密的作业"
正常提示,点击"继续"即可。这是因为服务器配置为允许非加密连接。
### 手机发送打印任务很慢
脚本已配置 `HostNameLookups Off` 解决此问题。如果仍然慢,检查网络连接。
### 界面显示英文
确保安装时下载了中文模板。重新运行安装脚本可以修复。
### 找不到 USB 打印机
1. 确认打印机已通过 USB 连接到服务器
2. 运行 `lsusb` 检查是否识别
3. 刷新 CUPS 添加打印机页面
## 仓库地址
- Gitee: https://gitee.com/yu-yon/S905L3A
## 更新日志
- 2024-12-01: 添加卸载功能、优化打印速度
- 2024-11-30: 修复 CSS 兼容 CUPS 2.4.7、添加 PDF 打印机选项

View File

@@ -737,11 +737,53 @@ install_pantum_driver() {
rm -rf "$tmp_dir" rm -rf "$tmp_dir"
} }
# 显示 HPLIP 插件安装提示
show_hplip_plugin_notice() {
# 检测 hplip 版本
local hplip_version=""
if command -v hp-info > /dev/null 2>&1; then
hplip_version=$(hp-info -v 2>/dev/null | grep -oP 'HPLIP \K[0-9.]+' | head -1)
fi
# 如果上面方法失败,尝试从包管理器获取
if [ -z "$hplip_version" ]; then
hplip_version=$(dpkg -s hplip 2>/dev/null | grep "^Version:" | awk '{print $2}' | cut -d'-' -f1 | cut -d'+' -f1)
fi
if [ -z "$hplip_version" ]; then
warn "无法检测 HPLIP 版本"
return
fi
echo ""
echo -e "${YELLOW}╔══════════════════════════════════════════════════════════════════╗${NC}"
echo -e "${YELLOW}${RED}重要提示HP 打印机需要安装专有插件才能正常工作!${NC} ${YELLOW}${NC}"
echo -e "${YELLOW}╠══════════════════════════════════════════════════════════════════╣${NC}"
echo -e "${YELLOW}${NC} 检测到 HPLIP 版本: ${GREEN}${hplip_version}${NC} ${YELLOW}${NC}"
echo -e "${YELLOW}${NC} ${YELLOW}${NC}"
echo -e "${YELLOW}${NC} ${BLUE}请手动下载并安装对应版本的插件:${NC} ${YELLOW}${NC}"
echo -e "${YELLOW}${NC} ${YELLOW}${NC}"
echo -e "${YELLOW}${NC} 1. 下载地址: ${YELLOW}${NC}"
echo -e "${YELLOW}${NC} ${GREEN}https://sourceforge.net/projects/hplip/files/${NC} ${YELLOW}${NC}"
echo -e "${YELLOW}${NC} ${GREEN}hplip/${hplip_version}/hplip-${hplip_version}-plugin.run${NC} ${YELLOW}${NC}"
echo -e "${YELLOW}${NC} ${YELLOW}${NC}"
echo -e "${YELLOW}${NC} 2. 上传到服务器后执行: ${YELLOW}${NC}"
echo -e "${YELLOW}${NC} ${GREEN}sudo hp-plugin -i -p /tmp/hplip-${hplip_version}-plugin.run${NC} ${YELLOW}${NC}"
echo -e "${YELLOW}${NC} ${YELLOW}${NC}"
echo -e "${YELLOW}${NC} 3. 安装过程中如提示 GPG 验证失败,输入 ${GREEN}y${NC} 继续即可 ${YELLOW}${NC}"
echo -e "${YELLOW}╚══════════════════════════════════════════════════════════════════╝${NC}"
echo ""
# 保存版本号供后续使用
HPLIP_VERSION="$hplip_version"
}
# 安装驱动 # 安装驱动
install_drivers() { install_drivers() {
local packages="" local packages=""
local install_pantum=false local install_pantum=false
local install_pdf=false local install_pdf=false
local install_hp=false
for choice in $driver_choice; do for choice in $driver_choice; do
case $choice in case $choice in
@@ -752,6 +794,7 @@ install_drivers() {
2) 2)
info "添加 HP 驱动..." info "添加 HP 驱动..."
packages="$packages hplip" packages="$packages hplip"
install_hp=true
;; ;;
3) 3)
info "添加爱普生驱动..." info "添加爱普生驱动..."
@@ -767,6 +810,7 @@ install_drivers() {
6) 6)
info "添加全部驱动..." info "添加全部驱动..."
packages="printer-driver-all hplip printer-driver-gutenprint printer-driver-brlaser" packages="printer-driver-all hplip printer-driver-gutenprint printer-driver-brlaser"
install_hp=true
;; ;;
7) 7)
install_pdf=true install_pdf=true
@@ -792,6 +836,11 @@ install_drivers() {
if [ "$install_pdf" = true ]; then if [ "$install_pdf" = true ]; then
install_pdf_printer install_pdf_printer
fi fi
# 显示 HP 插件安装提示
if [ "$install_hp" = true ]; then
show_hplip_plugin_notice
fi
} }
# 安装中文界面模板 # 安装中文界面模板