BTCFLASH(1L) Schily´s USER COMMANDS BTCFLASH(1L)

btcflash - ابزار ارتقا و فلش میان‌افزار برای ضبط‌کننده DVD+/-RW مدل BTC DRW1008

btcflash dev=device [ گزینه‌ها ] [ f=firmwarefile ]

دستور btcflash برای خواندن و به‌روزرسانی میان‌افزار (Firmware) در دستگاه ضبط‌کننده DVD+/-RW مدل BTC DRW1008 استفاده می‌شود.

هنگام نوشتن میان‌افزار بسیار دقت کنید، زیرا این برنامه صحت دستگاه هدف را بررسی نمی‌کند.

برای مشاهده فهرستی از پارامترهای ممکن نام دستگاه، دستور زیر را اجرا کنید: btcflash -scanbus یا btcflash dev=help و سپس بر اساس فهرست دستگاه‌ها، پارامتر مناسب dev= را به کار ببرید.

چاپ خلاصه‌ای کوتاه از گزینه‌ها و خروج.
چاپ اطلاعات نسخه و خروج.
تعیین هدف SCSI برای ضبط‌کننده CD/DVD/BluRay؛ یادداشت‌های بالا را ببینید. یک مشخصه رایج دستگاه هدف عبارت است از: dev=1,6,0 . اگر لازم باشد یک نام پرونده به همراه مشخصه عددی هدف ارائه شود، نام پرونده وابسته به پیاده‌سازی سیستم است. نام پرونده صحیح در این حالت را می‌توان در راهنماهای مربوط به سیستم‌عامل هدف یافت. در سیستم FreeBSD بدون پشتیبانی از CAM، باید از دستگاه کنترلی استفاده کنید (به عنوان مثال /dev/rcd0.ctl). یک مشخصه صحیح دستگاه در این حالت ممکن است به صورت زیر باشد: dev=/dev/rcd0.ctl:@ .

آدرس‌دهی عمومی SCSI
دستگاه هدف (target device) در گزینه dev= به scsibus/target/lun ضبط‌کننده CD/DVD/BluRay اشاره دارد. ارتباط در SunOS با درایور عمومی SCSI به نام scg انجام می‌شود. سایر سیستم‌عامل‌ها از شبیه‌سازی کتابخانه‌ای این درایور استفاده می‌کنند. نحو مجاز به این صورت است: dev= scsibus,target,lun یا dev= target,lun. در حالت دوم، ضبط‌کننده CD/DVD/BluRay باید به گذرگاه پیش‌فرض 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)
برای سازگار کردن btcflash با تمامی بسترهای UNIX، نحو dev= devicename:scsibus,target,lun ترجیح داده می‌شود زیرا دانش خاص سیستم‌عامل در مورد نام‌های دستگاه را از کاربر پنهان می‌کند. یک سیستم‌عامل خاص لزوماً راهی برای تعیین نام پرونده دستگاه واقعی یا روشی برای تعیین scsibus,target,lun ارائه نمی‌دهد.

گذرگاه Scsibus شماره ۰ گذرگاه پیش‌فرض SCSI در ماشین است. پیام‌های بوت سیستم را برای اطلاعات بیشتر بررسی کنید یا برای اطلاعات بیشتر درباره پیکربندی SCSI ماشین خود به /var/adm/messages نگاهی بیندازید. اگر در تشخیص مقادیری که باید برای scsibus,target,lun استفاده شوند مشکلی دارید، گزینه -scanbus از برنامه btcflash را که در زیر توضیح داده شده است امتحان کنید.

استفاده از نام‌های منطقی برای دستگاه‌ها
اگر گزینه dev داده نشود، btcflash تلاش می‌کند دستگاه را از متغیر محیطی CDR_DEVICE به دست آورد.

اگر پرونده /etc/default/cdrecord وجود داشته باشد، و اگر آرگومان ارائه‌شده به گزینه dev= یا متغیر محیطی CDR_DEVICE شامل نویسه‌های ','، '/'، '@' یا ':' نباشد، به عنوان نام برچسب دستگاهی که در پرونده /etc/default/cdrecord تعریف شده است تفسیر می‌شود (بخش پرونده‌ها را ببینید).

