sane-usb(5) SANE Scanner Access Now Easy sane-usb(5)

sane-usb - نکات و راهنمای پیکربندی USB برای SANE

این صفحه راهنما حاوی اطلاعاتی در مورد چگونگی دسترسی به اسکنرهای دارای رابط USB است. این راهنما روی دو موضوع اصلی تمرکز دارد: شناسایی اسکنر توسط هسته سیستم‌عامل و استفاده از آن با SANE.

این صفحه برای بیشتر بک‌اندهای USB و اسکنرها کاربرد دارد، زیرا آن‌ها از رابط عمومی sanei_usb استفاده می‌کنند. با این حال، یک استثنا وجود دارد: اسکنرهای USB که توسط بک‌اند sane-microtek2(5) پشتیبانی می‌شوند، به یک درایور ویژه هسته USB نیاز دارند.

این یک بخش کوتاه شبیه به راهنمای گام‌به‌گام (HOWTO) است. برای جزئیات کامل، بخش‌های بعدی را بخوانید. هدف این بخش، شناسایی اسکنر توسط sane-find-scanner(1) است.

دستور sane-find-scanner(1) را اجرا کنید. اگر اسکنر شما را با شناسه‌های درست تولیدکننده (Vendor) و محصول (Product) فهرست کرد، کار تمام است. برای جزئیات در مورد نحوه ادامه، بخش مسائل SANE (SANE ISSUES) را ببینید.

آیا sane-find-scanner(1) اسکنر شما را فهرست نمی‌کند؟ آیا با دسترسی کاربر ریشه (root) کار می‌کند؟ اگر بله، یک مشکل دسترسی و مجوزها وجود دارد. برای جزئیات بخش کتابخانه LIBUSB (LIBUSB) را ببینید.

حتی با دسترسی کاربر ریشه هم چیزی پیدا نمی‌شود؟ بررسی کنید که هسته شما از USB پشتیبانی می‌کند و libusb نصب شده باشد (بخش کتابخانه LIBUSB (LIBUSB) را ببینید).

برای دسترسی به دستگاه‌های USB، از کتابخانه USB با نام libusb استفاده می‌شود. در گذشته روش دیگری برای دسترسی به دستگاه‌های USB وجود داشت: درایور اسکنر هسته. روش درایور اسکنر هسته منسوخ شده است و دیگر نباید استفاده شود. این قابلیت ممکن است در هر زمان از SANE حذف شود. در لینوکس، درایور اسکنر هسته در سری هسته 2.6.* حذف شده است. در این صفحه راهنما تنها دسترسی از طریق libusb مستند شده است.

برنامه SANE فقط می‌تواند از libusb نسخه 0.1.6 یا جدیدتر استفاده کند. این کتابخانه باید در زمان ساخت (build-time) نصب شده باشد. توزیع‌های مدرن لینوکس و سایر سیستم‌های عامل همراه با libusb ارائه می‌شوند.

کتابخانه Libusb تنها در صورتی می‌تواند به اسکنر شما دسترسی داشته باشد که توسط درایور اسکنر هسته تصاحب نشده باشد. اگر می‌خواهید از libusb استفاده کنید، درایور هسته را تخلیه کنید (مثلاً با دستور rmmod scanner در لینوکس) یا هنگام کامپایل یک هسته جدید، درایور را غیرفعال کنید. برای لینوکس، هسته شما نیاز به پشتیبانی از فایل‌سیستم USB (با نام usbfs) دارد. برای هسته‌های قدیمی‌تر از 2.4.19، مقدار "usbfs" را با "usbdevfs" جایگزین کنید زیرا نام آن تغییر کرده است. این فایل‌سیستم باید سوار (mount) شود. این کار به طور خودکار در زمان بوت انجام می‌شود، در صورتی که /etc/fstab حاوی خطی مانند این باشد:

none /proc/bus/usb usbfs defaults 0 0

مجوزهای فایل‌های دستگاه مورد استفاده توسط libusb باید برای دسترسی کاربر تنظیم شوند؛ در غیر این صورت فقط کاربر ریشه (root) می‌تواند از دستگاه‌های SANE استفاده کند. در لینوکس(Linux)، دستگاه‌ها در /proc/bus/usb/ یا در صورت استفاده از udev در /dev/bus/usb قرار دارند. دایرکتوری‌هایی مانند "001" (نام گذرگاه/bus) وجود دارند که حاوی فایل‌های "001"، "002" و غیره (فایل‌های دستگاه) هستند. فایل‌های دستگاه درست را می‌توان با اجرای دستور زیر با دسترسی کاربر ریشه پیدا کرد: scanimage -L با این حال، تنظیم مجوزها با chmod(1) دائمی نیست و پس از راه‌اندازی مجدد سیستم یا اتصال مجدد اسکنر بازنشانی خواهند شد.

