☰
Linux下三星打印机驱动v1.00.06安装与CUPS/SANE排错指南
2026/10/7 2:04:46 网站建设 项目流程

简介:三星官方于2013年8月发布的打印及扫描驱动程序1.00.06版,面向Linux 32位与64位系统,适用于多种型号三星打印机,可解决Linux环境下打印机与扫描仪驱动缺失、无法识别或功能受限等问题。压缩包共包含229个文件,大小10.1MB,主要以ppd打印机描述文件、cts配置模板、sh安装脚本、so动态库、rastertospl与pstospl转换过滤程序等构成,其中libsane-smfp.so.1.0.1等扫描库文件可直接支撑扫描功能,配套的install-printer、install-scanner脚本能简化安装流程。目前已有813人学习下载,适合需要为三星打印机配置Linux驱动的用户参考。资源内还提供了适用于suse、fedora、shorewall等防火墙的配置,兼顾不同发行版的安装需求,整体结构清晰,便于按需调用。由于是官方发布版本,驱动兼容性与稳定性相对有保障,尤其适合在企业或校园Linux环境中批量部署三星打印及扫描设备时作为基础驱动包使用。

1. Linux 下的三星打印机为什么需要专用驱动:v1.00.06 能解决什么

在 Linux 下用三星打印机的朋友,大概率遇到过这个情况:把 USB 线插到电脑上,系统“嘀”一声认出了硬件,可打开打印设置,设备列表里空空如也;换成系统自带的通用驱动,打印出来一堆乱码,或者任务直接卡在队列里不动。这不是打印机坏了,而是 Linux 缺了专门的三星打印及扫描驱动程序。这篇笔记围绕三星官方 v1.00.06 版 Linux 驱动来写,这个版本同时覆盖 32 位和 64 位系统,把打印和扫描两套驱动打包在同一份资源里,适合正在为三星打印机在 Linux 上装驱动、配扫描发愁的桌面用户和运维。下面从安装前准备讲起,逐步落到命令、参数和真实翻车记录。

2. 安装前准备:先分清 32 位和 64 位,再补依赖

2.1 用 uname 和 dpkg 查清架构,避免一半安装失败

三星这个 v1.00.06 驱动,安装脚本在识别系统类型后,只会去读取对应架构目录下的安装包。装错位数,最常见的后果是安装脚本执行到一半提示缺少 32 位库,或者装完后 CUPS 过滤器无法加载。所以在动手之前先把架构确认清楚,比后面排错省事得多。

在 Debian/Ubuntu 这类系统上,我一般同时看两条命令:

# 查看当前内核运行的架构 uname -m # 输出 x86_64 表示 64 位,i386/i686 表示 32 位 # 查看包管理器支持的架构 dpkg --print-architecture # 输出 amd64 表示 64 位发行版,i386 表示 32 位发行版

这里值得留意的是,uname -m反映的是内核和 CPU 的体系结构,dpkg --print-architecture反映的是发行版打包时采用的架构。正常安装的桌面系统两者结论一致。但如果你手上的机器是 64 位 CPU 上装了 32 位发行版,uname -m会显示 i386 或 i686,驱动安装脚本通常以 uname 的结果为准,遇到这种情况照做就行,不用怀疑系统装错了。

还有一个新手容易犯迷糊的点:驱动包里的目录名写着 i386,而你系统显示的是 i686。i686 是 i386 指令集扩展之后的一种 CPU 型号标识,驱动包为了兼容老机器,统一把 32 位目录命名为 i386,CentOS 系的 i386 和 i686 归档包都适用于同一个 32 位驱动,不要因为名字对不上就放弃继续操作。

RedHat 系系统的判断方式类似,uname -m输出 x86_64 就用 64 位驱动,输出 i686 就用 32 位驱动。现在很多新发行版已经不再提供 32 位安装介质,但老式的三星激光打印机用户手中往往还留着旧电脑,架构确认这一步反而是整套流程里最值得花时间的地方。我处理过一台老笔记本装 32 位 Ubuntu 配三星 ML-1640 的案例,用户全程用 64 位包尝试,折腾了一下午,最后只是换回 32 位驱动就正常出纸了。

2.2 安装依赖:CUPS 和 SANE 的运行时库是前置条件

