.\" @(#)scgcheck.1 1.20 16/01/26 Copyright 2000-2016 J. Schilling .\" .\" The contents of this file are subject to the terms of the .\" Common Development and Distribution License, Version 1.0 only .\" (the "License"). You may not use this file except in compliance .\" with the License. .\" .\" See the file CDDL.Schily.txt in this distribution for details. .\" A copy of the CDDL is also available via the Internet at .\" http://www.opensource.org/licenses/cddl1.txt .\" .\" When distributing Covered Code, include this CDDL HEADER in each .\" file and include the License file CDDL.Schily.txt from this distribution. .\" .if t .ds a \v'-0.55m'\h'0.00n'\z.\h'0.40n'\z.\v'0.55m'\h'-0.40n'a .if t .ds o \v'-0.55m'\h'0.00n'\z.\h'0.45n'\z.\v'0.55m'\h'-0.45n'o .if t .ds u \v'-0.55m'\h'0.00n'\z.\h'0.40n'\z.\v'0.55m'\h'-0.40n'u .if t .ds A \v'-0.77m'\h'0.25n'\z.\h'0.45n'\z.\v'0.77m'\h'-0.70n'A .if t .ds O \v'-0.77m'\h'0.25n'\z.\h'0.45n'\z.\v'0.77m'\h'-0.70n'O .if t .ds U \v'-0.77m'\h'0.30n'\z.\h'0.45n'\z.\v'0.77m'\h'-0.75n'U .if t .ds s \\(*b .if t .ds S SS .if n .ds a ae .if n .ds o oe .if n .ds u ue .if n .ds s sz .TH SCGCHECK 1 "Version 3.0 2016/01/26" "J\*org Schilling" "Schily\'s USER COMMANDS" .SH "نام (NAME)" scgcheck \- بررسی و اعتبارسنجی رابط دودویی برنامه‌نویسی (ABI) کتابخانه libscg .SH "خلاصه دستور (SYNOPSIS)" .B scgcheck [ .I گزینه‌ها ] .SH "توضیحات (DESCRIPTION)" دستور .B scgcheck برای بررسی و اعتبارسنجی رابط دودویی برنامه‌نویسی (ABI) کتابخانه libscg به کار می‌رود. .PP .SS "نام‌گذاری دستگاه‌ها" بیشتر کاربران نیازی به نگرانی در مورد نام‌گذاری دستگاه‌ها ندارند، زیرا در حالت .BR \-auto ، دستور .B scgcheck از ویژگی .B هدف‌گیری خودکار (auto target) پشتیبانی کرده و در صورتی که دقیقاً یک درایو از نوع CD-ROM در سیستم موجود باشد، به طور خودکار درایو آزمایشی را پیدا می‌کند. .SH "گزینه‌ها (OPTIONS)" .TP .B \-version اطلاعات نسخه را چاپ کرده و خارج می‌شود. .TP .B \-auto به جای درخواست تأیید قبل از اجرای هر آزمایش، .B scgcheck تلاش می‌کند یک آزمایش کاملاً خودکار انجام دهد. .TP .BI dev= target تعیین هدف SCSI برای دستگاه، یادداشت‌های بالا را ببینید. یک مشخصه رایج برای دستگاه هدف به صورت .BI dev= 1,6,0 است. اگر لازم باشد همراه با مشخصه عددی هدف، یک نام فایل نیز مشخص شود، نام فایل به پیاده‌سازی سیستم‌عامل بستگی دارد. نام فایل صحیح در این حالت را می‌توانید در راهنماهای اختصاصی سیستم‌عامل هدف پیدا کنید. در سیستم‌های .I FreeBSD بدون پشتیبانی از .IR CAM ، باید از دستگاه کنترلی (مانند .IR /dev/rcd0.ctl ) استفاده کنید. مشخصه دستگاه صحیح در این حالت ممکن است به صورت .BI dev= /dev/rcd0.ctl:@ باشد. .sp .B \h'-2m'آدرس‌دهی عمومی SCSI .br دستگاه هدف (target device) در گزینه .B dev= به .IR scsibus / target / lun دستگاه اشاره دارد. ارتباط در .I SunOS با درایور عمومی SCSI به نام .B scg انجام می‌شود. سایر سیستم‌های عامل از شبیه‌سازی کتابخانه‌ای این درایور استفاده می‌کنند. نحو مجاز به شرح زیر است: .B dev= .IR scsibus , target , lun یا .B dev= .IR target , lun . در حالت دوم، دستگاه باید به گذرگاه پیش‌فرض SCSI سیستم متصل باشد. مقادیر .IR Scsibus ، .I target و .I lun اعدادی صحیح هستند. برخی از سیستم‌های عامل یا پیاده‌سازی‌های انتقال SCSI ممکن است به تعیین یک نام فایل علاوه بر موارد فوق نیاز داشته باشند. در این حالت نحو صحیح برای دستگاه به صورت زیر است: .B dev= .IR devicename : scsibus , target , lun یا .B dev= .IR devicename : target , lun . اگر نام گره دستگاه که روی چنین سیستمی مشخص شده است دقیقاً به یک دستگاه SCSI اشاره کند، می‌توان از شکل خلاصه .B dev= .IR devicename : @ یا .B dev= .IR devicename : @ , lun به جای .B dev= .IR devicename : scsibus , target , lun استفاده کرد. .sp .B \h'-2m'آدرس‌دهی از راه دور SCSI .br برای دسترسی به دستگاه‌های SCSI از راه دور، باید شناسه دستگاه راه دور را به ابتدای نام دستگاه SCSI اضافه کنید. شناسه دستگاه راه دور یکی از موارد زیر است: .BI REMOTE: user@host: یا .BI REMOTE: host: یک نام معتبر دستگاه SCSI از راه دور می‌تواند به صورت زیر باشد: .BI REMOTE: user@host: برای امکان‌پذیر ساختن پویش گذرگاه SCSI از راه دور، یا .BI REMOTE: user@host:1,0,0 برای دسترسی به دستگاه SCSI در میزبان .I host که به گذرگاه SCSI شماره ۱، هدف ۰، LUN شماره ۰ متصل است. به منظور امکان‌پذیر ساختن دسترسی از راه دور به یک .IR host خاص، برنامه .BR rscsi (1) باید روی آن .I host نصب و پیکربندی شده باشد. .sp .B \h'-2m'لایه‌های انتقال جایگزین SCSI .br درایوهای .B ATAPI تنها درایوهای .B SCSI هستند که ذاتا از .I رابط بسته‌ای ATA به عنوان لایه انتقال دستورات .B SCSI تعبیه‌شده درون انتقال IDE (ATA) استفاده می‌کنند. اگر سیستم‌عامل شما زیرسیستم درایور هسته کاملاً یکپارچه‌ای پیاده‌سازی نکرده باشد که امکان دسترسی به هر درایوی با استفاده از دستورات .B SCSI از طریق یک رابط کاربری واحد را فراهم کند، ممکن است لازم باشد یک لایه انتقال جایگزین در خط فرمان مشخص کنید. .sp برای دسترسی به دستگاه‌های SCSI از طریق لایه‌های انتقال جایگزین، باید شناسه لایه انتقال را به ابتدای نام دستگاه SCSI اضافه کنید. شناسه لایه انتقال می‌تواند چیزی شبیه به .B USCSI: یا .BR ATAPI: باشد. برای دریافت فهرستی از لایه‌های انتقال پشتیبانی‌شده در پلتفرم خود، از .B dev= .IR HELP : استفاده کنید. .sp .B \h'-2m'پیش‌زمینه سازگاری و پورت‌پذیری .br برای اینکه .B scgcheck روی تمامی پلتفرم‌های \s-2UNIX\s0 قابل حمل باشد، نحو .B dev= .IR devicename : scsibus , target , lun ترجیح داده می‌شود زیرا جزئیات خاص سیستم‌عامل درباره نام دستگاه‌ها را از کاربر پنهان می‌کند. یک سیستم‌عامل خاص ممکن است الزاماً روشی برای مشخص کردن نام فایل واقعی دستگاه یا روشی برای تعیین .IR scsibus , target , lun را پشتیبانی نکند. .sp گذرگاه .I Scsibus شماره ۰ گذرگاه پیش‌فرض SCSI در سیستم است. برای اطلاعات بیشتر پیام‌های راه‌اندازی سیستم (بوت) را بررسی کنید یا به .B /var/adm/messages مراجعه نمایید تا درباره پیکربندی SCSI سیستم خود اطلاعات بیشتری کسب کنید. اگر برای یافتن مقادیر مناسب .IR scsibus , target , lun مشکل دارید، گزینه .B \-scanbus دستور .B scgcheck که در ادامه توضیح داده شده است را امتحان کنید. .sp .B \h'-2m'حالت هدف‌گیری خودکار (Autotarget Mode) .br اگر هیچ گزینه .B dev= مشخص نشده باشد، یا فقط شامل مشخص‌کننده لایه انتقال بدون نشانی باشد، .B scgcheck سعی می‌کند فضای نشانی SCSI را برای یافتن درایوهای CD-ROM پویش کند. اگر دقیقاً یک درایو پیدا شود، به صورت پیش‌فرض از همان استفاده می‌شود. .TP .BI timeout= # مقدار مهلت زمانی پیش‌فرض دستورات SCSI را به .IR # ثانیه تنظیم می‌کند. مهلت زمانی پیش‌فرض دستور SCSI حداقل زمانی است که برای ارسال دستورات SCSI در نظر گرفته می‌شود. اگر یک دستور SCSI به دلیل اتمام مهلت زمانی با شکست مواجه شد، می‌توانید مهلت زمانی پیش‌فرض دستورات SCSI را به مقداری بیشتر از مهلت دستور ناموفق افزایش دهید. اگر دستور با افزایش مهلت زمانی به درستی اجرا شد، لطفاً مقدار مهلت بهتر و دستور مربوطه را به نویسنده برنامه گزارش دهید. اگر هیچ گزینه .I timeout مشخص نشده باشد، از مهلت پیش‌فرض ۴۰ ثانیه استفاده می‌شود. .TP .BI debug= "#, " \-d تنظیم مقدار اشکال‌زدایی متفرقه به # (با debug=#) یا افزایش سطح اشکال‌زدایی متفرقه به اندازه یک واحد (با \-d). اگر .I \-dd را مشخص کنید، معادل .BI debug= 2 خواهد بود. این گزینه می‌تواند به یافتن مشکلات هنگام باز کردن درایور برای libscg و همچنین مشکلات اندازه و نوع بخش‌ها (قطاع‌ها) کمک کند. استفاده از .B \-debug سرعت فرآیند را کاهش می‌دهد و ممکن است دلیل خطای خالی شدن بافر (buffer underrun) باشد. .TP .BR kdebug= "#, " kd= # به درایور .BR scg دستور می‌دهد تا مقدار اشکال‌زدایی هسته را هنگام اجرای دستورات SCSI تغییر دهد. .TP .BI scgopts= list فهرستی از گزینه‌های SCSI جدا شده با کاما که توسط libscg مدیریت می‌شوند. گزینه‌های پیاده‌سازی‌شده می‌توانند مستقل از برنامه‌ها به‌روزرسانی شوند. در حال حاضر یک گزینه: .B ignore\-resid برای دور زدن یک باگ در هسته لینوکس پشتیبانی می‌شود. .TP .BR \-silent ", " \-s گزارش وضعیت برای دستورات ناموفق SCSI چاپ نشود. .TP .B \-v سطح پرگویی عمومی (verbosity) را یک واحد افزایش می‌دهد. این گزینه مثلاً برای نمایش پیشرفت فرآیند استفاده می‌شود. .TP .B \-V سطح پرگویی مربوط به انتقال دستورات SCSI را یک واحد افزایش می‌دهد. این گزینه به اشکال‌زدایی مشکلاتی که در حین فرآیند در دستگاه ضبط CD (CD-Recorder) رخ می‌دهد کمک می‌کند. اگر پیام‌های خطای نامفهومی دریافت می‌کنید، باید از این فلگ برای دریافت خروجی دقیق‌تر استفاده کنید. گزینه .B \-VV علاوه بر این محتوای بافر داده را نیز نمایش می‌دهد. استفاده از .B \-V یا .B \-VV سرعت فرآیند را کاهش می‌دهد. .TP .BI f= file فایل لاگ مورد نظر برای استفاده به جای .IR check.log را مشخص می‌کند. .SH "مثال‌ها (EXAMPLES)" .SH "فایل‌ها (FILES)" .SH "همچنین ببینید (SEE ALSO)" .BR cdrecord (1), .BR readcd (1), .BR mkisofs (1), .BR scg (7). .SH "نکات (NOTES)" .PP هنگام استفاده از .B scgcheck با درایور معیوب .BR "Linux SCSI generic driver" ، باید توجه داشته باشید که .B scgcheck از یک ترفند برای شبیه‌سازی قابلیت‌های درایور scg استفاده می‌کند. متأسفانه درایور sg در .B لینوکس دارای چندین باگ جدی است: .TP \(bu نمی‌تواند تشخیص دهد که آیا یک دستور SCSI اصلاً امکان ارسال نداشته است یا خیر. .TP \(bu نمی‌تواند بایت وضعیت SCSI را دریافت کند. به همین دلیل .B scgcheck در برخی موقعیت‌ها نمی‌تواند ناموفق بودن دستورات SCSI را گزارش کند. .TP \(bu نمی‌تواند تعداد بایت‌های واقعی انتقال‌یافته توسط DMA را دریافت کند. .B scgcheck نمی‌تواند به شما بگوید آیا بایت باقیمانده DMA وجود دارد یا خیر. .TP \(bu نمی‌تواند تعداد بایت‌های معتبر در داده‌های حس خودکار (auto sense data) را دریافت کند. .B scgcheck نمی‌تواند تشخیص دهد آیا دستگاه هیچ داده حس کردنی انتقال نداده است یا خیر. .TP \(bu در درخواست خودکار داده‌های حس، داده‌های بسیار کمی را واکشی می‌کند (در استانداردهای CCS/SCSI-2/SCSI-3 حداقل ۱۸ بایت نیاز است). .SH "عیب‌یابی (DIAGNOSTICS)" .PP یک پیام خطای رایج برای یک دستور SCSI شبیه به زیر است: .sp .RS .nf scgcheck: I/O error. test unit ready: scsi sendcmd: no error CDB: 00 20 00 00 00 00 status: 0x2 (CHECK CONDITION) Sense Bytes: 70 00 05 00 00 00 00 0A 00 00 00 00 25 00 00 00 00 00 Sense Key: 0x5 Illegal Request, Segment 0 Sense Code: 0x25 Qual 0x00 (logical unit not supported) Fru 0x0 Sense flags: Blk 0 (not valid) cmd finished after 0.002s timeout 40s .fi .sp .RE خط اول اطلاعاتی درباره انتقال دستور ارائه می‌دهد. متن پس از دونقطه اول متن خطای مربوط به فراخوانی سیستم از دید هسته است که معمولاً به صورت .B "I/O error" است مگر اینکه مشکلات دیگری رخ دهد. کلمات بعدی شامل توصیف کوتاهی از دستور SCSI ناموفق هستند. باقیمانده خط بیان می‌کند که آیا در انتقال دستور روی گذرگاه SCSI مشکلی وجود داشته است یا خیر. عبارت .B "fatal error" به این معنی است که انتقال دستور امکان‌پذیر نبوده است (مثلاً دستگاهی در نشانی درخواستی SCSI وجود ندارد). .PP خط دوم بلوک توصیف‌کننده دستور SCSI (SCSI CDB) را برای دستور ناموفق چاپ می‌کند. .PP خط سوم اطلاعات مربوط به کد وضعیت SCSI بازگردانده شده توسط دستور را در صورت موفقیت‌آمیز بودن انتقال دستور ارائه می‌دهد. این اطلاعات خطای دریافتی از دستگاه SCSI است. .PP خط چهارم یک دامپ هگزادسیمال از اطلاعات درخواست خودکار داده‌های حس (auto request sense) برای دستور است. .PP خط پنجم متن خطای کلید حس (sense key) در صورت وجود است و در ادامه شماره سگمنت که تنها در صورتی معتبر است که دستور یک دستور .I copy بوده باشد. اگر پیام خطا مستقیماً مربوط به دستور فعلی نباشد، عبارت .I deferred error اضافه می‌شود. .PP خط ششم متن خطای کد حس (sense code) و توصیف‌کننده حس (sense qualifier) در صورت وجود است. اگر نوع دستگاه شناخته‌شده باشد، داده‌های حس بر اساس جداول موجود در .IR scsierrs.c رمزگشایی می‌شوند. پس از متن، مقدار خطای واحد قابل تعویض در محل (FRU) آورده می‌شود. .PP خط هفتم شماره بلوک مربوط به دستور ناموفق و متن مربوط به پرچم‌های مختلف خطا را چاپ می‌کند. شماره بلوک ممکن است نامعتبر باشد. .PP خط هشتم مهلت زمانی تعیین‌شده برای این دستور و زمان واقعی که دستور برای تکمیل نیاز داشته است را گزارش می‌دهد. .SH "اشکالات (BUGS)" .SH "قدردانی‌ها (CREDITS)" .SH "فهرست‌های ایمیل (MAILING LISTS)" .SH "نویسنده (AUTHOR)" .nf J\*org Schilling Seestr. 110 D-13353 Berlin Germany .fi .PP اطلاعات بیشتر را می‌توانید در نشانی زیر بیابید: .br http://cdrecord.org/private/cdrecord.html .PP اگر سوالات پشتیبانی دارید، به نشانی زیر ارسال کنید: .PP .B cdrtools-support@lists.sourceforge.net .PP اگر قطعاً باگی پیدا کرده‌اید، به نشانی زیر ایمیل بزنید: .PP .B cdrtools-developers@lists.sourceforge.net .br یا .B joerg.schilling@fokus.fraunhofer.de .PP برای عضویت در فهرست، از نشانی‌های زیر استفاده کنید: .PP .B https://lists.sourceforge.net/lists/listinfo/cdrtools-developers .br یا .B https://lists.sourceforge.net/lists/listinfo/cdrtools-support