¡¡¡¡ÔÚ FreeBSD ÖУ¬ ·ÃÎÊɨÃèÒǵÄÄÜÁ¦£¬ ÊÇͨ¹ý SANE (Scanner Access Now Easy) API ÌṩµÄ¡£ SANE Ò²»áʹÓÃһЩ FreeBSD É豸Çý¶¯À´·ÃÎÊɨÃèÒÇÓ²¼þ¡£
¡¡¡¡FreeBSD Ö§³Ö SCSI ºÍ USB ɨÃèÒÇ¡£ ÔÚ×öÈκÎÅäÖÃ֮ǰÇëÈ·±£ÄúµÄɨÃèÒDZ» SANE Ö§³Ö¡£ SANE ÓÐÒ»¸ö Ö§³ÖµÄÉ豸 ÁÐ±í£¬ ¿ÉÒÔΪÄúÌṩÓйØÉ¨ÃèÒǵÄÖ§³ÖÇé¿öºÍ״̬µÄÐÅÏ¢¡£ ÔÚ FreeBSD 8.X ֮ǰ°æ±¾µÄϵͳÖУ¬ uscanner(4) ÊÖ²áÒ³Ò²ÌṩÁËϵͳ֧³ÖµÄ USB ɨÃèÒÇÁÐ±í¡£
¡¡¡¡ÉÏÃæÌáµ½ SCSI ºÍ USB ½Ó¿Ú¶¼ÊÇÖ§³ÖµÄ¡£ È¡¾öÓÚÄúµÄɨÃèÒǽӿڣ¬ ÐèÒª²»Í¬µÄÉ豸Çý¶¯³ÌÐò¡£
¡¡¡¡Ä¬È쵀 GENERIC Äں˰üº¬ÁËÖ§³Ö USB ɨÃèÒÇÐèÒªµÄÉ豸Çý¶¯¡£ Èç¹ûÄú¾ö¶¨Ê¹ÓÃÒ»¸ö¶¨ÖƵÄÄںˣ¬ È·±£ÏÂÃæÔÚÄúµÄÄÚºËÅäÖÃÎļþÖдæÔÚÏÂÃæÕâЩÐУº
device usb device uhci device ohci device ehci
¡¡¡¡ÔÚ FreeBSD 8.X ֮ǰµÄ°æ±¾ÖУ¬ »¹ÐèÒªÏÂÃæÕâÐÐÅäÖãº
device uscanner
¡¡¡¡ÔÚÕâЩ FreeBSD °æ±¾ÖУ¬ ÊÇͨ¹ýÉ豸Çý¶¯³ÌÐò uscanner(4) À´Ìṩ¶Ô USB ɨÃèÒǵÄÖ§³ÖµÄ¡£ ´Ó FreeBSD 8.0 ¿ªÊ¼£¬ ÕâЩ֧³ÖÔòÖ±½ÓÓÉ libusb(3) º¯Êý¿âÌṩ¡£
¡¡¡¡Ê¹ÓÃÕýÈ·µÄÄÚºËÖØÐÂÒýµ¼ÏµÍ³Ö®ºó£¬ ²åÈë USB ɨÃèÒÇ¡£ ϵͳÏûÏ¢»º³åÇø (ʹÓà dmesg(8) ²é¿´) Öлá³öÏÖÏÂÃæµÄÐÅÏ¢£¬ ±íʾ¼ì²âµ½ÁËɨÃèÒÇ£º
ugen0.2: <EPSON> at usbus0
¡¡¡¡»òÕߣ¬ ¶ÔÓÚ FreeBSD 7.X ϵͳ¶øÑÔ£º
uscanner0: EPSON EPSON Scanner, rev 1.10/3.02, addr 2
¡¡¡¡Ëæ FreeBSD °æ±¾²»Í¬£¬ ÕâЩÐÅÏ¢±íʾɨÃèÒÇÉ豸λÓÚÉ豸½Úµã /dev/ugen0.2 »ò /dev/uscanner0¡£ ÔÚÕâ¸öÀý×ÓÖУ¬ ÎÒÃÇʹÓõÄÊÇ EPSON Perfection® 1650 USB ɨÃèÒÇ¡£
¡¡¡¡Èç¹ûÄúµÄɨÃèÒÇÊÇ SCSI ½Ó¿ÚµÄ£¬ ÖØÒªµÄÊÇÒªÖªµÀÄúʹÓÃÄÄÖÖ SCSI ¿ØÖÆÆ÷¡£ È¡¾öÓÚËùʹÓÃµÄ SCSI оƬ£¬ ÄúÐèÒªµ÷ÕûÄÚºËÅäÖÃÎļþ¡£ GENERIC µÄÄÚºËÖ§³Ö×î³£ÓÃµÄ SCSI ¿ØÖÆÆ÷¡£ ÇëÔĶÁ NOTES Îļþ²¢ÔÚÄúµÄÄÚºËÅäÖÃÎļþÖÐÌí¼ÓÕýÈ·µÄÐС£ ³ýÁË SCSI ÊÊÅäÆ÷Çý¶¯Ö®Í⣬ Äú»¹ÐèÒªÔÚÄÚºËÅäÖÃÎļþÖÐÔö¼ÓÏÂÊöÅäÖãº
device scbus device pass
¡¡¡¡ÔÚÕýÈ·µØÁª±à²¢°²×°ÁËÄÚºËÖ®ºó£¬ ¾ÍÓ¦¸Ã¿ÉÒÔÔÚϵͳÆô¶¯Ê±£¬ ´ÓϵͳÏûÏ¢»º³åÖп´µ½ÕâЩÉ豸£º
pass2 at aic0 bus 0 target 2 lun 0 pass2: <AGFA SNAPSCAN 600 1.10> Fixed Scanner SCSI-2 device pass2: 3.300MB/s transfers
¡¡¡¡Èç¹ûÄúµÄɨÃèÒÇûÓÐÔÚϵͳÆô¶¯µÄʱºò¼Óµç£¬ ºÜ¿ÉÄÜ»¹ÐèÒªÇ¿ÖÆÊÖ¶¯¼ì²âһϣ¬Óà camcontrol(8) ÃüÁîÖ´ÐÐÒ»´Î SCSI ×ÜÏßɨÃ裺
# camcontrol rescan all Re-scan of bus 0 was successful Re-scan of bus 1 was successful Re-scan of bus 2 was successful Re-scan of bus 3 was successful
¡¡¡¡È»ºóɨÃèÒǾͻá³öÏÖÔÚ SCSI É豸ÁбíÀ
# camcontrol devlist <IBM DDRS-34560 S97B> at scbus0 target 5 lun 0 (pass0,da0) <IBM DDRS-34560 S97B> at scbus0 target 6 lun 0 (pass1,da1) <AGFA SNAPSCAN 600 1.10> at scbus1 target 2 lun 0 (pass3) <PHILIPS CDD3610 CD-R/RW 1.00> at scbus2 target 0 lun 0 (pass2,cd0)
¡¡¡¡ÓÐ¹Ø SCSI É豸µÄ¸ü¶àϸ½Ú£¬ ¿É²é¿´ scsi(4) ºÍ camcontrol(8) ÊÖ²áÒ³¡£
¡¡¡¡SANE ϵͳ·ÖΪÁ½²¿·Ö£º ºó¶Ë (graphics/sane-backends) ºÍǰ¶Ë (graphics/sane-frontends)¡£ ºó¶Ë²¿·ÖÌṩµ½É¨ÃèÒÇ×ÔÉíµÄ·ÃÎÊ¡£ SANE µÄ Ö§³ÖÉ豸ÁбíÏêϸ˵Ã÷ÁËÄÄÒ»¸öºó¶Ë¿ÉÒÔÖ§³ÖÄúµÄͼÏóɨÃèÒÇ¡£ Èç¹ûÄúÏëʹÓÃÄúµÄÉ豸£¬¾Í±ØÐëΪÄúµÄɨÃèÒÇÑ¡¶¨ÕýÈ·µÄºó¶Ë¡£ ǰ¶Ë²¿·ÖÌṩͼÐλ¯µÄɨÃè½çÃæ (xscanimage)¡£
¡¡¡¡Òª×öµÄµÚÒ»²½¾ÍÊǰ²×° graphics/sane-backends port »òÕß package¡£È»ºó£¬Ê¹Óà sane-find-scanner ÃüÁîÀ´¼ì²é SANE ϵͳ×öµÄɨÃèÒǼì²â£º
# sane-find-scanner -q found SCSI scanner "AGFA SNAPSCAN 600 1.10" at /dev/pass3
¡¡¡¡Êä³öÏÔʾÁËɨÃèÒǵĽӿÚÀàÐͺÍɨÃèÒÇÁ¬½Óµ½ÏµÍ³ÉϵÄÉ豸½Úµã¡£ Éú²ú³§¼ÒºÍ²úÆ·ÐͺſÉÄÜûÓÐÏÔʾ£¬²»¹ý²»ÖØÒª¡£
×¢Òâ: һЩ USB ɨÃèÒÇÐèÒªÄú¼ÓÔØ¹Ì¼þ£¬ºó¶ËµÄÊÖ²áÒ³ÖÐÓÐÕâ·½ÃæµÄ½âÊÍ¡£ ÄúÒ²Ó¦¸ÃÔĶÁ sane-find-scanner(1) ºÍ sane(7) ÊÖ²áÒ³¡£
¡¡¡¡ÏÖÔÚÎÒÃÇÐèÒª¼ì²éɨÃèÒÇÊÇ·ñ¿ÉÒÔ±»É¨Ãèǰ¶Ëʶ±ð¡£ ĬÈÏÇé¿öÏ£¬ SANE ºó¶Ë×Ô´øÒ»¸ö½Ð×ö
scanimage(1)
µÄÃüÁîÐй¤¾ß¡£ Õâ¸öÃüÁîÔÊÐíÄúÁгöÉ豸ÒÔ¼°´ÓÃüÁîÐÐÖ´ÐÐͼƬɨÃè¡£ -L
Ñ¡ÏîÓÃÀ´ÁгöɨÃèÒÇÉ豸£º
# scanimage -L device `snapscan:/dev/pass3' is a AGFA SNAPSCAN 600 flatbed scanner
¡¡¡¡»òÕߣ¬ Èç¹ûʹÓõÄÊÇ µÚ 7.6.2.1 ½Ú ÖÐµÄ USB ɨÃèÒÇ£º
# scanimage -L device 'epson2:libusb:/dev/usb:/dev/ugen0.2' is a Epson GT-8200 flatbed scanner
¡¡¡¡ÉÏÊöÊä³öÀ´×ÔÓÚ FreeBSD 8.X ϵͳ¡£ 'epson2:libusb:/dev/usb:/dev/ugen0.2' ¸ø³öÁËɨÃèÒÇËùʹÓõĺǫ́Ãû×Ö (epson2) ºÍÉ豸½Úµã (/dev/ugen0.2)¡£
×¢Òâ: Èç¹ûûÓÐÊä³öÈκÎÐÅÏ¢£¬ »òÌáʾûÓÐʶ±ðµ½É¨ÃèÒÇ£¬ Ôò˵Ã÷ scanimage(1) ÎÞ·¨Ê¶±ðËü¡£ Èç¹û·¢ÉúÕâÖÖÇé¿ö£¬ Äú¾ÍÐèÒªÐÞ¸ÄɨÃèÒÇÖ§³Öºó¶ËµÄÅäÖÃÎļþ£¬ ²¢¶¨ÒåËùʹÓõÄɨÃèÉ豸¡£ /usr/local/etc/sane.d/ Ŀ¼Öаüº¬ÁËËùÓеĺó¶ËÅäÖÃÎļþ¡£ ÕâÀàʶ±ðÎÊÌâ¾³£»áÔÚijЩ USB ɨÃèÒÇÉÏ·¢Éú¡£
linkend="scanners-kernel-usb"> ÖÐËùʹÓÃµÄ USB ɨÃèÒÇ£¬ sane-find-scanner »á¸ø³öÏÂÃæµÄÐÅÏ¢£º
ÀýÈ磬 ¶ÔÓÚÔÚ µÚ 7.6.2.1 ½Ú£¬ ÔÚ FreeBSD 8.X ÖУ¬ ɨÃèÒÇÒѾ±»ºÜºÃµØÊ¶±ð²¢Äܹ»Õý³£¹¤×÷ÁË£» ¶ø¶ÔÓÚ¸üÔç°æ±¾µÄ FreeBSD ¶øÑÔ (ʹÓà uscanner(4) Çý¶¯³ÌÐò) sane-find-scanner Ôò»á¸ø³öÕâÑùµÄÐÅÏ¢£º
# sane-find-scanner -q found USB scanner (UNKNOWN vendor and product) at device /dev/uscanner0ɨÃèÒDZ»ÕýÈ·µÄ̽²âµ½ÁË£¬ËüʹÓà USB ½Ó¿Ú£¬Á¬½ÓÔÚ /dev/uscanner0 É豸½ÚµãÉÏ¡£ ÎÒÃÇÏÖÔÚ¿ÉÒÔ¼ì²é¿´¿´É¨ÃèÒÇÊÇ·ñ±»ÕýÈ·µÄʶ±ð£º
# scanimage -L No scanners were identified. If you were expecting something different, check that the scanner is plugged in, turned on and detected by the sane-find-scanner tool (if appropriate). Please read the documentation which came with this software (README, FAQ, manpages).ÓÉÓÚɨÃèÒÇûÓÐʶ±ð³É¹¦£¬ ÎÒÃǾÍÐèÒª±à¼ /usr/local/etc/sane.d/epson2.conf Îļþ¡£ ËùÓõÄɨÃèÒÇÐͺÅÊÇ EPSON Perfection 1650£¬ ÕâÑùÎÒÃÇÖªµÀɨÃèÒÇӦʹÓà epson ºó¶Ë¡£È·±£ÔĶÁºó¶ËÅäÖÃÎļþÖеİïÖú×¢ÊÍ¡£ ¸Ä¶¯·Ç³£¼òµ¥£º×¢Ê͵ôµ¼ÖÂÄúµÄɨÃèÒÇʹÓôíÎó½Ó¿ÚµÄËùÓÐÐÐ (ÔÚÎÒÃÇÕâÖÖÇé¿öÏ£¬ÎÒÃǽ«×¢Ê͵ô´Ó scsi ¿ªÊ¼µÄËùÓÐÐУ¬ÒòΪÎÒÃǵÄɨÃèÒÇʹÓà USB ½Ó¿Ú)£¬È»ºóÔÚÎļþµÄ½áβÌí¼ÓÖ¸¶¨µÄ½Ó¿ÚºÍËùÓõÄÉ豸½Úµã¡£ ÕâÖÖÇé¿öÏ£¬ Ìí¼ÓÏÂÃæÕâÐУº
usb /dev/uscanner0ÇëÈ·±£ÔĶÁºó¶ËÅäÖÃÎļþÌṩµÄ×¢ÊÍÒÔ¼°ºó¶ËÊÖ²áÒ³Á˽â¸ü¶àϸ½Ú£¬ ²¢Ê¹ÓÃÕýÈ·µÄÓï·¨¡£ÎÒÃÇÏÖÔÚ¿ÉÒÔ¼ìÑéɨÃèÒÇÊÇ·ñ±»Ê¶±ðµ½ÁË£º
# scanimage -L device `epson:/dev/uscanner0' is a Epson GT-8200 flatbed scannerÎÒÃÇµÄ USB ɨÃèÒDZ»Ê¶±ðµ½ÁË¡£ ´ËʱÈç¹ûÉ̱êºÍÐͺÅÓëɨÃèÒǵÄʵ¼ÊÇé¿ö²»·û£¬ ²¢²»»á´øÀ´Ì«´óµÄÂé·³¡£ ÄúÐèÒª¹Ø×¢µÄÊÇ `epson:/dev/uscanner0' ×ֶΣ¬ Õâ¸ö¸øÁËÎÒÃÇÕýÈ·µØºó¶ËÃû³ÆºÍÕýÈ·µÄÉ豸½Úµã¡£
¡¡¡¡Ò»µ© scanimage -L ÃüÁî¿ÉÒÔ¿´µ½É¨ÃèÒÇ£¬ ÅäÖþÍÍê³ÉÁË¡£É豸ÏÖÔÚ×¼±¸ºÃµÈ´ýɨÃèÁË¡£
¡¡¡¡scanimage(1) ÔÊÐíÎÒÃÇ´ÓÃüÁîÐÐÖ´ÐÐͼƬɨÃ裬 Ïà±ÈÖ®ÏÂʹÓÃͼÐÎÓû§½çÃæÀ´Ö´ÐÐͼƬɨÃè»á¸üºÃ¡£ SANE ÌṩÁËÒ»¸ö¼òµ¥µ«ÊµÓõÄͼÐνçÃæ£º xscanimage (graphics/sane-frontends)¡£
¡¡¡¡Xsane (graphics/xsane)ÊÇÁíÒ»¸öÁ÷ÐеÄͼÐÎɨÃèǰ¶Ë¡£ Õâ¸öǰ¶ËÌṩÁËһЩ¸ß¼¶ÌØÐÔ£¬ ±ÈÈç¶àÑùµÄɨÃèģʽ(photocopy£¬fax£¬µÈ¡£)£¬ É«²ÊУÕý£¬ÅúÁ¿É¨Ã裬µÈµÈ¡£ÕâÁ½¸ö³ÌÐò¶¼¿ÉÒÔ×÷Ϊ GIMP µÄ²å¼þʹÓá£
¡¡¡¡Ç°ÃæËùÓеIJÙ×÷¶¼ÊÇÓà root ȨÏÞÀ´Íê³ÉµÄ¡£ È»¶øÄú¿ÉÄÜÐèÒªÈÃÆäËûµÄÓû§Ò²¿ÉÒÔ·ÃÎÊɨÃèÒÇ¡£ Óû§ÐèÒªÓÐɨÃèÒÇËùÓõÄÉ豸½ÚµãµÄ¶ÁºÍдȨÏÞ¡£ ±ÈÈ磬ÎÒÃÇµÄ USB ɨÃèÒÇʹÓÃÉ豸½Úµã /dev/ugen0.2 ʵ¼ÊÉÏÖ»Êǵ½Êµ¼ÊÉ豸½Úµã /dev/usb/0.2.0 µÄ·ûºÅÁ¬½Ó (¿ÉÒÔͨ¹ý²é¿´ /dev Ŀ¼µÄÄÚÈÝÀ´È·ÈÏÕâÒ»µã)¡£ É豸½Úµã±¾ÉíºÍÕâ¸ö·ûºÅÁ¬½Ó·Ö±ðÊôÓÚ wheel ºÍ operator ×é¡£ ½«Óû§ joe Ìí¼Óµ½ ÕâЩ×éÖУ¬ ¾Í¿ÉÒÔÔÊÐíËûʹÓÃɨÃèÒÇÁË£¬ ²»¹ý£¬ ³öÓÚÏÔ¶øÒ×¼ûµÄ°²È«·½ÃæµÄÔÒò£¬ ÔÚ½«Óû§¼Óµ½Ìض¨µÄÓû§×飬 ÌØ±ðÊÇ wheel ×éʱ£¬ ÎÞÒÉÐèÈý˼¶øºóÐС£ ¸üºÃµÄ½â¾ö·½·¨ÊÇ´´½¨Ò»¸öרÃÅÓÃÓÚ·ÃÎÊ USB É豸µÄ×飬 ²¢ÈÃÕâ¸ö×éµÄ³ÉÔ±Äܹ»·ÃÎÊ USB É豸¡£
¡¡¡¡ÕâÀï×÷ΪʾÀý£¬ ÎÒÃǽ«»áʹÓÃÃûΪ usb µÄ×é¡£ µÚÒ»²½ÊǽèÖú pw(8) ÃüÁîÀ´´´½¨Ëü£º
# pw groupadd usb
¡¡¡¡½ÓÏÂÀ´£¬ Áî /dev/ugen0.2 ·ûºÅÁ¬½ÓºÍ /dev/usb/0.2.0 É豸½ÚµãÄܹ»ÒÔ usb ×éµÄÉí·ÝÀ´·ÃÎÊ£¬ ¾ßÌå¶øÑÔÊÇÅäÖÃÕýÈ·µÄдȨÏÞ (0660 »ò 0664)£¬ ÒòΪĬÈÏÇé¿öÏÂÖ»ÓÐÊôÖ÷ (root) ²ÅÄÜдÕâЩÉ豸¡£ ÕâЩÅäÖÃÊÇͨ¹ýÔÚ /etc/devfs.rules ÎļþÖÐÌí¼ÓÈçϵÄÉèÖÃÀ´ÊµÏֵģº
[system=5] add path ugen0.2 mode 0660 group usb add path usb/0.2.0 mode 0666 group usb
¡¡¡¡FreeBSD 7.X Óû§ÐèÒª½«ÉÏÃæµÄÅäÖøÄΪʹÓÃÓëÖ®¶ÔÓ¦µÄ /dev/uscanner0£º
[system=5] add path uscanner0 mode 660 group usb
¡¡¡¡ËæºóÄú»¹ÐèÒªÔÚ /etc/rc.conf ÖÐÌí¼ÓÏÂÃæµÄÄÚÈݲ¢ÖØÐÂÆô¶¯£º
devfs_system_ruleset="system"
¡¡¡¡¹ØÓÚÕâЩÅäÖõĽøÒ»²½Ï¸½ÚÇë²Î¿¼Áª»úÊÖ²á devfs(8)¡£
¡¡¡¡ÏÖÔÚ£¬ Ö»Ð轫Óû§Ìí¼Óµ½ usb ×飬 ¾Í¿ÉÒÔʹÓÃɨÃèÒÇÁË£º
# pw groupmod usb -m joe
¡¡¡¡¸ü¶àÏêÇ飬 Çë²Î¼ûÁª»úÊÖ²á pw(8)¡£
±¾ÎĵµºÍÆäËüÎĵµ¿É´ÓÕâÀïÏÂÔØ£ºftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.
Èç¹û¶ÔÓÚFreeBSDÓÐÎÊÌ⣬ÇëÏÈÔĶÁÎĵµ£¬Èç²»Äܽâ¾öÔÙÁªÏµ<questions@FreeBSD.org>.
¹ØÓÚ±¾ÎĵµµÄÎÊÌâÇë·¢ÐÅÁªÏµ <doc@FreeBSD.org>.