| SCGCHECK(1) | Schily´s USER COMMANDS | SCGCHECK(1) |
نام (NAME)
scgcheck - بررسی و اعتبارسنجی رابط دودویی برنامهنویسی (ABI) کتابخانه libscg
خلاصه دستور (SYNOPSIS)
scgcheck [ گزینهها ]
توضیحات (DESCRIPTION)
دستور scgcheck برای بررسی و اعتبارسنجی رابط دودویی برنامهنویسی (ABI) کتابخانه libscg به کار میرود.
نامگذاری دستگاهها
بیشتر کاربران نیازی به نگرانی در مورد نامگذاری دستگاهها ندارند، زیرا در حالت -auto، دستور scgcheck از ویژگی هدفگیری خودکار (auto target) پشتیبانی کرده و در صورتی که دقیقاً یک درایو از نوع CD-ROM در سیستم موجود باشد، به طور خودکار درایو آزمایشی را پیدا میکند.
گزینهها (OPTIONS)
- -version
- اطلاعات نسخه را چاپ کرده و خارج میشود.
- -auto
- به جای درخواست تأیید قبل از اجرای هر آزمایش، scgcheck تلاش میکند یک آزمایش کاملاً خودکار انجام دهد.
- dev=target
- تعیین هدف SCSI
برای
دستگاه،
یادداشتهای
بالا را
ببینید. یک
مشخصه رایج
برای
دستگاه هدف
به صورت dev=1,6,0
است. اگر
لازم باشد
همراه با
مشخصه عددی
هدف، یک نام
فایل نیز
مشخص شود،
نام فایل به
پیادهسازی
سیستمعامل
بستگی دارد.
نام فایل
صحیح در این
حالت را
میتوانید
در
راهنماهای
اختصاصی
سیستمعامل
هدف پیدا
کنید. در
سیستمهای
FreeBSD بدون
پشتیبانی
از CAM، باید
از دستگاه
کنترلی
(مانند /dev/rcd0.ctl)
استفاده
کنید. مشخصه
دستگاه
صحیح در این
حالت ممکن
است به صورت
dev=/dev/rcd0.ctl:@ باشد.
آدرسدهی عمومی SCSI
دستگاه هدف (target device) در گزینه dev= به scsibus/target/lun دستگاه اشاره دارد. ارتباط در SunOS با درایور عمومی SCSI به نام scg انجام میشود. سایر سیستمهای عامل از شبیهسازی کتابخانهای این درایور استفاده میکنند. نحو مجاز به شرح زیر است: dev= scsibus,target,lun یا dev= target,lun. در حالت دوم، دستگاه باید به گذرگاه پیشفرض SCSI سیستم متصل باشد. مقادیر Scsibus، target و lun اعدادی صحیح هستند. برخی از سیستمهای عامل یا پیادهسازیهای انتقال SCSI ممکن است به تعیین یک نام فایل علاوه بر موارد فوق نیاز داشته باشند. در این حالت نحو صحیح برای دستگاه به صورت زیر است: dev= devicename:scsibus,target,lun یا dev= devicename:target,lun. اگر نام گره دستگاه که روی چنین سیستمی مشخص شده است دقیقاً به یک دستگاه SCSI اشاره کند، میتوان از شکل خلاصه dev= devicename:@ یا dev= devicename:@,lun به جای dev= devicename:scsibus,target,lun استفاده کرد.آدرسدهی از راه دور SCSI
برای دسترسی به دستگاههای SCSI از راه دور، باید شناسه دستگاه راه دور را به ابتدای نام دستگاه SCSI اضافه کنید. شناسه دستگاه راه دور یکی از موارد زیر است: REMOTE:user@host: یا REMOTE:host: یک نام معتبر دستگاه SCSI از راه دور میتواند به صورت زیر باشد: REMOTE:user@host: برای امکانپذیر ساختن پویش گذرگاه SCSI از راه دور، یا REMOTE:user@host:1,0,0 برای دسترسی به دستگاه SCSI در میزبان host که به گذرگاه SCSI شماره ۱، هدف ۰، LUN شماره ۰ متصل است. به منظور امکانپذیر ساختن دسترسی از راه دور به یک host خاص، برنامه rscsi(1) باید روی آن host نصب و پیکربندی شده باشد.لایههای انتقال جایگزین SCSI
درایوهای ATAPI تنها درایوهای SCSI هستند که ذاتا از رابط بستهای ATA به عنوان لایه انتقال دستورات SCSI تعبیهشده درون انتقال IDE (ATA) استفاده میکنند. اگر سیستمعامل شما زیرسیستم درایور هسته کاملاً یکپارچهای پیادهسازی نکرده باشد که امکان دسترسی به هر درایوی با استفاده از دستورات SCSI از طریق یک رابط کاربری واحد را فراهم کند، ممکن است لازم باشد یک لایه انتقال جایگزین در خط فرمان مشخص کنید.برای دسترسی به دستگاههای SCSI از طریق لایههای انتقال جایگزین، باید شناسه لایه انتقال را به ابتدای نام دستگاه SCSI اضافه کنید. شناسه لایه انتقال میتواند چیزی شبیه به USCSI: یا ATAPI: باشد. برای دریافت فهرستی از لایههای انتقال پشتیبانیشده در پلتفرم خود، از dev= HELP: استفاده کنید.
پیشزمینه سازگاری و پورتپذیری
برای اینکه scgcheck روی تمامی پلتفرمهای UNIX قابل حمل باشد، نحو dev= devicename:scsibus,target,lun ترجیح داده میشود زیرا جزئیات خاص سیستمعامل درباره نام دستگاهها را از کاربر پنهان میکند. یک سیستمعامل خاص ممکن است الزاماً روشی برای مشخص کردن نام فایل واقعی دستگاه یا روشی برای تعیین scsibus,target,lun را پشتیبانی نکند.گذرگاه Scsibus شماره ۰ گذرگاه پیشفرض SCSI در سیستم است. برای اطلاعات بیشتر پیامهای راهاندازی سیستم (بوت) را بررسی کنید یا به /var/adm/messages مراجعه نمایید تا درباره پیکربندی SCSI سیستم خود اطلاعات بیشتری کسب کنید. اگر برای یافتن مقادیر مناسب scsibus,target,lun مشکل دارید، گزینه -scanbus دستور scgcheck که در ادامه توضیح داده شده است را امتحان کنید.
حالت هدفگیری خودکار (Autotarget Mode)
اگر هیچ گزینه dev= مشخص نشده باشد، یا فقط شامل مشخصکننده لایه انتقال بدون نشانی باشد، scgcheck سعی میکند فضای نشانی SCSI را برای یافتن درایوهای CD-ROM پویش کند. اگر دقیقاً یک درایو پیدا شود، به صورت پیشفرض از همان استفاده میشود. - timeout=#
- مقدار مهلت زمانی پیشفرض دستورات SCSI را به # ثانیه تنظیم میکند. مهلت زمانی پیشفرض دستور SCSI حداقل زمانی است که برای ارسال دستورات SCSI در نظر گرفته میشود. اگر یک دستور SCSI به دلیل اتمام مهلت زمانی با شکست مواجه شد، میتوانید مهلت زمانی پیشفرض دستورات SCSI را به مقداری بیشتر از مهلت دستور ناموفق افزایش دهید. اگر دستور با افزایش مهلت زمانی به درستی اجرا شد، لطفاً مقدار مهلت بهتر و دستور مربوطه را به نویسنده برنامه گزارش دهید. اگر هیچ گزینه timeout مشخص نشده باشد، از مهلت پیشفرض ۴۰ ثانیه استفاده میشود.
- debug=#, -d
- تنظیم مقدار اشکالزدایی متفرقه به # (با debug=#) یا افزایش سطح اشکالزدایی متفرقه به اندازه یک واحد (با -d). اگر -dd را مشخص کنید، معادل debug=2 خواهد بود. این گزینه میتواند به یافتن مشکلات هنگام باز کردن درایور برای libscg و همچنین مشکلات اندازه و نوع بخشها (قطاعها) کمک کند. استفاده از -debug سرعت فرآیند را کاهش میدهد و ممکن است دلیل خطای خالی شدن بافر (buffer underrun) باشد.
- kdebug=#, kd=#
- به درایور scg دستور میدهد تا مقدار اشکالزدایی هسته را هنگام اجرای دستورات SCSI تغییر دهد.
- scgopts=list
- فهرستی از گزینههای SCSI جدا شده با کاما که توسط libscg مدیریت میشوند. گزینههای پیادهسازیشده میتوانند مستقل از برنامهها بهروزرسانی شوند. در حال حاضر یک گزینه: ignore-resid برای دور زدن یک باگ در هسته لینوکس پشتیبانی میشود.
- -silent, -s
- گزارش وضعیت برای دستورات ناموفق SCSI چاپ نشود.
- -v
- سطح پرگویی عمومی (verbosity) را یک واحد افزایش میدهد. این گزینه مثلاً برای نمایش پیشرفت فرآیند استفاده میشود.
- -V
- سطح پرگویی مربوط به انتقال دستورات SCSI را یک واحد افزایش میدهد. این گزینه به اشکالزدایی مشکلاتی که در حین فرآیند در دستگاه ضبط CD (CD-Recorder) رخ میدهد کمک میکند. اگر پیامهای خطای نامفهومی دریافت میکنید، باید از این فلگ برای دریافت خروجی دقیقتر استفاده کنید. گزینه -VV علاوه بر این محتوای بافر داده را نیز نمایش میدهد. استفاده از -V یا -VV سرعت فرآیند را کاهش میدهد.
- f=file
- فایل لاگ مورد نظر برای استفاده به جای check.log را مشخص میکند.
مثالها (EXAMPLES)
فایلها (FILES)
همچنین ببینید (SEE ALSO)
نکات (NOTES)
هنگام استفاده از scgcheck با درایور معیوب Linux SCSI generic driver، باید توجه داشته باشید که scgcheck از یک ترفند برای شبیهسازی قابلیتهای درایور scg استفاده میکند. متأسفانه درایور sg در لینوکس دارای چندین باگ جدی است:
- •
- نمیتواند تشخیص دهد که آیا یک دستور SCSI اصلاً امکان ارسال نداشته است یا خیر.
- •
- نمیتواند بایت وضعیت SCSI را دریافت کند. به همین دلیل scgcheck در برخی موقعیتها نمیتواند ناموفق بودن دستورات SCSI را گزارش کند.
- •
- نمیتواند تعداد بایتهای واقعی انتقالیافته توسط DMA را دریافت کند. scgcheck نمیتواند به شما بگوید آیا بایت باقیمانده DMA وجود دارد یا خیر.
- •
- نمیتواند تعداد بایتهای معتبر در دادههای حس خودکار (auto sense data) را دریافت کند. scgcheck نمیتواند تشخیص دهد آیا دستگاه هیچ داده حس کردنی انتقال نداده است یا خیر.
- •
- در درخواست خودکار دادههای حس، دادههای بسیار کمی را واکشی میکند (در استانداردهای CCS/SCSI-2/SCSI-3 حداقل ۱۸ بایت نیاز است).
عیبیابی (DIAGNOSTICS)
یک پیام خطای رایج برای یک دستور SCSI شبیه به زیر است:
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
خط دوم بلوک توصیفکننده دستور SCSI (SCSI CDB) را برای دستور ناموفق چاپ میکند.
خط سوم اطلاعات مربوط به کد وضعیت SCSI بازگردانده شده توسط دستور را در صورت موفقیتآمیز بودن انتقال دستور ارائه میدهد. این اطلاعات خطای دریافتی از دستگاه SCSI است.
خط چهارم یک دامپ هگزادسیمال از اطلاعات درخواست خودکار دادههای حس (auto request sense) برای دستور است.
خط پنجم متن خطای کلید حس (sense key) در صورت وجود است و در ادامه شماره سگمنت که تنها در صورتی معتبر است که دستور یک دستور copy بوده باشد. اگر پیام خطا مستقیماً مربوط به دستور فعلی نباشد، عبارت deferred error اضافه میشود.
خط ششم متن خطای کد حس (sense code) و توصیفکننده حس (sense qualifier) در صورت وجود است. اگر نوع دستگاه شناختهشده باشد، دادههای حس بر اساس جداول موجود در scsierrs.c رمزگشایی میشوند. پس از متن، مقدار خطای واحد قابل تعویض در محل (FRU) آورده میشود.
خط هفتم شماره بلوک مربوط به دستور ناموفق و متن مربوط به پرچمهای مختلف خطا را چاپ میکند. شماره بلوک ممکن است نامعتبر باشد.
خط هشتم مهلت زمانی تعیینشده برای این دستور و زمان واقعی که دستور برای تکمیل نیاز داشته است را گزارش میدهد.
اشکالات (BUGS)
قدردانیها (CREDITS)
فهرستهای ایمیل (MAILING LISTS)
نویسنده (AUTHOR)
Joerg Schilling Seestr. 110 D-13353 Berlin Germany
اطلاعات
بیشتر را
میتوانید
در نشانی
زیر بیابید:
http://cdrecord.org/private/cdrecord.html
اگر سوالات پشتیبانی دارید، به نشانی زیر ارسال کنید:
cdrtools-support@lists.sourceforge.net
اگر قطعاً باگی پیدا کردهاید، به نشانی زیر ایمیل بزنید:
cdrtools-developers@lists.sourceforge.net
یا joerg.schilling@fokus.fraunhofer.de
برای عضویت در فهرست، از نشانیهای زیر استفاده کنید:
https://lists.sourceforge.net/lists/listinfo/cdrtools-developers
یا
https://lists.sourceforge.net/lists/listinfo/cdrtools-support
| Version 3.0 2016/01/26 | Joerg Schilling |