CDEMU(1) General Commands Manual CDEMU(1)

cdemu - کلاینت خط فرمانی ساده برای CDEmu

cdemu [options] <command> <command parameters>

این برنامه cdemu است، یک کلاینت خط فرمانی برای کنترل دیمن CDEmu. این ابزار بخشی از مجموعه cdemu است که یک شبیه‌ساز دستگاه‌های CD/DVD-ROM رایگان و تحت مجوز GPL برای لینوکس می‌باشد.

این کلاینت روشی برای انجام وظایف کلیدی مربوط به کنترل دیمن CDEmu فراهم می‌کند؛ از جمله بارگذاری و تخلیه دستگاه‌ها، نمایش وضعیت دستگاه‌ها و بازیابی یا تنظیم ماسک‌های اشکال‌زدایی دستگاه‌ها.

هنگام اتصال به دیمن، کلاینت cdemu می‌تواند از گذرگاه نشست (session bus) یا گذرگاه سیستم (system bus) استفاده کند. به طور پیش‌فرض، از گذرگاه نشست استفاده می‌کند. گذرگاه پیش‌فرضی که باید استفاده شود را می‌توان از طریق فایل ‎/etc/cdemu-client.conf‎ یا ‎~/.cdemu-client‎ مشخص کرد؛ برای اطلاعات بیشتر، لطفاً فایل README را بخوانید. پیش‌فرض را می‌توان با استفاده از گزینه --bus نادیده گرفت و جایگزین کرد.

دیمن CDEmu از ایمیج‌های رمزگذاری‌شده پشتیبانی می‌کند. هنگامی که برای بارگذاری یک ایمیج به گذرواژه نیاز باشد، cdemu-client آن را از کاربر درخواست کرده و سپس به دیمن ارسال می‌کند.

با این حال، توجه داشته باشید که گذرواژه به صورت یک رشته متنی خام و بدون هیچ‌گونه محافظتی از طریق D-Bus ارسال می‌شود.

سازوکار درخواست گذرواژه به این صورت پیاده‌سازی شده است: اگر متغیر محیطی CDEMU_ASKPASS تنظیم شده باشد، گذرواژه با اجرای یک زیرفرایند با دستور مشخص‌شده در متغیر محیطی مذکور به دست می‌آید. در غیر این صورت، اگر کلاینت از یک کنسول اجرا شده باشد (ورودی استاندارد در دسترس باشد)، از کنسول برای درخواست گذرواژه استفاده می‌شود. اگر کنسول در دسترس نباشد، دستور موجود در متغیر محیطی SSH_ASKPASS (در صورت تنظیم بودن آن متغیر) استفاده می‌شود. در غیر این صورت، امکان دریافت گذرواژه وجود نخواهد داشت و خطا ایجاد می‌شود.

یکپارچه‌سازی اختیاری با zenity را می‌توان با تنظیم متغیر محیطی CDEMU_USE_ZENITY روی مقداری غیر از 0 فعال کرد.

در این حالت، کلاینت cdemu از کادر محاوره‌ای ورودی گذرواژه ارائه‌شده توسط zenity استفاده می‌کند تا هنگام تلاش برای بارگذاری یک ایمیج رمزگذاری‌شده، گذرواژه را از کاربر درخواست کند. این کار عملاً سازوکار ذکرشده در بخش قبل را دور می‌زند (یعنی فارغ از متغیرهای محیطی دیگر و در دسترس بودن ورودی استاندارد، همیشه از کادر محاوره‌ای zenity برای درخواست گذرواژه استفاده می‌شود).

به طور مشابه، علاوه بر چاپ خطاها در جریان خروجی خطای استاندارد (stderr)، از کادر محاوره‌ای خطای ارائه‌شده توسط zenity نیز برای گزارش خطاها استفاده می‌شود. توجه داشته باشید که کادر محاوره‌ای خطا اجرای برنامه را تا زمانی که کاربر پیام را تأیید کرده و کادر را ببندد، متوقف می‌کند.

این حالت در درجه اول برای سناریوهایی در نظر گرفته شده است که کلاینت cdemu برای پیاده‌سازی اقداماتی به کار می‌رود که بدون اتصال به کنسول اجرا می‌شوند، اما ممکن است به ورودی کاربر (گذرواژه) نیاز داشته باشند یا لازم باشد پیام‌های خطا را گزارش دهند. نمونه‌ای از این سناریو، پیاده‌سازی اقدام «بارگذاری با کلاینت CDEmu» برای محیط‌های رومیزی و مرورگرهای فایل است.

