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

sane-pixma - بک‌اند SANE برای چاپگرهای چندکاره کانن و اسکنرهای CanoScan

کتابخانه sane-pixma یک بک‌اند SANE (دسترسی آسان به اسکنر) را پیاده‌سازی می‌کند که دسترسی به دستگاه‌های چندکاره Canon PIXMA / i-SENSYS / imageCLASS / imageRUNNER (چاپگرهای چندکاره) و اسکنرهای تخت/TPU سری Canon CanoScan را فراهم می‌سازد. این بک‌اند هم رابط USB و هم رابط شبکه (با استفاده از پروتکل‌های BJNP و MFNP کانن) را پیاده‌سازی می‌کند. رابط شبکه از اسکنرها روی IPv4 و همچنین IPv6 پشتیبانی می‌کند (MFNP روی IPv6 آزمایش نشده است).

در حال حاضر، مدل‌های زیر با این بک‌اند کار می‌کنند:

PIXMA E410, E510, E3600, E4500
PIXMA G600, G2000, G2010, G2030, G2070, G2100, G3030, G3070
PIXMA G3080, G3090, G4000, G4070, G4080, G4511
PIXMA GX1000, GX2000, GX3000, GX4000, GX6000, GX6500, GX7000
PIXMA MG2100, MG2200, MG2400, MG2500, MG2900, MG3000, MG3100
PIXMA MG3200, MG3500, MG3600, MG4200, MG5100, MG5200, MG5300
PIXMA MG5400, MG5500, MG5600, MG5700, MG6100, MG6200, MG6300
PIXMA MG6400, MG7100, MG7500, MG7700, MG8200
PIXMA MP140, MP150, MP160, MP170, MP180, MP190
PIXMA MP210, MP220, MP230, MP240, MP250, MP260, MP270, MP280
PIXMA MP360, MP370, MP390
PIXMA MP450, MP460, MP470, MP480, MP490, MP495
PIXMA MP500, MP510, MP520, MP530, MP540, MP550, MP560
PIXMA MP600, MP600R, MP610, MP620, MP630, MP640
PIXMA MP700, MP710, MP730, PIXMA MP750 (no grayscale)
PIXMA MP800, MP800R, MP810, MP830
PIXMA MP960, MP970, MP980, MP990
PIXMA MX300, MX310, MX330, MX340, MX350, MX360, MX370
PIXMA MX410, MX420, MX470, MX510, MX520, MX530, MX700, MX720
PIXMA MX850, MX860, MX870, MX882, MX885, MX890, MX920, MX7600
PIXMA TC-20M, TC-5200M
PIXMA TR4500, TR4600, TR4700
PIXMA TS2400, TS2600, TS3100, TS3300, TS3450, TS3451, TS3452
PIXMA TS3500, TS3600, TS3700, TS5000, TS5100, TS5150, TS5350i
PIXMA TS5400, TS6100, TS6200, TS7530, TS7450i ,TS8000, TS8200
PIXMA TS8530, TS8630, TS8800
PIXUS MP10
imageCLASS MF634Cdw, MF733Cdw
imageCLASS MF3110, MF3240, MF4010, MF4018
imageCLASS MF4120, MF4122, MF4140, MF4150
imageCLASS MF4270, MF4350d, MF4370dn, MF4380dn
imageCLASS MF4410, MF4430, MF4570dw, MF4660, MF4690
imageCLASS MF5730, MF5770, MF6550, MPC200
imageCLASS D420, D480, D530, D570
i-SENSYS MF210, MF230, MF240, MF440, MF620, MF630, MF640
i-SENSYS MF645C, MF730, MF731/733, MF741/743
i-SENSYS MF3010, MF4320d, MF4330d, MF4500, MF4700, MF4800
i-SENSYS MF6100, MF8030, MF8200C, MF8300
imageRUNNER 1018/1022/1023, 1020/1024/1025, 1133
CanoScan 8800F, 9000F, 9000F Mark II
CanoScan LiDE 300, 400
MAXIFY MB2000, MB2100, MB2300, MB2700, MB5000, MB5100, MB5400

مدل‌های زیر به خوبی آزمایش نشده‌اند و/یا اسکنر گاهی متوقف می‌شود و باید خاموش و روشن شود:

