本文是半成品, 僅提供思路. 不保證能完全成功 (因為我就沒成功, USB 識別不了)
本文基於 github 開源專案以及 docker
關閉群暉自帶的 cups
群暉是自帶 cups, 你只需要把 USB 介面連結印表機後, 即可在控制皮膚->外接裝置, 連結即可
我的由於不知名的原因壓根識別不到, 所以嘗試了這種 cups辦法
首先, 開啟控制皮膚->任務計劃->新增->計劃的任務->使用者定義的指令碼
任務名稱隨意, 使用者賬號選擇 root 計劃中選擇日期在每天執行, 或者開機執行, 任務設定->執行命令中選擇使用者定義的指令碼, 貼上進 systemctl stop cupsd
該程式碼適用於 dsm 7 以上, dsm 6 輸入 ```
synoservicecfg--hard-stop cupsd
synoservicecfg --hard-stop cups-lpd
synoservicectl --stop cupsd
synoservicectl --stop cups-lpd
然後儲存, 執行.
建立容器
在file station 中找到 docker 資料夾, 在下面建立 cups 資料夾, 並在其下面建立 config 和 services資料夾
許可權我一般就給 everyone 了
然後 ssh 登陸到群暉的控制檯, sudo -i
進入超級管理員模式
準備拉取映象, 現在有兩個映象選擇
第一個是
docker create \
--name=CUPS_Demo \
--restart=always \
--net=host \
-v /var/run/dubs:/var/run/dubs \
-v //volume1/docker/cups/config:/config \
-v /volume1/docker/cups/services:/services \
-v /var/run/dbus:/var/run/dbus "ydkn/cups"
這個映象拉取後映象是預設關閉的, 需要先把印表機連結到群暉然後手動開啟. 如果直接開啟映象就會直接報錯, 好處是這個映象自帶的驅動比較多, 大部分印表機都能識別 (然而我就是那個小部分)
這樣就完成了, 然後連結上印表機, 稍微配置後就可以使用了
第二個映象來源於知乎
https://zhuanlan.zhihu.com/p/668877208?utm_id=0
docker run -d --name=airprint \
--net="host" \
--privileged=true \
-e TZ="Asia/Shanghai" \
-e HOST_OS="Synology" \
-e "TCP_PORT_631"="631" \
-v "/volume1/docker/airprint/config":"/config" \
-v /dev:/dev \
-v "/volume1/docker/airprint/avahi":"/etc/avahi/services" \
-v /var/run/dbus:/var/run/dbus "olbat/cupsd"
結尾
很遺憾沒有帶來完整的教程, 因為我的這個 USB 識別不了, 估計是印表機太老了. 如果讀者有人成功了, 煩請給我留言[]