三星的打印驱动不是独立程序,它工作在 CUPS 体系内:打印任务从应用程序进入 CUPS 过滤器,最后由后端送进 USB 或网络端口;扫描部分则是通过 SANE 后端接入,scanimage或者图像软件调用它来打开扫描设备。因此,系统里必须先有 CUPS 和 SANE 的运行时库,驱动安装脚本才能完整部署。

Debian/Ubuntu 上常见的依赖项有这几个:

# 安装 CUPS 和 SANE 依赖 sudo apt update sudo apt install -y cups cups-client libcups2 libcupsimage2 sane-utils libsane

CentOS/RHEL 系对应的是cups、cups-libs和sane-backends,包名不同,作用相同。装完依赖后确认服务是跑着的:

# 启动 CUPS 服务并设为开机自启 sudo systemctl enable --now cups sudo systemctl status cups --no-pager

值得说明的是,sane-utils里包含scanimage命令行工具,之后验证扫描功能时要用它;libcupsimage2是 CUPS 过滤器的映像库,驱动里的 PPD 过滤器如果缺少它,打印任务会卡在队列中不吐出任何错误。很多人把依赖问题当成驱动问题处理,结果重装了驱动三次都没有效果,最后装上缺失的运行时库就恢复了。这点在最小化安装的服务器上尤其突出——不带桌面环境的系统通常不会预装完整的 CUPS 运行时。

如果系统是 64 位,而手头驱动包只有 32 位介质这种极端情况,还需要补齐 32 位兼容库。Ubuntu 上做法是启用多架构支持:

# 在 64 位 Ubuntu 上启用 i386 多架构支持 sudo dpkg --add-architecture i386 sudo apt update sudo apt install -y libc6-i386 lib32stdc++6

这里补的libc6-i386和lib32stdc++6,是给 32 位 SANE 后端和 CUPS 过滤器在 64 位内核里运行用的。老版本三星驱动(v1.00.06 这一代)的扫描后端确实存在 32 位组件,缺少它们时,scanimage -L可能完全看不到设备。如果你用的是纯 64 位发行版,依赖问题相对少一些,但同样的检查流程还是值得走一遍。

2.3 惠普收购三星打印业务之后,驱动分发格局的变化

2017 年惠普完成了对三星打印业务的收购,从那以后,三星打印机的驱动分发渠道发生了明显变化。当年印着 Samsung 标志的官网驱动下载入口,现在会导向惠普支持页面;新出的多功能一体机大多走 HPLIP 或专用安装包,不再单独提供三星品牌的 Linux 驱动。v1.00.06 这个版本号透露的信息是:它属于三星在自营打印业务时期发布的驱动,支持的重点是那批十多年前量产的三星激光打印机和黑白多功能机,比如 ML 系列、SCX 系列。

对你而言,这意味着两件事。第一,如果你的设备恰好是这批老机型,这份驱动反而是比惠普新驱动更贴合硬件的选择,因为三星自家驱动的 PPD 和过滤器是针对原厂固件调校过的,兼容性更直接。第二,如果后续遇到官网下载不到对应驱动的问题,不必太惊讶——惠普的驱动库依然保留了相当一部分三星机型的 Linux 包,但归档和检索路径都变了,这也就是为什么网上很多老三星用户手里都存着 v1.00.xx 这一系列的安装包,属于“且用且珍惜”的状态。

所以安装前不妨先用打印机机身上的型号标签确认具体型号,再决定驱动来源。不要拿着惠普的 Universal Print Driver 硬套老三星机器,那样装完队列能建,但扫描后端往往缺失,打印出来的页面也会出现字体位置偏移的小毛病。这一步判断对了,后面安装流程会顺利很多。

3. 安装驱动三步走:解压、执行 install.sh、用 CUPS 配队列

3.1 解压驱动包,先读目录结构再动手

拿到这份 v1.00.06 的驱动包之后,第一步是解压。驱动包是一个压缩归档,里面通常有 install.sh 脚本,配套的 32bit / 64bit 目录,以及对应的 deb、rpm 子包。我见过不少用户拿到包就直接双击 install.sh,结果脚本读不到对应架构的包,报一个莫名其妙的错。按顺序来,把目录结构看清了,心里就有底。

# 解压驱动包到当前目录 tar -xvf Samsung_Printer_Driver_Linux_v1.00.06.tar.gz # 进入解压后的目录 cd Samsung_Printer_Driver_Linux_v1.00.06 # 查看两层目录结构 find . -maxdepth 2 -type d | sort