PIXMA MP760, MP770, MP780, MP790

مدل‌های زیر ممکن است از همان پروتکل Pixma مانند دستگاه‌های فهرست‌شده در بالا استفاده کنند، اما هنوز کارکرد آن‌ها گزارش نشده است. این مدل‌ها در بک‌اند اعلان شده‌اند تا شناسایی و فعال شوند. بازخوردها در فهرست پستی sane-devel مورد استقبال است.

PIXMA E400, E460, E470, E480, E500, E560, E600, E610
PIXMA E3100, E3300, E3400, E4200
PIXMA G2020, G2060, G3020, G3060, G7000, G7080
PIXMA MG4100, MG6500, MG6600, MG6800, MG6900, MG8100
PIXMA MP375R, MP493, MP740
PIXMA MX320, MX390, MX430, MX450, MX490, MX710
PIXMA G3000, G3010, G4010, G6000, G6080, G7000, GM4000, GM4080
PIXMA TR7500, TR7530, TR7600, TR7800, TR8500, TR8530, TR8580 TR8600
PIXMA TR8630, TR9530
PIXMA TS3400, TS5100, TS6000, TS6130, TS6180, TS6230, TS6280, TS6300
PIXMA TS6330, TS6330, TS6380, TS6400, TS6630, TS6730, TS7330, TS7400,
PIXMA TS7430, TS7600i, TS7700, TS7700A, TS7700i, TS8100, TS8130
PIXMA TS8180, TS8230, TS8280, TS8300, TS8330, TS8380, TS8700, TS9000
PIXMA TS9100, TS9180, TS9500, TS9580
PIXUS MP5, XK50, XK60, XK70, XK80, XK90, XK100, XK110, XK120, XK130
PIXUS XK500
imageCLASS MF720, MF810/820, MF5630, MF5650, MF5750, MF8170c
imageCLASS MPC190, D550
i-SENSYS MF110, MF220, MF260, MF410, MF420, MF510, MF520, MF740, MF750
i-SENSYS MF5880dn, MF5900, MF6680dn, MF8500C
MAXIFY MB5300

مدل‌های زیر ممکن است تا حدی از همان پروتکل Pixma مانند سایر دستگاه‌های فهرست‌شده در بالا استفاده کنند، اما ممکن است همچنان به کار بیشتری نیاز داشته باشند. آن‌ها در بک‌اند به عنوان آزمایشی اعلام شده‌اند و برای شناسایی و فعال شدن به متغیر محیطی PIXMA_EXPERIMENT=1 نیاز دارند. برای بررسی بیشتر گزارش‌های snoop مورد نیاز است، لطفاً با فهرست پستی sane-devel تماس بگیرید.

-- هیچ‌کدام --

این بک‌اند موارد زیر را پشتیبانی می‌کند:

* تفکیک‌پذیری‌های 75، 150، 300، 600، 1200، 2400، 4800 و 9600 DPI (برخی ممکن است دارای اشکال باشند)،
* حالت رنگی و مقیاس خاکستری، و همچنین lineart در مدل‌های خاص،
* جدول گامای سفارشی،
* تغذیه‌کننده خودکار سند (ADF)، یک‌رو و دورو،
* واحد اسلایدر/نگاتیو (TPU)، با عمق 24 یا 48 بیت. کانال فروسرخ در مدل‌های خاص.

نام دستگاه برای دستگاه‌های USB به فرم pixma:xxxxyyyy_zzzzz است که در آن x، y و z به ترتیب شناسه سازنده (vendor ID)، شناسه محصول (product ID) و شماره سریال هستند.

مثال: pixma:04A91709_123456 یک دستگاه MP150 است.

نام‌های دستگاه برای دستگاه‌های BJNP/MFNP به فرم pixma:aaaa_bbbbb است که در آن aaaa مدل اسکنر و bbbb نام میزبان یا نشانی IP است.

مثال: pixma:MF4800_192.168.1.45 یک دستگاه چندکاره سری MF4800 است.