حالت هدف‌یابی خودکار (Autotarget Mode)
اگر گزینه dev= و متغیر محیطی CDR_DEVICE وجود نداشته باشند، یا اگر تنها شامل یک مشخص‌کننده لایه انتقال بدون نشانه‌گذاری آدرس باشند، btcflash تلاش می‌کند فضای آدرس SCSI را برای یافتن درایوهای CD-ROM اسکن کند. اگر دقیقاً یک درایو یافت شود، به طور پیش‌فرض همان استفاده خواهد شد.

تنظیم مقدار مهلت زمانی (timeout) پیش‌فرض دستورات SCSI بر حسب # ثانیه. مهلت زمانی پیش‌فرض دستورات SCSI حداقل مهلت زمانی مورد استفاده برای ارسال دستورات SCSI است. اگر یک دستور SCSI به دلیل اتمام مهلت زمانی با خطا مواجه شود، می‌توانید سعی کنید مقدار مهلت زمانی پیش‌فرض دستورات SCSI را بالاتر از مهلت زمانی دستور شکست‌خورده افزایش دهید. اگر دستور با مهلت زمانی افزایش‌یافته به درستی اجرا شد، لطفاً مقدار مهلت زمانی بهتر و دستور مربوطه را به نویسنده برنامه گزارش دهید. اگر گزینه timeout ارائه نشود، مهلت زمانی پیش‌فرض ۴۰ ثانیه استفاده می‌شود.
تنظیم مقدار اشکال‌زدایی متفرقه روی # (با debug=#) یا افزایش سطح اشکال‌زدایی متفرقه به میزان یک واحد (با -d). اگر -dd را مشخص کنید، معادل debug=2 خواهد بود. این کار ممکن است به یافتن مشکلات هنگام باز کردن درایور برای libscg و همچنین مشکلات مربوط به اندازه بخش‌ها و انواع بخش‌ها کمک کند. استفاده از -debug سرعت فرآیند را کاهش می‌دهد و ممکن است دلیل خالی شدن بافر (buffer underrun) باشد.
دستور دادن به درایور scg برای اصلاح مقدار اشکال‌زدایی هسته در حین اجرای دستورات SCSI.
عدم چاپ گزارش وضعیت برای دستورات ناموفق SCSI.
افزایش سطح جزئیات عمومی خروجی به اندازه یک واحد. این گزینه مثلاً برای نمایش پیشرفت فرآیند استفاده می‌شود.
افزایش سطح جزئیات خروجی با توجه به انتقال دستورات SCSI به اندازه یک واحد. این گزینه به اشکال‌زدایی مشکلاتی که در حین فرآیند در دستگاه ضبط CD رخ می‌دهد کمک می‌کند. اگر پیام‌های خطای غیرقابل درک دریافت می‌کنید، باید از این گزینه برای دریافت خروجی با جزئیات بیشتر استفاده کنید. گزینه -VV علاوه بر این، محتوای بافر داده را نیز نشان می‌دهد. استفاده از -V یا -VV فرآیند را کند می‌کند.
مشخص کردن نام پرونده‌ای که میان‌افزار باید از آن خوانده شود.
اسکن تمام دستگاه‌های SCSI در تمام گذرگاه‌های SCSI و چاپ رشته‌های استعلام (inquiry). از این گزینه می‌توان برای یافتن نشانی SCSI دستگاه‌های موجود در سیستم استفاده کرد. اعدادی که به عنوان برچسب چاپ می‌شوند با فرمول زیر محاسبه می‌شوند: bus * 100 + target
فهرستی جداشده با کاما از گزینه‌های SCSI که توسط libscg پردازش می‌شوند. گزینه‌های پیاده‌سازی‌شده ممکن است به طور مستقل از برنامه‌ها به‌روزرسانی شوند. در حال حاضر، یک گزینه: ignore-resid برای دور زدن یک اشکال در هسته لینوکس پشتیبانی می‌شود.
تنظیم حداکثر اندازه انتقال برای یک دستور واحد SCSI به #. نحو گزینه ts= مشابه با cdrecord fs=# یا sdd bs=# است.