معمولاً udev(7) یا برای توزیع‌های قدیمی‌تر ابزارهای hotplug استفاده می‌شوند که از تنظیم پویای مجوزهای دسترسی پشتیبانی می‌کنند. برنامه SANE به همراه اسکریپت‌های udev و hotplug در دایرکتوری‌های tools/udev و tools/hotplug ارائه می‌شود. این اسکریپت‌ها می‌توانند برای تنظیم مجوزها استفاده شوند؛ برای جزئیات بیشتر به /usr/share/doc/sane/README.linux، tools/README و فایل README در دایرکتوری tools/hotplug مراجعه کنید.

برای سیستم‌های BSD، فایل‌های دستگاه مورد استفاده توسط libusb با نام /dev/ugen* شناخته می‌شوند. از chmod(1) برای اعمال مجوزهای مناسب استفاده کنید.

این بخش فرض می‌کند که اسکنر شما توسط sane-find-scanner(1) شناسایی شده است. اگر چنین نیست، ادامه دادن بی‌معنی است. در حالی که sane-find-scanner(1) قادر است هر اسکنر USB را شناسایی کند، اسکن واقعی تنها در صورتی کار خواهد کرد که اسکنر توسط یکی از بک‌اندهای SANE پشتیبانی شود. اطلاعات مربوط به سطح پشتیبانی را می‌توان در وب‌سایت SANE (http://www.sane-project.org/) و صفحات راهنمای اختصاصی هر بک‌اند پیدا کرد.

اکثر بک‌اندها می‌توانند با استفاده از خطوط پیکربندی "usb"، اسکنرهای USB را به صورت خودکار شناسایی کنند. این روش امکان شناسایی اسکنرها را بر اساس شماره‌های شناسه تولیدکننده (Vendor) و محصول (Product) در USB فراهم می‌کند. نحو (syntax) مشخص کردن یک اسکنر به این روش عبارت است از:

usb VENDOR PRODUCT

که در آن VENDOR شناسه تولیدکننده USB، و PRODUCT شناسه محصول اسکنر در USB است. هر دو شناسه، اعدادی صحیح و غیرمنفی در قالب ده‌دهی یا شانزده‌شانزدهی (هگزادسیمال) هستند. مقادیر درست برای این فیلدها را می‌توان با اجرای sane-find-scanner(1)، بررسی گزارش‌های سیستم (مانند /var/log/messages) یا در لینوکس با اجرای دستور cat /proc/bus/usb/devices به دست آورد. این یک نمونه از خط فایل پیکربندی است:

usb 0x055f 0x0006

این پیکربندی باعث می‌شود تمام دستگاه‌های USB در سیستم که دارای شناسه تولیدکننده 0x55f و شناسه محصول 0x0006 هستند، توسط بک‌اند کاوش و شناسایی شوند.

اگر اسکنر شما به طور خودکار شناسایی نشد، ممکن است لازم باشد قبل از استفاده از SANE برای نخستین بار، فایل پیکربندی بک‌اند مربوطه را ویرایش کنید. برای شرح دقیق فایل پیکربندی هر بک‌اند، لطفاً به صفحه راهنمای بک‌اند مربوطه (مثلاً sane-mustek_usb(5) برای اسکنرهای USB برند Mustek) مراجعه کنید.

از ایجاد پیوند نمادین (symlink) از /dev/scanner به دستگاه USB خودداری کنید زیرا این پیوند توسط بک‌اندهای SCSI استفاده می‌شود. در صورت دریافت دستورات SCSI، اسکنر ممکن است دچار اختلال شود.

اگر کتابخانه با پشتیبانی از اشکال‌زدایی (debug) کامپایل شده باشد، این متغیر محیطی سطح اشکال‌زدایی زیرسیستم ورودی/خروجی USB را کنترل می‌کند. به عنوان مثال، مقدار 128 درخواست چاپ تمام خروجی‌های اشکال‌زدایی را می‌دهد. مقادیر کمتر پرگویی (verbosity) را کاهش می‌دهند. مقادیر بزرگتر از 4، اشکال‌زدایی libusb را فعال می‌کنند (در صورت موجود بودن). مثال: export SANE_DEBUG_SANEI_USB=4.
اگر اسکنر شما هنگام اتصال به درگاه USB3 کار نمی‌کند، مقدار متغیر محیطی SANE_USB_WORKAROUND را روی 1 تنظیم کنید. این کار ممکن است مشکلاتی را که در نسخه‌های خاصی از هسته رخ می‌دهد برطرف سازد. مثال: export SANE_USB_WORKAROUND=1.
اگر اسکنر قدیمی شما (تولید قبل از 2010) از برندهای Xerox / Samsung / HP تنها یک بار شناسایی می‌شود و استفاده‌های بعدی نیاز به جدا کردن و اتصال مجدد کابل دارد، متغیر محیطی SANE_XEROX_USB_HALT_WORKAROUND را روی 1 تنظیم کنید. این کار ممکن است مشکلاتی را که با کنترل‌کننده‌های خاص USB رخ می‌دهد برطرف سازد. مثال: export SANE_XEROX_USB_HALT_WORKAROUND=1.

sane(7), sane-find-scanner(1), sane-"backendname"(5), sane-scsi(5)

Henning Meier-Geinitz <henning@meier-geinitz.de>

14 Jul 2008