این بک‌اند که مبتنی بر شبیه‌سازی پروتکل‌های درایورهای اصلی کانن است، در مرحله تولید قرار دارد. طراحی بدون هیچ‌گونه مستندات رسمی سازنده که احتمالاً هرگز در دسترس نخواهد بود، انجام شده است. با این حال، ما آن را تا حد امکان آزمایش کرده‌ایم، اما ممکن است در تمام شرایط کار نکند. وضعیت به‌روز را در صفحه اصلی پروژه خواهید یافت (به زیر مراجعه کنید). بازخورد کاربران برای کمک به بهبود ویژگی‌ها و عملکرد ضروری است.

علاوه بر گزینه‌های "شناخته‌شده" (مانند resolution، mode و غیره)، بک‌اند sane-pixma گزینه‌های زیر را نیز ارائه می‌دهد، یعنی ممکن است گزینه‌ها در آینده تغییر کنند.
وضعیت دکمه‌ها را می‌توان با scanimage -A بررسی کرد.
اسکن دکمه‌ای در MAC OS X به دلیل عدم مدیریت مهلت زمانی در خواندن وقفه‌های USB توسط darwin libusb غیرفعال است، اما ممکن است هنگام استفاده از پروتکل شبکه کار کند.

این گزینه زمان انتظار بر حسب ثانیه را برای قرار دادن سند در تغذیه‌کننده خودکار سند (ADF) فعال و تنظیم می‌کند. حداکثر زمان مجاز انتظار 3600 ثانیه (= 1 ساعت) است.
این گزینه می‌تواند توسط برنامه‌هایی (مانند scanadf(1) و scanimage(1)) در حالت دسته‌ای استفاده شود، به عنوان مثال زمانی که می‌خواهید عکس‌های زیاد یا اسناد چندصفحه‌ای را اسکن کنید. اگر فعال باشد (یعنی روی true یا yes تنظیم شود)، بک‌اند قبل از هر اسکن منتظر می‌ماند تا کاربر دکمه "SCAN" (برای MP150) یا دکمه اسکن رنگی (برای سایر مدل‌ها) را فشار دهد. کافی است صفحه اول را در اسکنر بگذارید، دکمه را فشار دهید، سپس صفحه بعد، فشردن دکمه و الی آخر. وقتی کار تمام شد، دکمه اسکن خاکستری را فشار دهید. (برای MP150 باید فرانت‌اند را مثلاً با زدن Ctrl-C متوقف کنید.)
(فقط نوشتن) در گذشته لازم بود این گزینه برای اجبار به خواندن وضعیت دکمه‌ها برای button-1 و button-2 تنظیم شود. بک‌اند sane-pixma دیگر نیازی به استفاده از این گزینه ندارد: اگر داده جدیدی در دسترس نباشد، اکنون به طور خودکار از اسکنر درخواست می‌شود. این گزینه به دلایل سازگاری با گذشته باقی مانده است.
(فقط خواندن) این گزینه‌ها مقدار دکمه‌های مربوطه را برمی‌گردانند. مقدار 0 به این معنی است که دکمه فشرده نشده است، و در صورت فشردن دکمه 1 بازگردانده می‌شود. برخی اسکنرها با بیش از دو دکمه، شماره دکمه را به عنوان مقصد ارسال می‌کنند.
(فقط خواندن) در صورتی که اسکنر این داده را ارائه دهد، مقدار نوع یا اندازه اصل سند جهت اسکن را بازمی‌گرداند. مقادیر شناخته‌شده نوع: 1 = سند، 2 = عکس، 5 = نگاتیو/فیلم. مقادیر شناخته‌شده اندازه: 1 = A4،‏ 2 = Letter،‏ 8 = 10x15،‏ 9 = 13x18،‏ b = خودکار. همه اسکنرها نمی‌توانند این داده را ارائه دهند.
(فقط خواندن) در صورتی که اسکنر این داده را ارائه دهد، مقدار مقصد عملیات اسکن را برمی‌گرداند. مقادیر به نوع اسکنر بستگی دارند. مقادیر شناخته‌شده: 1 = ذخیره روی دیسک، 2 = ذخیره در pdf،‏ 3 = ارسال به ایمیل، 4 = ارسال به برنامه یا 1 = JPEG،‏ 2 = TIFF،‏ 3 = PDF،‏ 4 = PDF فشرده. برای برخی اسکنرها این مقدار معادل شماره دکمه فشرده‌شده است. همه اسکنرها نمی‌توانند این داده را ارائه دهند.
(فقط خواندن) در صورتی که اسکنر داده را ارائه دهد، تفکیک‌پذیری عملیات اسکن را برمی‌گرداند. مقادیر شناخته‌شده: 1 = 75 dpi،‏ 2 = 150 dpi،‏ 3 = 300 dpi،‏ 4 = 600 dpi. همه اسکنرها نمی‌توانند این داده را ارائه دهند.
(فقط خواندن) در صورتی که اسکنر داده را ارائه دهد، نوع سند اسکن‌شده را برمی‌گرداند. مقادیر شناخته‌شده: 1 = سند، 2 = عکس، 3 = اسکن خودکار. همه اسکنرها نمی‌توانند این داده را ارائه دهند.
(فقط خواندن) در صورتی که اسکنر داده را ارائه دهد، وضعیت تغذیه‌کننده سند را برمی‌گرداند. مقادیر شناخته‌شده: 1 = ADF خالی است، 2 = ADF پر است. همه اسکنرها نمی‌توانند این داده را ارائه دهند.
(فقط خواندن) در صورتی که اسکنر داده را ارائه دهد، جهت اسکن رسانه اسکن‌شده از ADF را برمی‌گرداند. مقادیر شناخته‌شده: 1 = عمودی (Portrait)،‏ 2 = افقی (Landscape). همه اسکنرها نمی‌توانند این داده را ارائه دهند.