这一段的输出通常能看到32bit/、64bit/这类明显的架构目录,以及noarch/或common/这种放公共配置文件的目录。我一般会继续看一眼 install.sh 的内容,确认它调用了哪些系统命令:

# 查看安装脚本前 40 行 head -40 install.sh

这一步不是必须,但值得做。驱动包的安装脚本本质是一个壳,它会去调用dpkg或者rpm安装各组件包,同时把 PPD 复制到 CUPS 的模型目录。如果你发现脚本里引用了某个系统里没有的命令(比如某些精简版系统没有lsb_release),可以先装对应的基础工具,避免脚本在环境检查阶段就退出。检查环境这一步,本质上和 linux 常用命令里的which、command -v是一个道理,提前把脚本用到的工具确认一遍。

3.2 执行 install.sh:脚本替你完成了哪几件事

解压确认无误后,直接运行安装脚本:

# 给脚本加执行权限,避免权限不足 chmod +x install.sh # 用 root 权限安装 sudo ./install.sh

脚本跑完后,可以用下面两条命令确认关键文件已经就位:

# 查看三星 PPD 文件是否复制到 CUPS 模型目录 ls -l /usr/share/cups/model/samsung/ | head # 查看三星 CUPS 过滤器是否加载 ls -l /usr/lib/cups/filter/ | grep -i samsung

这里解释一下安装脚本干了什么:它首先读取系统架构,匹配对应目录下的 deb 或 rpm 包;随后把 PPD 文件安装到 CUPS 的模型目录,CUPS 添加打印机时就是靠这些 PPD 向系统描述打印机的分辨率、纸张规格和色彩配置;再往 CUPS 过滤器目录写入三星专用的过滤程序,负责把标准打印数据转成三星设备能理解的语言;最后注册 SANE 后端。后面的配置步骤,都不需要再手动操作这些文件了。

有一点要注意:有些版本的安装脚本执行过程中会问是否要立刻添加打印机,以对话框形式出现。这一步可以直接跳过,留到 CUPS 里统一配置。原因是脚本自带的添加向导对网络打印机的适配较弱,尤其和静态 IP 打印机配合时经常出现队列建好但离线的情况;用 CUPS 原生流程建队列,系统活动日志和错误提示都更规范。如果你的 install.sh 直接一条命令跑到结束,没有任何交互,那也正常,不同批次打包方式略有差异。

3.3 在 CUPS 添加打印机并打印测试页

安装脚本完成之后,重启一次 CUPS,让新增的 PPD 和过滤器被加载:

# 重启 CUPS 服务 sudo systemctl restart cups # 检查系统是否发现了三星打印设备 lpinfo -v | grep -i samsung

如果打印机通过 USB 连接,这一步的输出会类似direct usb://Samsung/ML-2010%20Series;如果是网络打印机,则显示network socket://192.168.1.50:9100。看到设备行,说明驱动已经能感知硬件。此时打开浏览器访问http://localhost:631,进入 Administration 页面,点 Add Printer,系统会列出检测到的设备,选择对应的三星型号,在型号列表里找到刚装好的 PPD,提交后即完成队列创建。

不习惯网页操作的话,命令行一样可以完成。下面是用 lpadmin 直接添加 USB 打印机的完整命令:

# 用 lpadmin 建队列,指定设备 URI 和 PPD lpadmin -p Samsung_ML_2010 -E -v usb://Samsung/ML-2010%20Series -m Samsung_ML_2010.ppd # 启用并接受队列任务 cupsenable Samsung_ML_2010 cupsaccept Samsung_ML_2010 # 打印一个测试文件 lp -d Samsung_ML_2010 /etc/issue

这段命令里,-p后面是队列名,可以自己起,但建议和型号一致方便辨认;-E表示启用队列;-v指定设备 URI,USB 打印机的 URI 格式是usb://厂商/型号,这一串不能随便改,改动之后 CUPS 就找不到设备了;-m指定队列的 PPD 文件名,就是刚才ls /usr/share/cups/model/samsung/里看到的那个 .ppd 文件。最后一条lp命令把/etc/issue文件内容发给打印机,用作基本输出验证。

不熟悉 PPD 文件名的读者,可以先执行find /usr/share/cups/model -iname "*samsung*"把完整文件名拿到手,再拼进-m参数。这里也顺带说明,cupsenable和cupsaccept分别控制队列的开关状态,前者决定打印机是否接收任务,后者决定 CUPS 是否接受新的任务提交,排在队列前面的任务卡住时,这两个命令是排查的第一抓手。

