
简介面向Linux桌面或服务器用户的三星打印扫描驱动程序v1.00.06版适配多款三星打印机与一体机主要解决Linux环境下缺少官方驱动导致的无法识别设备、打印乱码、扫描功能受限等常见问题。该驱动包总计229个文件包含ppd打印机描述文件、cts设备配置、安装/扫描脚本、rastertospl与pstospl打印处理模块以及面向Fedora/SUSE等发行版的防火墙配置整体压缩包约10.1MB结构清晰便于直接部署。已有813人学习下载适合有一定Linux基础、需要为三星打印机配置打印扫描服务的用户也适合企业IT管理员在批量部署时参考。资源以三星官方2013年8月发布的驱动为基础随包附带详细配置样例与系统集成文件可帮助用户顺利走通打印机添加、扫描仪识别、驱动加载等环节并减少因第三方驱动不兼容带来的运维成本。1. 三星打印及扫描驱动程序v1.00.06版给 Linux 下的打印机和扫描仪补一张官方票三星打印及扫描驱动程序v1.00.06版For Linux-32 Linux-64是三星官方为 Linux 系统发布的打印机与扫描仪一体驱动包解决的是同一台设备在 Windows 下即插即用、在 Linux 下却装不上、打不出、扫不了的尴尬。你需要它的场景很具体刚把办公室那台三星激光一体机接到 Ubuntu 或 CentOS 主机上lsusb 能看到设备号但 CUPS 里没有对应驱动扫描仪更是只亮红灯不干活。这一版驱动同时提供 32 位和 64 位安装包意味着从老旧的 i386 桌面机到新装的 x86_64 服务器都能覆盖。适合的读者是 Linux 桌面用户、运维和打印共享服务的维护者目标是让打印机和扫描仪在同一台机器上真正复工。接下来我从驱动包结构讲起把两条安装路径、队列配置和扫描调试一次讲透。2. 拆开驱动包看本质它不是安装包是一组 CUPS 和 SANE 的补丁集合在跑任何命令之前先搞清楚你拿到的到底是什么。三星这一版 Linux 驱动名义上是一个程序包实际上是一组围绕 CUPS 打印系统和 SANE 扫描框架的补丁文件没有它们Linux 不认识这台设备这是原则性问题。2.1 解包之后你会看到的文件结构下载得到的通常是一个 tar.gz 压缩包解压之后常见会看到 install.sh 安装脚本、uld 目录里面是 ppd 文件、rastertosamsungspl 过滤器、libsane-samsung 扫描库以及为 rpm 和 deb 打包好的子目录。这个结构很多年没大变过核心就三块打印过滤器、PPD 描述文件、扫描仪 SANE 后端。PPD 是 CUPS 识别设备的身份证它告诉打印系统你的设备支持什么分辨率、是否双面、纸盒尺寸上限是多少。rastertosamsungspl 这个过滤器负责把 CUPS 生成的通用栅格数据翻译成三星打印机自己的页面描述语言这一步决定你打印出来的是正常文字还是满纸乱码。第三块 libsane-samsung 是扫描仪的灵魂它让 SANE 后端在 lsusb 之外真正把设备当成可用的扫描源。驱动包内部的文件分工我用一张表说明文件/目录常见命名作用装错后果install.sh自动检测发行版并调用 rpm/dpkg权限不足时中断安装/.ppd 或 uld/*.ppdCUPS 设备描述文件队列能建但打印选项缺失rastertosamsungspl栅格数据到打印机语言的转换器打印空白、乱码或任务卡死libsane-samsung.soSANE 后端扫描库scanimage -L 找不到设备*.rpm / *.deb 子包分发行版打包产物跨发行版安装会报依赖错误看清楚这些文件之后你就明白了所谓安装驱动本质上是在 CUPS 的模型目录里放入 PPD、在过滤器目录里放入可执行文件、在 SANE 的库目录里放入后端然后把它们链接起来。理解了这一层后面排错就有了方向而不是像无头苍蝇一样重装系统。2.2 安装前三个检查系统、CUPS、USB 识别状态动手安装前先花三分钟做三个检查能省掉后面最折磨人的排错环节。第一个检查是系统架构直接决定你选 32 位还是 64 位包。第二个检查是 CUPS 服务是否在运行很多压箱底的旧机器装了驱动但打印服务没起来容易误判成驱动失败。第三个检查是 USB 是否被内核识别这一步能区分是驱动问题还是线材/供电问题。# 1. 确认系统架构和发行版 uname -m cat /etc/os-release | head -3 # 2. 确认 CUPS 服务状态 systemctl status cups --no-pager | head -10 # 3. 确认打印机已被内核识别找 Samsung 字样 lsusb | grep -i samsung这段命令的逻辑是uname -m 输出 x86_64 表示 64 位系统输出 i686 或 i386 表示 32 位系统发行版信息决定你该用 rpm 还是 deb。systemctl 是 systemd 系发行版通用的服务查看方式看到 active (running) 才算正常。lsusb 按厂商名过滤出三星设备如果这里什么都看不到先换 USB 线、换接口再说驱动救不了物理链路问题。注意 lsusb 的结果里的设备号要记下来比如 ID 04e8:3437后面配置扫描仪时有用。2.3 提前解决 32 位库别等安装脚本报错很多 64 位系统装这个驱动翻车核心原因是驱动里的部分组件还停留在 32 位时代。这不是三星独有的毛病不少外设厂商的 Linux 驱动都有这个历史包袱。你需要保证系统里有 32 位兼容库否则安装脚本能跑完但后续调用过滤器和扫描库时直接加载失败。Ubuntu 和 Debian 系的做法是启用 i386 架构再装兼容库CentOS 和 RHEL 系则直接安装 multilib 包两条线我分别写一下# Ubuntu / Debian 系 sudo dpkg --add-architecture i386 sudo apt-get update sudo apt-get install -y libc6:i386 libstdc6:i386 libusb-1.0-0:i386 # CentOS / RHEL / Fedora 系 sudo yum install -y glibc.i686 libstdc.i686 libusb.i686逻辑说明dpkg --add-architecture i386 告诉 dpkg 允许拉取 32 位包libc6:i386 和 libstdc6:i386 分别提供 C 运行库和 C 标准库的 32 位版本libusb 则是扫描后端访问 USB 设备的基础库。如果这一步省略安装时可能不报错但打印时作业会卡在队列里查看 /var/log/cups/error_log 会看到类似 error while loading shared libraries 的提示。提前装好等于给后面排掉一颗暗雷。3. 安装驱动全流程rpm 与 deb 两条路径的避坑实操安装方式无非三种用自带的 install.sh 一键装、手动装 rpm、手动装 deb。我建议初次安装用 install.sh但你要盯着它输出的每一行翻车之后再用手动方式定位具体哪个包出了问题。这一章的避坑经验都是我实际踩过之后总结的。3.1 install.sh 一键安装省事但会掩盖细节install.sh 是三星驱动包里的自动安装脚本它会检测当前系统是 rpm 系还是 deb 系然后自动调用对应的包管理器。常见用法是解压后进入目录直接跑tar -xzf Samsung_Printer_Driver_Linux.tar.gz cd Samsung_Printer_Driver_Linux sudo ./install.sh这段命令的逻辑不复杂tar 解包进入目录sudo 以管理员权限执行安装脚本。脚本内部流程大致是搜索已连接的三星设备、复制 PPD 到 CUPS 模型目录、复制过滤器到 /usr/lib/cups/filter、安装扫描后端到 SANE 目录最后尝试通过 lpadmin 自动创建打印队列。脚本的好处是自动化程度高坏处是一旦某一步失败它不会告诉你具体是哪一步只抛出一句 Installation failed。所以脚本执行过程中要盯着终端输出看到 failed 或 error 字样立刻截图记下来。我一般会在跑 install.sh 之前先断开打印机 USB 线等脚本把所有文件复制完、提示连接设备时再把 USB 插上。原因是脚本在创建队列时如果遇到设备处于忙状态可能直接跳过队列创建导致文件装好了但队列是空的。这个小技巧让我避免了很多次装完发现打印机没出现在系统里的问题。3.2 手动 rpm 安装完整命令如果你用的是 CentOS、RHEL、Fedora 或者 openSUSE可以绕过 install.sh 直接装 rpm 包。先在解压目录里找到后缀为 .rpm 的文件然后执行sudo rpm -Uhv --nodeps *.rpm逻辑说明-U 是升级安装-h 显示进度条-v 输出详细信息--nodeps 是跳过依赖检查。我不建议加 --nodeps但很多老机器上这个驱动确实依赖旧的 libcups 接口不加的话 rpm 会拒绝安装。参数说明如果你对依赖有把握去掉 --nodeps 更安全如果 rpm 报了依赖缺失先尝试用 dnf/yum 自动解决依赖而不是一味跳过检查。sudo dnf install -y *.rpm这是 dnf 系发行版更推荐的方式dnf 会自动解析 rpm 依赖并从仓库补齐缺失的库。装完之后验证一下关键文件是否到位ls -l /usr/lib/cups/filter/rastertosamsungspl ls -l /usr/lib64/cups/filter/rastertosamsungspl两个路径都要看64 位系统上 CUPS 过滤器可能位于 /usr/lib64/cups/filter 而非 /usr/lib/cups/filter如果文件不在预期位置回到解压目录里 find 一下实际复制到了哪里。3.3 手动 dpkg 安装完整命令Ubuntu、Debian、Linux Mint 这类 deb 系系统用 dpkg 安装。命令很短但依赖坑比 rpm 多sudo dpkg -i *.deb sudo apt-get -f install -y逻辑说明dpkg -i 直接安装目录下所有 deb 包但不会自动补依赖紧接着的 apt-get -f install 是修复依赖的标准动作它的作用是让 apt 自动下载并安装 dpkg 装完但缺失的依赖库。这个组合比单纯 dpkg -i 稳得多因为三星的 deb 包依赖描述并不完整。安装结束后用 dpkg 确认dpkg -l | grep -i samsung输出结果里应该能看到类似 printer-driver-samsung、samsung-scanner 之类的包名状态列是 ii 表示安装成功。如果状态是 iU 或者 iF说明后台配置阶段出了问题。另外提醒一句Ubuntu 20.04 以上的系统可能遇到 libcupsimage.so.2 被新版本替代的窘境因为新版 libcups 把 libcupsimage 合并或改了版本号导致驱动里的二进制找不到它。常见做法是创建一个软链接兼容sudo ln -s /usr/lib/x86_64-linux-gnu/libcupsimage.so.2 /usr/lib/x86_64-linux-gnu/libcupsimage.so这行命令的作用是把新版库文件映射成旧版名称让三星过滤器在加载时能找到符号。注意这是临时兼容手段如果链接的库版本差异太大可能加载到一半仍然报 symbol lookup error这时候更稳妥的办法是同时安装 libcups2-dev 补全开发接口。3.4 安装时的 5 个常见坑现象、原因、解决这一节是血泪经验汇总每一条我都按现象到原因到解决的顺序写。坑一install.sh 提示 Install failed但没有具体错误行。现象是脚本只抛一个笼统的失败然后退出码非 0。原因通常是用户不在 sudo 组、旧版本驱动残留没清干净、或者磁盘空间不足。解决方法是先 sudo whoami 确认权限再执行 dpkg -l | grep samsung 或 rpm -qa | grep samsung 看有无残留有残留就先卸载再装。坑二打印机建好队列但打印输出空白页。现象是任务从队列里正常完成但纸上是白的。原因八成是 rastertosamsungspl 过滤器没有可执行权限或者 32 位运行库缺失导致过滤器加载失败。解决方法是 chmod x 手动给过滤器加执行权限并重新检查 2.3 节的 32 位库是否装齐。坑三scanimage -L 看不到扫描仪。现象是打印正常但扫描没动静。原因是 SANE 后端文件没被 ldconfig 索引或者后端依赖的 libusb 版本不匹配。解决方法是安装后执行 ldconfig 刷新动态库缓存然后用 sane-find-scanner -q 查看后端是否加载了三星设备。坑四Ubuntu 22.04 安装时报 rastertosamsungspl: not found。现象是 rpm/deb 装完但过滤器目录是空的。原因是系统 CUPS 过滤器目录不在 /usr/lib/cups/filter而在 /usr/libexec/cups/filter。解决方法是手动把驱动包里的过滤器复制到 /usr/libexec/cups/filter 并加执行权限然后重启 CUPS。坑五打印机一直处于 offline 状态。现象是 CUPS 队列显示打印机离线但设备明明开着机。原因是 CUPS 通过 USB 串号匹配设备时失败或者队列里配置的 URI 和设备实际 URI 不一致。解决方法是先 lpstat -p 查看队列 URI再 lsusb 查看总线信息用 lpadmin -p 队列名 -v 新URI 重新绑定。4. 打印机队列配置驱动装完距离能打印还差一次 lpadmin驱动文件装好只是第一步CUPS 里没有队列系统仍然不知道怎样把文档送给打印机。很多新手在这步过早放弃其实队列配置比安装更简单关键是理解设备的 URI 怎么写。4.1 用 lpadmin 手动创建队列如果你的系统在安装驱动后自动创建了队列跳过我这一步直接去打测试页。如果自动创建失败手动建队列是必须掌握的技能# 先查看系统中可用的 PPD 模型 lpinfo -m | grep -i samsung # 手动创建队列用你查到的实际 PPD 路径 sudo lpadmin -p Samsung_M2070 -E -v usb://SAMSUNG/M2070 -m Samsung_M2070.ppd # 设置默认队列 sudo lpoptions -d Samsung_M2070逻辑说明lpinfo -m 列出现有 PPD你需要找到三星那一行并记下它的 PPD 名称lpadmin 的 -p 参数指定队列名、-E 表示启用队列、-v 指定设备 URI、-m 指定 PPD。参数说明usb://SAMSUNG/M2070 这种 URI 是 CUPS 通过 USB 描述符里的厂商名和产品名自动生成的不同机器可能略有差异最稳妥的写法是先插上打印机跑一条命令看系统建议的 URI。/usr/lib/cups/backend/usb这个命令不需要任何参数它会直接列出当前 USB 打印机设备对应的 URI比如 usb://SAMSUNG/M2070?serialZ6T3B4D5把这一整串复制到 -v 参数里匹配成功率最高。之后再打测试页lp -d Samsung_M2070 /etc/hostname这行命令会把 /etc/hostname 文件内容以文本形式发给打印机如果打印机输出了一行主机名说明打印链路全通。4.2 网络打印机 URI 怎么填如果你用的是网络版三星打印机队列配置的 URI 就是另一套写法。最常见的是 socket 协议直连因为三星打印机普遍支持 9100 端口原始打印sudo lpadmin -p Samsung_Net -E -v socket://192.168.1.20:9100 -m Samsung_M2070.ppd这里的 URI 结构是 socket://IP:端口9100 是打印机行业通用的原始数据端口。逻辑说明socket 协议不经过打印服务器的解析直接把数据流灌给打印机兼容性最好。参数说明如果打印机开了 IPP 功能也可以用 ipp://192.168.1.20/ipp这需要打印机面板上显示 IPP 已启用否则会连接超时。加打印机之前先 ping 通 IP再用 nc -zv 192.168.1.20 9100 检测端口这一步能排除八成网络问题。4.3 三星自带配置工具的适用边界驱动装完通常会在系统里装一个三星打印配置工具名字类似 Samsung Printer Configurator在应用菜单里能找到也可以在终端执行samsung-printer-config # 或类似的可执行文件名这个工具的逻辑是图形化展示当前队列、耗材状态和扫描入口适合桌面用户手动配置。但我要提醒一句它的队列创建功能有时会覆盖你已经手动配好的设置特别是当你从 USB 切换到网络打印时它可能重新生成一个设备节点。我一般只在两种情况下用它一是懒得记命令行二是需要查看打印机耗材余量。如果你已经在用 CUPS 的 web 管理界面http://localhost:631完全不必依赖这个工具。它也不是万能的在精简版 Ubuntu 或纯命令行服务器上它可能因为缺少 GUI 依赖根本启动不了这时候 lpadmin 才是你唯一的可靠武器。5. 扫描功能跑通从 SANE 后端到 scanimage 与 xsane打印通了不算完一体机的扫描功能是另一个黑匣子。三星扫描后端在安装后被放到 SANE 的插件目录但 SANE 默认配置不一定包含它所以扫描调试的核心就是让后端被看见。5.1 确认扫描后端被 SANE 加载先验证后端文件是否存在于系统适当位置ls -l /usr/lib/sane/libsane-samsung.so* ls -l /usr/lib64/sane/libsane-samsung.so*逻辑说明SANE 后端的命名规则是 libsane-厂商名.so路径由系统位数决定。如果文件存在接下来执行扫描设备列表scanimage -L输出结果里看到类似 device samsung:pl2306:/dev/bus/usb/001/003 的行就表示后端已经成功枚举到设备。如果输出为空先跑 sane-find-scannersudo sane-find-scanner -q这个命令直接访问 USB 设备层列出支持的设备如果这一步能看到三星设备但 scanimage -L 看不到说明 SANE 的 dll.conf 配置没加载三星后端。打开 /etc/sane.d/dll.conf 检查末尾是否有 samsung 字样没有就补一行取消注释后重启服务或重新登录。5.2 scanimage 命令行验证后端加载成功后先用命令行做一次全协议扫描避免图形工具干扰排错# 查看设备支持的参数 scanimage --device samsung:pl2306:/dev/bus/usb/001/003 --help # 执行一次彩色 300dpi 扫描并输出到文件 scanimage --device samsung:pl2306:/dev/bus/usb/001/003 \ --mode Color --resolution 300 \ -o /tmp/test-scan.ppm逻辑说明--device 参数直接指定扫描仪设备节点--mode Color 指定彩色模式--resolution 300 指定 300 DPI-o 指定输出文件。PPDM 格式是 SANE 的默认输出是未经压缩的原始图像格式体积大但保留所有信息。参数说明如果扫描头没初始化可能报 out of range这时候先跑一次 --resolution 75 的低分辨率测试确认机械运动正常再逐步提高。这一条经验能帮你区分是光学故障还是驱动故障。5.3 权限配置把当前用户加进 plugdev 组命令行扫描能看到设备但桌面用户打开扫描软件时报权限不足这属于设备文件访问权限问题不是驱动问题。Linux 下 USB 设备节点的默认属主是 root普通用户需要处于 plugdev 或 scanner 组才能直接访问sudo usermod -aG plugdev $USER sudo usermod -aG scanner $USER newgrp plugdev逻辑说明usermod 命令把当前用户追加到 plugdev 和 scanner 两个组newgrp 让当前终端立即刷新组身份不必注销。修改完组关系后用 id 命令确认输出里包含这两个组名称。这步操作属于 Linux 运维故障案例里最常见的一种设备被内核识别但权限拦住应用层。如果重启之后权限仍然不对可以临时给 USB 设备节点加权限验证sudo chmod 666 /dev/bus/usb/001/003这行的作用是临时开放设备节点读写权限能让 xsane 立刻打开设备但重启后失效只能用于验证问题点在哪。最终方案还是要落在组权限配置上。6. 装完别急着收工验证安装状态、干净卸载与固件习惯驱动装好、打印扫描都跑通后还有三件事值得做。第一件事是留一个验证存档用命令把安装痕迹固化下来方便下次迁移或排错时对照dpkg -l | grep samsung 或 rpm -qa | grep samsung 的输出值得贴到你的运维笔记里。第二件事是确认 CUPS 服务开机自启systemctl enable cups否则机器重启后队列全部离线打印任务堆积在队列里出不去那种重启后打印机突然不工作的求助帖大半是这个原因。第二件重要的事是掌握干净卸载的方法。卸载不干净会导致旧版本驱动残留下次装新版时报文件冲突。# deb 系卸载 sudo apt-get purge -y printer-driver-samsung # 或回到驱动解压目录 sudo ./install.sh --uninstall # rpm 系卸载 sudo rpm -e printer-driver-samsung逻辑说明apt purge 会删除配置文件--uninstall 参数会尝试恢复驱动覆盖过的系统文件原状。卸载后检查一下 /usr/lib/cups/filter 里是否还有 rastertosamsungspl 残留有就手动删除再重启 cups 服务。第三件事是一个固件习惯三星打印机和外设一样USB 识别有一个上电顺序。我现在的习惯是开机前先接好打印机电源和 USB让系统在启动阶段就完成设备枚举。如果先开电脑再接打印机偶尔会出现 USB 设备号变化导致队列 URI 失配需要重新用 lpadmin 绑定。这个问题的根源在于 CUPS 通过 USB 串号识别设备而串号读取依赖设备固件的稳定响应。养成这个习惯之后我几乎没再遇到过打印机又离线了的毛病。希望这篇从文件结构到扫描排错的完整路径能帮到你往后看到这一版三星驱动不用再心里打鼓了。本文还有配套的精品资源点击获取