/usr/lib/sane/libsane-pixma.a
کتابخانه ایستا که این بک‌اند را پیاده‌سازی می‌کند.
/usr/lib/sane/libsane-pixma.so
کتابخانه مشترک که این بک‌اند را پیاده‌سازی می‌کند (موجود در سیستم‌هایی که از بارگذاری پویا پشتیبانی می‌کنند).
/etc/sane.d/pixma.conf
پرونده پیکربندی بک‌اند (همچنین به توضیحات SANE_CONFIG_DIR در زیر مراجعه کنید).

این پرونده حاوی یک فهرست اختیاری از اسکنرهای شبکه‌ای است که از پروتکل‌های BJNP یا MFNP استفاده می‌کنند (برای جزئیات پشتیبانی شبکه برای اسکنرها به زیر مراجعه کنید). به طور معمول تنها اسکنرهایی که به دلیل قرار داشتن در یک زیرشبکه متفاوت نمی‌توانند به طور خودکار شناسایی شوند باید در اینجا فهرست گردند. اگر از لینوکس استفاده نمی‌کنید و سیستم‌عامل شما اجازه شمارش رابط‌ها را نمی‌دهد (یعنی از تابع getifaddrs() پشتیبانی نمی‌کند)، ممکن است لازم باشد اسکنر خود را نیز در اینجا اضافه کنید.

اسکنرها باید به شرح زیر در پرونده پیکربندی فهرست شوند:

<method>://<host>[:port][/timeout=<value>]
پروتکل استفاده‌شده را نشان می‌دهد. bjnp برای دستگاه‌های چندکاره جوهرافشان و mfnp برای دستگاه‌های چندکاره لیزری استفاده می‌شود.
نام میزبان یا نشانی IP اسکنر است، برای مثال bjnp://10.0.1.4 برای IPv4، bjnp://[2001:888:118e:18e2:21e:8fff:fe36:b64a] برای نشانی دقیق IPv6 یا bjnp://myscanner.mydomain.org برای نام میزبان.
اختیاری است و معمولاً توسط متد ضمنی تعیین می‌شود. درگاه 8610 درگاه استاندارد برای mfnp و 8612 برای bjnp است.
مقدار مهلت زمانی ویژه اسکنر برای پروتکل شبکه بر حسب میلی‌ثانیه.

هر اسکنر را در یک خط جداگانه تعریف کنید.

مهلت‌های زمانی کلی‌تر را می‌توان با استفاده از پارامتر bjnp-timeout به شرح زیر تنظیم کرد:

bjnp-timeout=<value>