4. 排查与避坑:五个常见故障的正确打开方式

4.1 现象一:install.sh 提示缺少依赖而退出

运行安装脚本时,终端里出现类似error: failed dependencies或libcupsimage.so.2 不存在的提示,然后脚本中止,这就是典型的依赖缺失。原因是这个版次的驱动安装包依赖的运行时库在你系统里没有对应的版本,尤其是从官网精简的工作站版系统,装完桌面后没有安装额外的软件依赖包。

解决方式:先回到第 2 章把依赖清单补齐,不要试图强行加参数绕过依赖检查。用dpkg -l | grep -i cups检查 cups 相关包是否齐全,缺什么装什么,再重新执行 install.sh。如果安装脚本内部打包的是 rpm 文件,也可以直接用rpm -ivh --nodeps强装,但我不建议这条路径,因为绕过依赖之后,驱动装好了,过滤器加载时照样会因为缺库而失败,排查起来更绕。先修依赖再跑脚本,这是最省时间的顺序。

4.2 现象二:CUPS 添加打印机时,型号列表里找不到三星选项

明明 lpinfo 能识别到 USB 设备,但在 CUPS 添加打印机的型号列表里看不到 Samsung 或者你的型号,这是驱动文件没被正确加载的典型表现。多数原因是安装脚本执行时 CUPS 服务处于运行状态,文件写入完了但服务没有重新读取模型目录。

解决方式:重启 CUPS 后再刷新添加打印机页面。如果重启之后还是没有,手动检查 PPD 文件是不是真的在模型目录下:

# 检查模型目录里是否有三星 PPD find /usr/share/cups/model -iname "*samsung*" # 检查过滤器是否就位 ls /usr/lib/cups/filter/ | grep -i samsung

两个目录的检查结果都为空,说明驱动安装不完整,需要重跑 install.sh;只有 PPD 但没有过滤器,多半是安装脚本在复制过滤器时因权限问题中断,用 sudo 重跑一次即可。我曾经处理过一个案例,用户用的是带桌面环境的发行版,install.sh 里用 sudo 执行后半段命令时弹出了密码确认窗口,用户没注意,脚本实际只装了一半。这种翻车案例在 linux 运维故障案例里非常典型,问题往往不是技术难度,而是安装过程被中断了。

4.3 现象三:打印任务进了队列,打印机毫无反应

用lp -d递交任务后,lpstat -o能看到任务在队列里,状态一直是 processing,打印机面板没有任何动作。这一类问题在三星老机型上很常见,原因集中在三处:过滤器加载失败、设备 URI 错误、打印机固件处于休眠状态。

排查顺序是先看 CUPS 错误日志:

# 查看 CUPS 最近 50 行错误日志 tail -50 /var/log/cups/error_log

日志里如果出现filter failed或者unable to open filter,问题在过滤器,检查/usr/lib/cups/filter里是否有对应驱动文件以及文件的执行权限;出现device not found,问题在-v指定的 URI,重新用lsusb | grep -i samsung获取设备路径,改回正确的 URI。还有一类不常被注意到的情况,三星老激光机的节能模式非常激进,长时间待机后打印机进入深度休眠,此时系统发任务过去设备不会自动唤醒。应对方式是先按一下打印机面板的任意按键唤醒设备,再重新打印。这一步不用改任何配置,却经常被人忽略。

4.4 现象四:扫描设备能被识别,但 scanimage 报错

驱动装好后,scanimage -L能看到三星扫描设备,但实际扫描时报open of device samsungmfp:libusb:... failed,基本可以判定为权限问题。SANE 访问 USB 设备时需要通过操作系统的权限控制层,普通用户不在对应的用户组里,无法打开设备节点。

解决方式是把当前用户加入 scanner 和 lp 组,然后重新登录:

# 把当前用户加入 scanner 和 lp 组 sudo usermod -a -G scanner,lp $USER # 重新登录后执行扫描验证 scanimage -L

这条命令把用户追加到scanner组和lp组,scanner组控制 SANE 对扫描设备的访问权限,lp组控制打印相关设备的访问权限。加入组之后需要注销并重新登录才生效,如果急于验证,可以在终端里用newgrp scanner临时切换组上下文。另外提醒一下,如果系统里跑着 snap 版的扫描软件,snap 的沙箱可能拦截设备访问,优先用 apt 安装的软件。