نمایش پیام راهنما. اگر دستور مشخص شده باشد، پیام راهنما همراه با خلاصه و توضیحات آن دستور نمایش داده می‌شود.
چاپ اطلاعات نگارش و خروج.
تنظیم نوع گذرگاه D-BUS مورد استفاده برای اتصال. مقادیر معتبر عبارتند از session و system. اگر گذرگاهی مشخص نشود، به طور پیش‌فرض از گذرگاه نشست (session bus) استفاده می‌شود.

بارگذاری دستگاه؛ device شماره دستگاه مورد نظر است، یا any. اگر از any استفاده شود، کلاینت تلاش می‌کند تا ایمیج را در نخستین دستگاه خالی که پیدا می‌کند بارگذاری نماید (به شرطی که دستگاهی موجود باشد). filename نام فایل ایمیج است. برای ایمیج‌های چندفایلی، می‌توان چندین نام فایل را مشخص کرد.

گزینه‌های زیر را می‌توان به دستور load ارسال کرد:

--replace (یا --unload) اجازه می‌دهد دستگاه مشخص‌شده تخلیه شود، و در نتیجه عملاً ایمیج موجود در دستگاهِ از قبل بارگذاری‌شده جایگزین گردد. هنگامی که دستگاه روی any تنظیم شده باشد، کلاینت ابتدا روی تمام دستگاه‌ها پیمایش می‌کند و تلاش می‌نماید یک دستگاه خالی پیدا کند. اگر هیچ دستگاه خالی موجود نباشد، مجدداً روی دستگاه‌ها پیمایش کرده و تلاش می‌کند ایمیج را در نخستین دستگاهی که موفق به تخلیه آن می‌شود بارگذاری کند. در عمل، این دستگاه اغلب نخستین دستگاه خواهد بود، مگر اینکه یک قفل صریح مانع تخلیه دستگاه شود.

--create اگر هیچ دستگاه خالی در دسترس نباشد، به کلاینت اجازه می‌دهد درخواست ایجاد یک دستگاه جدید را ارسال کند و ایمیج را در آن بارگذاری نماید. تنها زمانی کاربرد دارد که دستگاه روی any تنظیم شده باشد.

علاوه بر گزینه‌های فوق، پارامترهای تجزیه‌کننده اختیاری زیر را نیز می‌توان از طریق گزینه‌های متناظر ارسال کرد (اینکه آیا توسط یک تجزیه‌کننده ایمیج خاص پشتیبانی می‌شوند یا خیر، به پیاده‌سازی آن تجزیه‌کننده بستگی دارد):

--encoding <string> امکان تعیین کدگذاری برای قالب‌های ایمیج متنی (مانند CUE) را فراهم می‌کند. در صورتی که فایل توصیف‌گر ایمیج حاوی نویسه‌های غیر اسکی باشد و از یونیکد استفاده نکند، ممکن است به این گزینه نیاز باشد.

یک دیسک خام قابل‌رایت در دستگاه مشخص‌شده ایجاد می‌کند. device شماره دستگاه مورد نظر است یا any. در صورت استفاده از any، کلاینت تلاش می‌کند ایمیج را در نخستین دستگاه خالی موجود بارگذاری کند. image_file نام فایل یا نام پایه ایمیج است. همچنین باید یک writer-id معتبر ارائه شود. سایر گزینه‌های معتبر عبارتند از:

--medium-type <type> نوع رسانه خام را تعیین می‌کند. مقادیر معتبر عبارتند از: cdr74، cdr80، cdr90، cdr99 و dvd+r.

--param="writer.parameter_id=parameter_value" به کاربر اجازه می‌دهد پارامترهای اضافی نویسنده ایمیج را ارسال کند. parameter_id باید یک شناسه پارامتر معتبر از برگه‌ی پارامترهای نویسنده ایمیج باشد که با پیشوند "writer." مشخص شده است.