اگر گزینه ts= مشخص نشده باشد، btcflash به طور پیش‌فرض از اندازه انتقال ۲۵۶ کیلوبایت استفاده می‌کند. اگر libscg مقادیر کمتری را از سیستم‌عامل دریافت کند، مقدار به حداکثر مقدار ممکن در سیستم‌عامل جاری کاهش می‌یابد. گاهی ممکن است کاهش بیشتر اندازه انتقال یا افزایش آن مفید باشد، اما توجه داشته باشید که یافتن مقدار بهتر با آزمایش با گزینه ts= ممکن است زمان زیادی طول بکشد.

اگر متغیر محیطی RSH وجود داشته باشد، اتصال راه دور از طریق rcmd(3) برقرار نخواهد شد، بلکه با فراخوانی برنامه‌ای که توسط RSH مشخص شده است ایجاد می‌شود. به عنوان مثال از RSH=/usr/bin/ssh برای ایجاد یک اتصال پوسته امن استفاده کنید.

توجه داشته باشید که این کار cdrecord را وادار می‌کند تا یک لوله به برنامه rsh(1) ایجاد کند و به cdrecord اجازه نمی‌دهد مستقیماً به سوکت شبکه سرور راه دور دسترسی پیدا کند. این امر تنظیم پارامترهای کارایی را غیرممکن ساخته و در مقایسه با اتصال rcmd(3) آغازشده توسط root (کاربر ارشد) اتصال را کندتر می‌کند.

اگر متغیر محیطی RSCSI وجود داشته باشد، کارساز SCSI راه دور برنامه /opt/schily/sbin/rscsi نخواهد بود، بلکه برنامه‌ای است که توسط RSCSI تعیین شده است.

توجه داشته باشید که اگر با استفاده از حسابی وارد شوید که با یک برنامه کارساز SCSI راه دور به عنوان پوسته ورود (login shell) ایجاد شده است، نام برنامه کارساز SCSI راه دور نادیده گرفته خواهد شد.

cdrecord(1), scg(7), rcmd(3), ssh(1).

یک پیام خطای معمولی برای دستور SCSI به شکل زیر است:

btcflash: 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
خط اول اطلاعاتی در مورد انتقال دستور ارائه می‌دهد. متن پس از دونقطه نخست، متن خطای فراخوانی سیستم را از دیدگاه هسته بیان می‌کند. معمولاً به صورت I/O error است، مگر اینکه مشکلات دیگری پیش بیاید. واژه‌های بعدی شامل توضیح کوتاهی برای دستور ناموفق SCSI است. بقیه خط به شما می‌گوید که آیا مشکلی در انتقال دستور از طریق گذرگاه SCSI وجود داشته است یا خیر. fatal error به این معنی است که انتقال دستور امکان‌پذیر نبوده است (یعنی هیچ دستگاهی در آدرس درخواستی SCSI وجود ندارد).

خط دوم بلوک توصیف‌کننده دستور SCSI (CDB) را برای دستور ناموفق چاپ می‌کند.

خط سوم اطلاعات مربوط به کد وضعیت SCSI بازگردانده‌شده توسط دستور را در صورت موفقیت‌آمیز بودن انتقال دستور ارائه می‌دهد. این اطلاعات خطایی است که از دستگاه SCSI دریافت شده است.

خط چهارم یک خروجی هگزادسیمال (hex dump) از اطلاعات استعلام خودکار حسگر (auto request sense) برای دستور است.

خط پنجم متن خطا برای کلید حسگر (sense key) در صورت وجود است، و پس از آن شماره قطعه (segment) که تنها در صورت copy بودن دستور معتبر است می‌آید. اگر پیام خطا مستقیماً به دستور فعلی مربوط نباشد، متن deferred error به آن افزوده می‌شود.

خط ششم متن خطا برای کد حسگر و مشخص‌کننده حسگر (sense qualifier) در صورت وجود است. اگر نوع دستگاه شناخته‌شده باشد، داده‌های حسگر از جداول موجود در scsierrs.c رمزگشایی می‌شوند. پس از متن، مقدار خطای واحد قابل تعویض در محل (FRU) درج می‌شود.

خط هفتم شماره بلوک مربوط به دستور ناموفق و متن چندین فلگ خطا را چاپ می‌کند. شماره بلوک ممکن است نامعتبر باشد.

خط هشتم مهلت زمانی تعیین‌شده برای این دستور و زمانی را که دستور واقعاً برای تکمیل نیاز داشته است گزارش می‌دهد.

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