مهلت زمانی تعریف‌شده با استفاده از bjnp-timeout برای تعاریف اسکنرهای بعدی در پرونده اعمال خواهد شد. در صورت نیاز، تنظیم bjnp-timeout را می‌توان چندین بار تعریف کرد، به طوری که هر تنظیم فقط برای اسکنرهایی اعمال شود که پس از آن تنظیم می‌آیند. آخرین تنظیم برای اسکنرهای شناسایی‌شده خودکار استفاده می‌شود. اگر به صراحت تنظیم نشود، مقدار پیش‌فرض 1000 میلی‌ثانیه اعمال خواهد شد.

تنظیم مهلت‌های زمانی تنها در موارد استثنایی مورد نیاز است.

در صورت تمایل، می‌توان شبکه را به شرح زیر غیرفعال کرد:

اگر اولین خط غیرکامنت حاوی این ورودی باشد، تمام قابلیت‌های شبکه غیرفعال خواهند شد. تمام دستورات بعدی در پرونده پیکربندی نادیده گرفته می‌شوند.
این خط باعث می‌شود از شناسایی خودکار صرف‌نظر شود. اسکنرهای شبکه که به طور صریح تعریف شده‌اند همچنان کاوش خواهند شد.

اسکنرهای USB به طور خودکار شناسایی می‌شوند و نیازی به پیکربندی ندارند.

بک‌اند sane-pixma از اسکنرهای شبکه با استفاده از پروتکل‌های به اصطلاح Canon BJNP و MFNP پشتیبانی می‌کند.

به نظر می‌رسد کانن در حال حذف پشتیبانی از این پروتکل‌ها در اسکنرهای جدیدتر است. برای بررسی اینکه آیا اسکنر شما از یکی از این پروتکل‌ها پشتیبانی می‌کند، محتوای ورودی سرویس _scanner._tcp را در mDNS/DNS-SD (به عنوان مثال با استفاده از avahi-discover(1)) بررسی کنید. اگر درگاه 8610 یا 8612 فهرست نشده باشد، اسکنر شما احتمالاً از پروتکل‌های mfnp یا bjnp پشتیبانی نمی‌کند.

هر دو پروتکل IPv4 و IPv6 پشتیبانی می‌شوند، اما IPv6 هنوز با MFNP آزمایش نشده است. لطفاً نتایج خود را در فهرست پستی گزارش دهید.

پیکربندی معمولاً لازم نیست. بک‌اند sane-pixma اسکنر شما را در صورتی که در همان زیرشبکه رایانه شما باشد (به شرطی که سیستم‌عامل شما از این مورد پشتیبانی کند) به طور خودکار شناسایی می‌کند.

اگر اسکنر شما نمی‌تواند به طور خودکار شناسایی شود، می‌توانید آن را به پرونده پیکربندی sane-pixma اضافه کنید (به بالا مراجعه فرمایید).

بک‌اند sane-pixma با درگاه 8610 برای MFNP یا درگاه 8612 برای BJNP روی اسکنر ارتباط برقرار می‌کند. بنابراین باید ترافیک خروجی به درگاه 8610 یا 8612 را روی زیرشبکه مشترک برای اسکن مجاز کنید.

تشخیص اسکنر کمی پیچیده‌تر است. بک‌اند sane-pixma یک برودکست روی تمام زیرشبکه‌های متصل مستقیم که می‌تواند پیدا کند ارسال می‌کند (به شرطی که سیستم‌عامل شما اجازه شمارش تمام رابط‌های شبکه را بدهد). برودکست از درگاه 8612 به درگاه 8610 یا 8612 روی نشانی برودکست هر رابط ارسال می‌شود. بسته‌های خروجی توسط قانون شرح‌داده‌شده در بالا مجاز خواهند بود.

پاسخ‌های اسکنر به رایانه و به درگاه 8612 بازگردانده می‌شوند. با این حال ردیابی اتصال (connection tracking) تطابقی نمی‌بیند زیرا پاسخ از نشانی برودکست نمی‌آید بلکه از نشانی خود اسکنر می‌آید. بنابراین برای شناسایی خودکار اسکنر خود، باید بسته‌های ورودی به درگاه 8612 را در رایانه خود مجاز کنید. این مورد برای هر دو پروتکل MFNP و BJNP صدق می‌کند.