دستگاه را تخلیه می‌کند؛ device شماره دستگاه مورد نظر است یا all.
وضعیت دستگاه‌ها را نمایش می‌دهد.
یک دستگاه مجازی دیگر ایجاد می‌کند.
آخرین دستگاه مجازی را حذف می‌کند.
اطلاعات نگاشت دستگاه‌ها را نمایش می‌دهد.
ماسک اشکال‌زدایی دیمن را نمایش می‌دهد یا تنظیم می‌کند؛ device شماره دستگاه مورد نظر است یا all. new-value مقدار جدید ماسک اشکال‌زدایی است. در صورت حذف این شناسه، ماسک اشکال‌زدایی فعلی نمایش داده می‌شود. فهرست شناسه‌ها و مقادیر پشتیبانی‌شده‌ی ماسک اشکال‌زدایی را می‌توان با دستور enum-daemon-debug-masks به دست آورد. new-value می‌تواند یک مقدار عددی منفرد (مانند 0x03)، رشته‌ای از مقادیر عددی جداشده با نویسه pipe (مانند "0x01|0x02")، یا رشته‌ای از شناسه‌های جداشده با نویسه pipe (مانند "DAEMON_DEBUG_DEVICE|DAEMON_DEBUG_MMC") باشد.
ماسک اشکال‌زدایی کتابخانه را نمایش می‌دهد یا تنظیم می‌کند؛ device شماره دستگاه مورد نظر است یا all. new-value مقدار جدید ماسک اشکال‌زدایی است. در صورت حذف این آرگومان، ماسک اشکال‌زدایی فعلی نمایش داده می‌شود. فهرست شناسه‌ها و مقادیر پشتیبانی‌شده‌ی ماسک اشکال‌زدایی را می‌توان با دستور enum-library-debug-masks به دست آورد. new-value می‌تواند یک مقدار عددی منفرد (مانند 0x03)، رشته‌ای از مقادیر عددی جداشده با نویسه pipe (مانند "0x01|0x02")، یا رشته‌ای از شناسه‌های جداشده با نویسه pipe (مانند "MIRAGE_DEBUG_PARSER|MIRAGE_DEBUG_DISC") باشد.
پرچم شبیه‌سازی DPM را نمایش می‌دهد یا تنظیم می‌کند. device شماره دستگاه مورد نظر است یا all. new-value مقدار جدید برای تنظیم است. در صورت حذف این آرگومان، مقدار تنظیم‌شده فعلی نمایش داده می‌شود.
پرچم شبیه‌سازی نرخ انتقال داده را نمایش می‌دهد یا تنظیم می‌کند. device شماره دستگاه مورد نظر است یا all. new-value مقدار جدید برای تنظیم است. در صورت حذف این آرگومان، مقدار تنظیم‌شده فعلی نمایش داده می‌شود.
پرچم شبیه‌سازی سکتورهای خراب (bad sector) را نمایش می‌دهد یا تنظیم می‌کند. device شماره دستگاه مورد نظر است یا all. new-value مقدار جدید برای تنظیم است. در صورت حذف این آرگومان، مقدار تنظیم‌شده فعلی نمایش داده می‌شود.
گزارش دادن DVD بارگذاری‌شده به عنوان رمزگذاری‌شده با CSS. device شماره دستگاه مورد نظر است یا all. new-value مقدار جدید برای تنظیم است. در صورت حذف این آرگومان، مقدار تنظیم‌شده فعلی نمایش داده می‌شود.

این پرچم بر تولید ساختار جعلی دیسک 0x01 تأثیر می‌گذارد و به همین دلیل تنها با ایمیج‌های ویدئویی DVD که این اطلاعات را ارائه نمی‌دهند کار می‌کند (اکثر ایمیج‌ها، به استثنای mds/mdf، این اطلاعات را ارائه نمی‌دهند). فعال‌سازی این گزینه اجازه می‌دهد ایمیج‌های DVDهای رمزگذاری‌شده با CSS (مانند موارد ایجادشده با 'dd' یا 'readcd' بدون اجرای مرحله رمزگشایی CSS در زمان ساخت ایمیج) توسط یک پخش‌کننده چندرسانه‌ای لینوکس با قابلیت deCSS پخش شوند.

شناسه دستگاه را نمایش می‌دهد یا تنظیم می‌کند. device شماره دستگاه مورد نظر است. new-vendor-id رشته شناسه سازنده (vendor ID) جدید است (حداکثر ۸ نویسه). new-product-id رشته شناسه محصول (product ID) جدید است (حداکثر ۱۶ نویسه). new-revision رشته بازنگری (revision) جدید است (حداکثر ۴ نویسه). new-vendor-specific رشته اختصاصی سازنده جدید است (حداکثر ۲۰ نویسه). در صورت حذف مقادیر جدید، مقادیر تنظیم‌شده فعلی نمایش داده می‌شوند.
شمارش و فهرست کردن تجزیه‌کننده‌های ایمیج پشتیبانی‌شده.
شمارش و فهرست کردن نویسنده‌های ایمیج پشتیبانی‌شده.
شمارش و فهرست کردن جریان‌های فیلتر پشتیبانی‌شده.
شمارش و فهرست کردن ماسک‌های اشکال‌زدایی دیمن پشتیبانی‌شده.
شمارش و فهرست کردن ماسک‌های اشکال‌زدایی کتابخانه پشتیبانی‌شده.
بازیابی و نمایش برگه‌ی پارامترها برای نویسنده ایمیج مشخص‌شده.
نمایش اطلاعات نگارش.