4.5 现象五:内核升级或者系统更新后,打印和扫描同时失效

系统更新后打印机列表还在,但打印任务全部报错,扫描仪也找不到了,这种“系统一更新,驱动就翻车”的现象在 Linux 设备驱动场景里非常典型。原因是内核升级后,USB 设备节点的路径或者设备的 ID 映射关系发生了变化,而三星该版驱动里的静态配置文件还是按照旧环境写的,设备路径对不上,后端自然无法打开设备。

处理办法不复杂,重新执行一次 install.sh 就好,脚本会自动重建设备节点和老旧配置。如果重装之后仍然不稳定,检查一下 udev 规则文件是否被覆盖:

# 查看三星相关的 udev 规则 ls /etc/udev/rules.d/ | grep -i samsung # 重新加载 udev 规则 sudo udevadm control --reload-rules sudo udevadm trigger

这里把常见的“驱动失效”场景拆成了两个层面:一是安装脚本层面的文件缺失,重跑安装即可;二是系统层面的设备映射,用 udevadm 重新加载规则即可。需要留个心眼的是,升级系统前注意先备份/etc/sane.d/samsungmfp.conf这类配置文件,有些系统更新会在升级过程中清理旧配置目录,备份能避免重新配置网络打印机参数。这类问题在 linux 运维故障案例中属于高频项,建议记进自己的维护手册。

5. 进阶用法:命令行管打印机、网络打印和验证技巧

5.1 用 lpadmin 彻底摆脱浏览器页面

CUPS 的网页界面适合新手,但生产环境里我基本不碰它。驱动装好之后,用 lpadmin 一行命令即可完成队列创建。关键是先把 PPD 文件名摸清,再拼参数:

# 找到三星 PPD 的完整文件名 find /usr/share/cups/model/samsung -name "*.ppd" # 用 socket 协议添加网络打印机 sudo lpadmin -p Office_Samsung -E -v socket://192.168.1.50:9100 -m Samsung_ML_2010.ppd # 设置默认打印机 sudo lpadmin -d Office_Samsung

这组命令里,-v socket://...用的是打印机的 IP 地址和 9100 端口,这是大多数网络打印机的标准监听端口。-m参数指定的 PPD 文件名必须和 find 命令输出完全一致,大小写都不能出错。命令行方式还有一个好处,就是可以通过-o Duplex=DuplexNoTumble这样的参数直接预设双面打印选项,不需要进入打印机属性逐个找。

5.2 网络扫描的配置和防火墙值得注意

网络打印配好了,扫描又是另一回事。三星多合一机型的网络扫描,需要 SANE 后端知道打印机的 IP 才能建立连接。在/etc/sane.d/samsungmfp.conf里追加一行就行:

# 在 SANE 配置里指定网络扫描仪 IP echo 'option net-scanner-ip 192.168.1.50' | sudo tee -a /etc/sane.d/samsungmfp.conf

追加完配置后,用scanimage -L验证,输出中出现samsungmfp:net:192.168.1.50这样的设备行,说明网络扫描通道已打通。

防火墙方面,打印使用 9100 端口,CUPS 浏览和发现使用 631 端口,这两个端口需要在防火墙里放行,不然客户端打印不了,扫描也连不上:

# 放行 CUPS 和常用打印端口 sudo ufw allow 631/tcp sudo ufw allow 9100/tcp

5.3 验证驱动状态的四个快照命令

装完驱动,我习惯跑四个命令,把系统状态做一次快照,也为下次排错留一份对照素材:

# 打印机队列状态 lpstat -t # SANE 设备列表 scanimage -L # CUPS 错误日志尾部 tail -20 /var/log/cups/error_log # 三星驱动包安装状态 dpkg -l | grep -i samsung

这套命令每次装完驱动我必跑一遍,看的东西其实很简单:队列有没有、设备能不能看见、日志有没有新告警、驱动包版本是否和预期一致。从那以后,我每次在 Linux 上装三星打印机驱动,都会强制走一遍这套四命令的验证流程,再去做任何打印或扫描测试。先让系统状态自证清白,再让打印机出声出纸,能省下大量排查时间。希望这篇笔记帮到你,尤其是那些正在为老三星打印机在 Linux 下装驱动而头疼的人。

本文还有配套的精品资源,点击获取

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询