本帖最后由 tenixboy 于 2023-6-30 21:32 编辑
家里有一台HP LaserJet M1005 MFP古董一体机。论坛里有很多关于通过在N1(我刷的openwrt系统)上安装docker镜像实现无线打印的帖子,我参照了https://www.right.com.cn/forum/thread-8220309-1-1.html这篇帖子成功实现了无线打印。
但是这个方法只能实现一体机的打印功能,扫描功能就没办法用了。
我照猫画虎搜了一下,发现github上真的有一个可以实现共享扫描的docker镜像,地址如下:https://github.com/sbs20/scanservjs
安装方法和安装打印镜像一样,进入openwrt——系统——TTYD终端,输入以下代码:
docker pull sbs20/scanservjs:latest
docker rm --force scanservjs-container 2> /dev/null
docker run -d \
-p 8080:8080 \
-v /var/run/dbus:/var/run/dbus \
--net=host \
--restart unless-stopped \
--name scanservjs-container \
--privileged sbs20/scanservjs:latest
浏览器打开192.168.XXX.XXX:8080 (前面为N1盒子ip地址,端口8080)进入扫描管理界面,即可直接扫描。
我在CSDN上把打印和扫描的内容整合了一下,写了篇帖子:https://blog.csdn.net/tenixboy/a ... 1001.2014.3001.5502
————————
这个docker也有热插拔的问题,断电重启后找不到打印机,github上原帖主的解决方案如下:
Docker container loses scanner after device rebootAs per [color=var(--fgColor-accent, var(--color-accent-fg))]issue #505 containers can lose their access to a device after a device reboot. This is more SANE and containers than this app. The user's solution was to add a udev rule as below. You will need to substitute your own product and vendor variables. /etc/udev/rules.d/99-printer.rules SUBSYSTEMS=="usb",KERNELS=="1-1.1",DRIVERS=="usb",ATTRS{idProduct}=="0827", ATTRS{idVendor}=="04b8", ATTRS{serial}=="L53010612130846360",SYMLINK+="%s{manufacturer}_printer",TAG+="systemd",RUN+="/bin/bash -c '/usr/bin/systemctl restart container-scanservjs.service &'"
————————
下面是在OpenWrt上安装sane套件的方法,貌似没有必要安装,先记录一下。如果安装完上面的docker镜像后无法使用,也可以试下。 1、在OpenWrt上安装必要的支撑程序: opkg update
opkg install sane-daemon sane-frontends sane-hpljm1005 xinetd
sane-hpljm1005是HP Laserjet M1005 MFP的扫描驱动程序,若是其它机型,则需要自己查询如下网站进行确认,并自行修改代码。
2、运行一下以下命令确认扫描仪是否正确安装: scanimage -L
显示示例如下: device `hpljm1005:libusb:001:002' is a Hewlett-Packard LaserJet M1005 multi-function peripheral
显示类似内容即OK。
|