به طور خلاصه: دیوار آتش را برای تمام ترافیک از رایانه خود به درگاه 8610 (برای MFNP) یا 8612 (برای BJNP) و به درگاه 8612 (برای هر دو BJNP و MFNP) به سمت رایانه خود باز کنید.

با قوانین دیوار آتش بالا نیازی به افزودن اسکنر به پرونده pixma.conf نیست، مگر اینکه اسکنر در شبکه‌ای باشد که مستقیماً به رایانه شما متصل نیست.

اگر کتابخانه با پشتیبانی اشکال‌زدایی کامپایل شده باشد، این متغیر محیطی سطح اشکال‌زدایی را برای خود این بک‌اند کنترل می‌کند. مقدار بالاتر پرگویی را افزایش می‌دهد و شامل اطلاعات چاپ‌شده در سطوح پایین‌تر نیز می‌شود.
0 عدم چاپ هیچ پیامی (پیش‌فرض)
1 چاپ پیام‌های خطا و هشدار (توصیه‌شده)
2 چاپ پیام‌های اطلاعاتی
3 چاپ پیام‌های سطح اشکال‌زدایی
4 چاپ پیام‌های مشروح سطح اشکال‌زدایی
11 تخلیه (dump) ترافیک USB
21 تخلیه کامل ترافیک USB
اگر کتابخانه با پشتیبانی اشکال‌زدایی کامپایل شده باشد، این متغیر محیطی سطح اشکال‌زدایی را برای پروتکل‌های شبکه BJNP و MFNP برای این بک‌اند کنترل می‌کند. مقدار بالاتر پرگویی را افزایش می‌دهد و شامل اطلاعات چاپ‌شده در سطوح پایین‌تر است.
0 عدم چاپ هیچ پیامی (پیش‌فرض)
1 چاپ پیام‌های خطا و هشدار (توصیه‌شده)
2 چاپ اطلاعات ردیابی توابع سطح بالا
3 چاپ اطلاعات دقیق‌تر ردیابی پروتکل
4 چاپ سرآیندهای پروتکل
5 چاپ محتویات کامل پروتکل
تنظیم این متغیر روی یک مقدار غیرصفر، پشتیبانی آزمایشی را برای مدل‌های بیشتر فعال می‌کند. همچنین باید SANE_DEBUG_PIXMA را روی 11 تنظیم کنید.
این متغیر محیطی فهرستی از دایرکتوری‌هایی را مشخص می‌کند که ممکن است حاوی پرونده پیکربندی باشند. در سیستم‌های *NIX، دایرکتوری‌ها با دونقطه (`:`) و در OS/2 با نقطه-ویرگول (`;`) جدا می‌شوند. اگر این متغیر تنظیم نشده باشد، پرونده پیکربندی در دو دایرکتوری پیش‌فرض جستجو می‌شود: ابتدا دایرکتوری کاری جاری (".") و سپس در /etc/sane.d. اگر مقدار متغیر محیطی با نویسه جداکننده دایرکتوری پایان یابد، دایرکتوری‌های پیش‌فرض پس از دایرکتوری‌های به صراحت مشخص‌شده جستجو می‌شوند. برای مثال، تنظیم SANE_CONFIG_DIR روی "/tmp/config:" باعث می‌شود دایرکتوری‌های tmp/config، .، و /etc/sane.d (به همین ترتیب) جستجو شوند.

sane(7), sane-dll(5), scanimage(1), scanadf(1), gamma4scanimage(1), getifaddrs(3)

در صورت بروز مشکل در مدل‌های جدید Pixma، آخرین کد بک‌اند sane-pixma را که در مخزن گیت Sane در نشانی زیر موجود است امتحان کنید:
https://gitlab.com/sane-project/backends.git

همچنین می‌توانید برای پشتیبانی در فهرست پستی Sane-devel پیام ارسال کنید.

Wittawat Yamwong, Nicolas Martin, Dennis Lou, Louis Lagendijk, Rolf Bensch

مایل هستیم از تمام آزمایش‌کنندگان و یاری‌رسانان تشکر کنیم. بدون آن‌ها قادر به نوشتن زیردرایورها برای مدل‌هایی که خود در اختیار نداریم نبودیم. همچنین به صفحه اصلی پروژه مراجعه کنید.

15 Aug 2020