بارگذاری یک ایمیج تکی در نخستین دستگاه:
cdemu load 0 ~/image.mds
بارگذاری ایمیج چندفایلی در نخستین دستگاه:
cdemu load 0 ~/session1.toc ~/session2.toc ~/session3.toc
بارگذاری ایمیج متنی با کدگذاری غیر اسکی / غیر یونیکد:

cdemu load 0 ~/image.cue --encoding=windows-1250
بارگذاری ایمیج خام یک DVD رمزگذاری‌شده با CSS ایجادشده توسط 'dd'، برای پخش با mplayer:

cdemu load 0 ~/image.iso
cdemu dvd-report-css 0 1
ایجاد یک دیسک خام قابل‌رایت: DVD+R SL با نویسنده ایمیج ISO:
cdemu create-blank --writer-id=WRITER-ISO --medium-type=dvd+r 0 ~/output-image.iso
ایجاد یک دیسک خام قابل‌رایت: CD-R هشتاد دقیقه‌ای با نویسنده ایمیج TOC و پارامترهای رایت اضافی:
cdemu create-blank --writer-id=WRITER-TOC --medium-type=cdr80 --param="writer.write_raw=1" --param="writer.write_subchannel=1" 0 ~/output-image.toc
تخلیه نخستین دستگاه:
cdemu unload 0
نمایش وضعیت دستگاه‌ها:
cdemu status
افزودن یک دستگاه دیگر:
cdemu add-device
حذف آخرین دستگاه:
cdemu remove-device
نمایش اطلاعات نگاشت دستگاه‌ها:
cdemu device-mapping
تنظیم ماسک اشکال‌زدایی دیمن برای نخستین دستگاه:
cdemu daemon-debug-mask 0 0x01
تنظیم ماسک اشکال‌زدایی دیمن برای نخستین دستگاه (ترکیبی):
cdemu daemon-debug-mask 0 "0x01|0x02"
تنظیم ماسک اشکال‌زدایی دیمن برای نخستین دستگاه (ترکیبی با نام):
cdemu daemon-debug-mask 0 "DAEMON_DEBUG_DEVICE|DAEMON_DEBUG_MMC"
دریافت ماسک اشکال‌زدایی کتابخانه برای نخستین دستگاه:
cdemu library-debug-mask 0
غیرفعال کردن شبیه‌سازی DPM در تمامی دستگاه‌ها:
cdemu dpm-emulation all 0
فعال کردن شبیه‌سازی نرخ انتقال داده در نخستین دستگاه:
cdemu tr-emulation 0 1
فعال کردن شبیه‌سازی سکتورهای خراب در نخستین دستگاه:
cdemu tr-emulation 0 1
تغییر شناسه دستگاه در نخستین دستگاه:
cdemu device-id 0 "MyVendor" "MyProduct" "1.0.0" "Test device ID"
فهرست کردن تجزیه‌کننده‌های ایمیج پشتیبانی‌شده:
cdemu enum-parsers
فهرست کردن نویسنده‌های ایمیج پشتیبانی‌شده:
cdemu enum-writers
فهرست کردن جریان‌های فیلتر پشتیبانی‌شده:
cdemu enum-filter-streams
فهرست کردن ماسک‌های اشکال‌زدایی دیمن پشتیبانی‌شده:
cdemu enum-daemon-debug-masks
فهرست کردن ماسک‌های اشکال‌زدایی کتابخانه پشتیبانی‌شده:
cdemu enum-library-debug-masks
دریافت برگه‌ی پارامترها برای نویسنده ایمیج TOC:
cdemu enum-writer-parameters WRITER-TOC
نمایش نگارش دیمن و کتابخانه:
cdemu version

Rok Mandeljc <rok.mandeljc@gmail.com>

تارنمای پروژه CDEmu: http://cdemu.sourceforge.net

فهرست پستی پروژه CDEmu: cdemu-devel@lists.sourceforge.net

February 2026