{"id":16,"date":"2019-04-25T01:10:21","date_gmt":"2019-04-24T17:10:21","guid":{"rendered":"http:\/\/wordpress-stage\/?p=16"},"modified":"2025-10-28T21:58:31","modified_gmt":"2025-10-28T13:58:31","slug":"saned-on-openwrt","status":"publish","type":"post","link":"https:\/\/blog.buck5060.tw\/?p=16","title":{"rendered":"Saned on OpenWRT"},"content":{"rendered":"<p>\u5feb\u901f\u7d00\u9304\u4e00\u4e0b\u600e\u9ebc\u7528saned\u67b6scanner server<\/p>\n<h2>\u60c5\u5883<\/h2>\n<ul>\n<li>\u6709\u4e00\u53f0USB Scanner\u3001\u4e00\u53f0OpenWRT Router with USB Port\uff0c\u60f3\u5f9e\u7db2\u8def\u9023\u63a5\u6383\u63cf\u6a5f\u505a\u6383\u63cf<\/li>\n<\/ul>\n<h2>\u5b89\u88dd\u65b9\u5f0f<\/h2>\n<h3>Server side(OpenWRT)<\/h3>\n<ul>\n<li>AP\u8cc7\u8a0a\uff1aDIR-835, OpenWRT 15.05<\/li>\n<li>\u5b89\u88dd\u5957\u4ef6 (opkg update &amp;&amp; opkg install [packages])\n<ul>\n<li>\u6383\u63cf\u8edf\u9ad4\u548c\u9a45\u52d5\uff1alibsane\u3001sane-frontends\u3001sane-genesys<\/li>\n<li>\u7db2\u8def\u76f8\u95dc\uff1axinetd\u3001sane-daemon\u3001sane-net<\/li>\n<\/ul>\n<\/li>\n<li>\u8a2d\u5b9a\uff1a\n<ul>\n<li>Saned\u6709\u5206\u524d\u5f8c\u7aef\uff0c\u524d\u7aef\u505a\u7db2\u8def\u9023\u63a5\uff0c\u5f8c\u7aef\u8ddf\u786c\u9ad4\u6709\u95dc\u6240\u4ee5\u8981\u88dd\u5c0d<\/li>\n<li>Saned\n<ul>\n<li>\u78ba\u5b9a\u627e\u5f97\u5230\u6383\u63cf\u6a5f <code>sane-find-scanner<\/code><\/li>\n<li>\u78ba\u5b9asane\u7684\u524d\u7aef\u6293\u5f97\u5230\u6383\u63cf\u6a5f <code>scanimage -L<\/code><\/li>\n<\/ul>\n<\/li>\n<li>Xinetd\n<ul>\n<li>Guide by openwrt (\u5167\u542bxinet\u8a2d\u5b9a): <a href=\"https:\/\/openwrt.org\/inbox\/docs\/guide-user\/services\/scanner_server\/saned\">saned scanner server<\/a>         <\/li>\n<li><code>\/etc\/xinet.d\/sane-port<\/code> \u591a\u4e00\u884c <code>protocol = tcp<\/code><\/li>\n<li><code>\/etc\/init.d\/xinetd start<\/code> \u57f7\u884c\u7db2\u8defdeamon.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<li>[Optional] \u9632\u706b\u7246\u8a18\u5f97\u958b\u6d1e<\/li>\n<\/ul>\n<h3>Client side (Ubuntu)<\/h3>\n<ul>\n<li>\u5b89\u88dd\u57fa\u672c\u8edf\u9ad4 <code>sudo apt install sane sane-utils<\/code><\/li>\n<li><code>sudo vim \/etc\/sane.d\/net.conf<\/code>  \u52a0\u4e00\u884cAP(scanner)\u7684IP or Domain Name<\/li>\n<li>\u57f7\u884c <code>scanimage -L<\/code> \u78ba\u8a8d\u6383\u63cf\u6a5f\u662f\u5426\u80fd\u9023\u4e0a<\/li>\n<li>\u8a2d\u5b9a\u6383\u63cf\u6a5fIP or domain <code>sudo vim \/etc\/sane.d\/net.conf<\/code><\/li>\n<li>\u53ef\u7528 GNOME\u5167\u5efa\u7684 <code>simple scan<\/code> \u6383\uff0c\u6216\u5c08\u696d\u7684 <code>xsane<\/code><\/li>\n<\/ul>\n<h3>Client side(Android)<\/h3>\n<ul>\n<li>\u4e0b\u8f09<a href=\"https:\/\/play.google.com\/store\/apps\/details?id=com.sane.droid&amp;hl=zh_HK\">SANEDroid<\/a><\/li>\n<li>\u5728(\u8a2d\u5b9a) &gt; Preferences &gt; SANE_NET_HOSTS\uff0c\u6539\u70baAP(scanner)\u7684IP or Domain Name<\/li>\n<li>(\u8a2d\u5b9a) &gt; Refresh Device List\uff0c\u61c9\u8a72\u6703\u627e\u5230\u6383\u63cf\u6a5f\u5982\u5716\uff1a<img decoding=\"async\" src=\"https:\/\/blog.buck5060.tw\/wp-content\/uploads\/2019\/04\/sanedriod.png\" alt=\"\" \/><\/li>\n<\/ul>\n<h3>Client side(Windows - SaneTwain)<\/h3>\n<ul>\n<li>\u4e0b\u8f09<a href=\"https:\/\/sanetwain.ozuzo.net\/#download\">SaneTwain<\/a><\/li>\n<li>\u5b89\u88dd\u5f8c\u57f7\u884c <code>ScanImage<\/code> <\/li>\n<li>Hostname \u8f38\u5165AP IP\u4f4d\u7f6e <code>140.113.194.247<\/code>\uff0c\u4e26\u522a\u9664username<\/li>\n<li>\u529f\u80fd\n<ul>\n<li>[\u5de6\u4e0a\u5716\u793a1] \u6383\u63cf\uff1a\u9078\u64c7\u5b58\u6a94\u4f4d\u7f6e\u5f8c\u6383\u63cf<\/li>\n<li>[\u5de6\u4e0a\u5716\u793a2] \u6383\u63cf\u9810\u89bd<\/li>\n<li>[\u53f3\u4e0a\u9078\u55ae] \u9078\u64c7Resolution\uff08DPI\uff09<\/li>\n<li>[\u4e2d\u9593] \u9810\u89bd\uff0c\u53ef\u9078\u53d6\u6383\u63cf\u4f4d\u7f6e<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3>Client side(Windows - wiasane)<\/h3>\n<ul>\n<li>\u5c07SANE\u8f49\u63db\u70baWindows\u7684\u6383\u63cf\u6a5f\uff08Windows Image Acquisition\uff09<\/li>\n<li><a href=\"https:\/\/github.com\/mback2k\/wiasane\/wiki\/Downloads\">\u4e0b\u8f09\u4f4d\u7f6e<\/a><\/li>\n<li>\u5b89\u88dd\u6642\u6703\u554f\u6383\u63cf\u6a5f\u4f4d\u7f6e\uff0c\u88dd\u5b8c\u4e4b\u5f8c\u6703\u7522\u751f\u4e00windows\u6383\u63cf\u6a5f<\/li>\n<\/ul>\n<h2>Debug<\/h2>\n<ul>\n<li>\n<p>Sane Server<\/p>\n<ul>\n<li>Sane Server(saned)\u57f7\u884c\u65bcAP\u4e0a\uff0c\u7531xinet\u76e3\u807d\u7db2\u8defport\uff0c\u7576\u6709\u4eba\u9023\u81f3tcp 6566 port\u6642\u57f7\u884csaned<\/li>\n<li>Saned Control(tcp 6566)\u4e00\u6b21\u53ea\u80fd\u4e00\u4eba\u7528\uff0c\u82e5\u9023\u4e0d\u9032\u53bb\u770b\u770b\u6709\u6c92\u6709\u4eba\u4f54\u7528<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>SaneTwain<\/p>\n<ul>\n<li>\u6383\u63cf\u6216\u9810\u6383\u7a0b\u5f0f\u6703\u770b\u8d77\u4f86\u50cf\u5361\u4f4f<\/li>\n<li>\u95dc\u9589\u6642\u53ef\u80fd\u6703\u9047\u5230\u8a18\u61b6\u9ad4\u932f\u8aa4<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h2>Reference<\/h2>\n<ol>\n<li><a href=\"http:\/\/www.sane-project.org\/sane-frontends.html\">sane-project<\/a><\/li>\n<li><a href=\"https:\/\/openwrt.org\/inbox\/docs\/guide-user\/services\/scanner_server\/saned\">saned scanner server by OpenWRT<\/a> <\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>\u5feb\u901f\u7d00\u9304\u4e00\u4e0b\u600e\u9ebc\u7528saned\u67b6scanner server \u60c5\u5883 \u6709\u4e00\u53f0USB Scanner\u3001\u4e00\u53f0OpenW &hellip; <a href=\"https:\/\/blog.buck5060.tw\/?p=16\" class=\"more-link\">\u95b1\u8b80\u5168\u6587 <span class=\"screen-reader-text\">Saned on OpenWRT<\/span><\/a><\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3,2],"tags":[],"class_list":["post-16","post","type-post","status-publish","format-standard","hentry","category-it","category-openwrt"],"_links":{"self":[{"href":"https:\/\/blog.buck5060.tw\/index.php?rest_route=\/wp\/v2\/posts\/16","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.buck5060.tw\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.buck5060.tw\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.buck5060.tw\/index.php?rest_route=\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.buck5060.tw\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=16"}],"version-history":[{"count":8,"href":"https:\/\/blog.buck5060.tw\/index.php?rest_route=\/wp\/v2\/posts\/16\/revisions"}],"predecessor-version":[{"id":146,"href":"https:\/\/blog.buck5060.tw\/index.php?rest_route=\/wp\/v2\/posts\/16\/revisions\/146"}],"wp:attachment":[{"href":"https:\/\/blog.buck5060.tw\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=16"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.buck5060.tw\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=16"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.buck5060.tw\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=16"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}