From f41b44238fe680fb8da945959788efe0edd4d322 Mon Sep 17 00:00:00 2001 From: yuyx <237899745@qq.com> Date: Mon, 1 Dec 2025 16:48:46 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=20HPLIP=20=E6=8F=92?= =?UTF-8?q?=E4=BB=B6=E5=AE=89=E8=A3=85=E6=8F=90=E7=A4=BA=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 安装 HP 驱动后自动检测 hplip 版本 - 显示对应版本插件的下载地址和安装命令 - 添加 README.md 项目说明文档 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- README.md | 132 ++++++++++++++++++++++++++++++++++++++++++++++++++ setup_cups.sh | 49 +++++++++++++++++++ 2 files changed, 181 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..bffc52d --- /dev/null +++ b/README.md @@ -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 打印机选项 diff --git a/setup_cups.sh b/setup_cups.sh index 0d5af26..c86d12e 100755 --- a/setup_cups.sh +++ b/setup_cups.sh @@ -737,11 +737,53 @@ install_pantum_driver() { 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() { local packages="" local install_pantum=false local install_pdf=false + local install_hp=false for choice in $driver_choice; do case $choice in @@ -752,6 +794,7 @@ install_drivers() { 2) info "添加 HP 驱动..." packages="$packages hplip" + install_hp=true ;; 3) info "添加爱普生驱动..." @@ -767,6 +810,7 @@ install_drivers() { 6) info "添加全部驱动..." packages="printer-driver-all hplip printer-driver-gutenprint printer-driver-brlaser" + install_hp=true ;; 7) install_pdf=true @@ -792,6 +836,11 @@ install_drivers() { if [ "$install_pdf" = true ]; then install_pdf_printer fi + + # 显示 HP 插件安装提示 + if [ "$install_hp" = true ]; then + show_hplip_plugin_notice + fi } # 安装中文界面模板