| SCGSKELETON(1L) | Schily´s USER COMMANDS | SCGSKELETON(1L) |
نام (NAME)
scgskeleton - برنامهی اسکلت برای انتقال دادههای SCSI با استفاده از libscg
خلاصه دستور (SYNOPSIS)
scgskeleton dev=device [ options ]
توضیحات (DESCRIPTION)
برنامه Scgskeleton یک برنامه نمونه و اسکلت (skeleton) برای نمایش رابطها و قابلیتهای کتابخانه انتقال SCSI با نام libscg است.
نامگذاری دستگاهها (Device naming)
برای مشاهده فهرستی از پارامترهای ممکن برای نام دستگاه، دستور scgskeleton -scanbus یا scgskeleton dev=help را اجرا کنید و سپس بر اساس فهرست دستگاههای نمایشدادهشده، پارامتر مناسب dev= را به کار ببرید.
گزینهها (OPTIONS)
- -help
- خلاصهای کوتاه از گزینهها را چاپ کرده و خارج میشود.
- -version
- اطلاعات نسخه برنامه را نمایش داده و خارج میشود.
- dev=target
- تنظیم هدف (target)
SCSI برای
ضبطکننده
CD/DVD/BluRay؛
یادداشتهای
بالا را
ببینید. یک
مشخصه
متداول
برای
دستگاه هدف
به این صورت
است: dev=1,6,0 .
اگر همراه
با مشخصه
عددی هدف،
نیاز به
ارائه نام
فایل باشد،
نام فایل به
پیادهسازی
سیستم
وابسته است.
نام فایل
صحیح در این
حالت را
میتوان در
کتابچههای
راهنمای
اختصاصی
سیستمعامل
هدف پیدا
کرد. در
سیستمعامل
FreeBSD بدون
پشتیبانی
از CAM، باید
از دستگاه
کنترلی
استفاده
کنید (مانند
/dev/rcd0.ctl). یک
مشخصه صحیح
دستگاه در
این حالت
میتواند
به این شکل
باشد: dev=/dev/rcd0.ctl:@ .
آدرسدهی عمومی SCSI
دستگاه هدف در گزینه dev= به scsibus/target/lun در ضبطکننده CD/DVD/BluRay اشاره دارد. ارتباط در SunOS با راهانداز عمومی SCSI با نام scg انجام میپذیرد. سایر سیستمعاملها از یک شبیهسازی کتابخانهای برای این درایور استفاده میکنند. ساختار نحوی ممکن عبارت است از: dev= scsibus,target,lun یا dev= target,lun. در حالت دوم، ضبطکننده CD/DVD/BluRay باید به گذرگاه (bus) پیشفرض 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: استفاده کنید.
پیشزمینه قابلیت حمل (Portability)
برای اینکه برنامه scgskeleton روی تمام پلتفرمهای یونیکس قابل حمل باشد، ساختار نحوی dev= devicename:scsibus,target,lun ترجیح داده میشود زیرا دانش اختصاصی سیستمعامل درباره نام دستگاهها را از دید کاربر پنهان میسازد. ممکن است یک سیستمعامل خاص الزاماً روشی برای تعیین نام فایل دستگاه واقعی یا روشی برای تعیین scsibus,target,lun ارائه نکند.گذرگاه Scsibus شماره ۰ گذرگاه پیشفرض SCSI در دستگاه است. برای اطلاعات بیشتر پیامهای بوت را بررسی کرده یا به فایل /var/adm/messages برای جزئیات پیکربندی SCSI دستگاه خود مراجعه کنید. اگر در یافتن مقادیر صحیح برای scsibus,target,lun مشکل دارید، گزینه -scanbus برنامه scgskeleton را که در ادامه توضیح داده شده امتحان کنید.
استفاده از نامهای منطقی برای دستگاهها
اگر گزینه dev مشخص نشده باشد، scgskeleton تلاش میکند دستگاه را از متغیر محیطی CDR_DEVICE دریافت کند.اگر فایل /etc/default/cdrecord وجود داشته باشد و آرگومان گزینه dev= یا متغیر محیطی CDR_DEVICE حاوی نویسههای ','، '/'، '@' یا ':' نباشد، به عنوان برچسب نام دستگاه که در فایل /etc/default/cdrecord تعریف شده تفسیر میشود (بخش FILES را ببینید).
حالت شناسایی خودکار هدف (Autotarget Mode)
اگر گزینه dev= و متغیر محیطی CDR_DEVICE تعیین نشده باشند، یا فقط حاوی مشخصکننده لایه انتقال بدون قالب آدرسدهی باشند، scgskeleton تلاش میکند فضای آدرس SCSI را برای درایوهای CD-ROM پویش کند. اگر دقیقاً یک درایو یافت شود، به طور پیشفرض همان مورد استفاده قرار میگیرد. - timeout=#
- تنظیم مقدار زمان انتظار (timeout) پیشفرض دستور SCSI به # ثانیه. زمان انتظار پیشفرض، حداقل زمان در نظر گرفتهشده برای ارسال دستورات SCSI است. اگر یک دستور SCSI به دلیل اتمام زمان شکست بخورد، میتوانید زمان انتظار پیشفرض را به بیش از مقدار دستور شکستخورده افزایش دهید. اگر دستور با افزایش زمان انتظار به درستی اجرا شد، لطفاً مقدار بهتر و دستور مربوطه را به نویسنده برنامه گزارش دهید. اگر گزینه timeout مشخص نشود، زمان پیشفرض ۴۰ ثانیه استفاده میشود.
- debug=#, -d
- تنظیم مقدار اشکالزدایی متفرقه به # (با debug=#) یا افزایش سطح اشکالزدایی به اندازه یک واحد (با -d). اگر -dd را تعیین کنید، برابر با debug=2 خواهد بود. این گزینه میتواند به یافتن مشکلات هنگام باز کردن درایور برای libscg و همچنین اشکالات اندازه و نوع سکتورها کمک کند. استفاده از -debug سرعت فرآیند را کاهش میدهد و ممکن است دلیل کمبود بافر (buffer underrun) باشد.
- kdebug=#, kd=#
- به درایور scg دستور میدهد تا مقدار اشکالزدایی هسته را در زمان اجرای دستورات SCSI تغییر دهد.
- -silent, -s
- از چاپ گزارش وضعیت برای دستورات ناموفق SCSI خودداری میکند.
- -v
- سطح پرگویی (verbosity) عمومی را یک واحد افزایش میدهد. این گزینه برای مثال جهت نمایش پیشرفت عملیات به کار میرود.
- -V
- سطح پرگویی را در رابطه با لایه انتقال دستورات SCSI یک واحد افزایش میدهد. این به اشکالزدایی مشکلاتی که در طول فرآیند در ضبطکننده CD رخ میدهند کمک میکند. اگر پیامهای خطای غیرقابل درکی دریافت میکنید، باید از این فلگ برای دریافت خروجی دقیقتر استفاده کنید. گزینه -VV علاوه بر این، محتوای بافر داده را نیز نمایش میدهد. استفاده از -V یا -VV سرعت فرآیند را کاهش میدهد.
- -scanbus
- تمام دستگاههای SCSI را روی همه گذرگاههای SCSI پویش کرده و رشتههای استعلام (inquiry) را چاپ میکند. این گزینه میتواند برای یافتن آدرس SCSI دستگاهها در یک سیستم استفاده شود. اعداد چاپشده به عنوان برچسب از رابطه زیر محاسبه میشوند: bus * 100 + target
- scgopts=list
- فهرستی از گزینههای SCSI جداشده با کاما که توسط libscg مدیریت میشوند. گزینههای پیادهسازیشده میتوانند مستقل از برنامهها بهروزرسانی شوند. در حال حاضر گزینه ignore-resid برای دور زدن یک باگ در هسته لینوکس پشتیبانی میشود.
- ts=#
- تنظیم
حداکثر
اندازه
انتقال
برای یک
تکدستور SCSI
به مقدار #.
ساختار
نحوی گزینه
ts= مشابه
گزینه fs=# در cdrecord
یا bs=# در sdd است.
اگر گزینه ts= مشخص نشده باشد، scgskeleton به طور پیشفرض اندازه انتقال را ۲۵۶ کیلوبایت در نظر میگیرد. اگر libscg مقادیر کمتری از سیستمعامل دریافت کند، این مقدار به حداکثر مقدار ممکن در سیستمعامل جاری کاهش مییابد. گاهی ممکن است کاهش بیشتر اندازه انتقال یا افزایش آن مفید باشد، اما در نظر داشته باشید که یافتن مقدار مناسبتر با آزمایش گزینه ts= ممکن است زمان زیادی ببرد.
مثالها (EXAMPLES)
محیط (ENVIRONMENT)
- RSH
- اگر متغیر
محیطی RSH
تنظیم شده
باشد،
اتصال راه
دور از طریق
rcmd(3) برقرار
نمیشود،
بلکه با
فراخوانی
برنامهای
که توسط RSH
مشخص شده
ایجاد
خواهد شد.
برای مثال
از RSH=/usr/bin/ssh برای
ایجاد یک
اتصال امن
پوسته
استفاده
کنید.
توجه داشته باشید که این کار cdrecord را وادار میکند یک لوله (pipe) به برنامه rsh(1) بسازد و اجازه دسترسی مستقیم cdrecord به سوکت شبکه سرور راه دور را سلب میکند. این امر پیکربندی پارامترهای کارایی را غیرممکن ساخته و سرعت ارتباط را در مقایسه با اتصال rcmd(3) آغازشده توسط root کاهش میدهد.
- RSCSI
- اگر متغیر محیطی RSCSI تنظیم شده باشد، سرور راه دور SCSI برنامه /opt/schily/sbin/rscsi نخواهد بود، بلکه برنامهای است که توسط RSCSI مشخص شده است. توجه داشته باشید که اگر با حسابی وارد شوید که پوسته ورود آن برنامه سرور راه دور SCSI تعریف شده است، نام برنامه سرور راه دور SCSI نادیده گرفته خواهد شد.
همچنین ببینید (SEE ALSO)
نکات (NOTES)
عیبیابی (DIAGNOSTICS)
یک پیام خطای معمول برای دستور SCSI شبیه به متن زیر است:
scgskeleton: 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 بازگرداندهشده توسط دستور را در صورتی که انتقال دستور با موفقیت انجام شده باشد ارائه میدهد. این اطلاعات خطا از طرف دستگاه SCSI است.
خط چهارم تخلیه هگزادسیمال (hex dump) اطلاعات حس خودکار درخواستی (auto request sense) برای دستور است.
خط پنجم متن خطای مربوط به کلید حس (sense key) را در صورت وجود، به همراه شماره بخشی که تنها در صورت دستور copy معتبر است چاپ میکند. اگر پیام خطا مستقیماً به دستور فعلی مربوط نباشد، متن deferred error اضافه میشود.
خط ششم متن خطای مربوط به کد حس و توصیفکننده حس را در صورت وجود نمایش میدهد. اگر نوع دستگاه مشخص باشد، دادههای حس از جداول موجود در scsierrs.c رمزگشایی میشوند. پس از متن، مقدار خطا برای یک واحد قابل تعویض در محل (FRU) آورده میشود.
خط هفتم شماره بلوک مربوط به دستور ناموفق و متن مربوط به پرچمهای مختلف خطا را چاپ میکند. شماره بلوک ممکن است معتبر نباشد.
خط هشتم زمان انتظار تنظیمشده برای این دستور و زمانی را که دستور واقعاً برای تکمیل نیاز داشته است گزارش میدهد.
اشکالات (BUGS)
نویسنده (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
| 2016/01/26 | Joerg Schilling |