cyme(1) General Commands Manual cyme(1)

cyme - فهرست کردن گذرگاه‌ها و دستگاه‌های USB سیستم؛ یک جایگزین مدرن و چندسکویی برای lsusb

cyme [-l|--lsusb] [-t|--tree] [-d|--vidpid] [-s|--show] [-D|--device] [--filter-name] [--filter-serial] [--filter-class] [--filter-exclude] [-v|--verbose]... [-b|--blocks] [--bus-blocks] [--config-blocks] [--interface-blocks] [--endpoint-blocks] [--block-operation] [-m|--more] [--sort-devices] [--sort-buses] [--group-devices] [--hide-buses] [--hide-hubs] [--list-root-hubs] [--decimal] [--no-padding] [--color] [--encoding] [--icon] [--headings] [--json] [--from-json] [-F|--force-libusb] [-c|--config] [-z|--debug]... [--mask-serials] [--mute-hubs] [--system-profiler] [-h|--help] [-V|--version] [زیردستورها]

فهرست کردن گذرگاه‌ها و دستگاه‌های USB سیستم. یک جایگزین مدرن و چندسکویی برای lsusb.

تلاش برای حفظ سازگاری با خروجی lsusb
نمایش سلسله‌مراتب دستگاه‌های USB به صورت درختی
نمایش تنها دستگاه‌هایی با شناسه‌های سازنده و محصول مشخص (به صورت هگزادسیمال) در قالب VID:[PID]
نمایش تنها دستگاه‌هایی با شماره‌های دستگاه یا گذرگاه مشخص (به صورت ده‌دهی) در قالب [[bus]:][devnum]
انتخاب دستگاهی که lsusb بررسی خواهد کرد - به صورت مسیر لینوکسی در قالب /dev/bus/usb/BBB/DDD ارائه می‌شود
فیلتر کردن بر اساس رشته موجود در نام
فیلتر کردن بر اساس رشته موجود در شماره سریال
فیلتر کردن بر اساس کد کلاس USB

مقادیر ممکن:

  • use-interface-descriptor: کلاس دستگاه نامشخص است؛ از توصیف‌کننده‌های رابط برای تشخیص درایورهای مورد نیاز استفاده می‌شود
  • audio: بلندگو، میکروفون، کارت صدا، MIDI
  • cdc-communications: رابط سریال مدرن؛ در اکثر سیستم‌ها به صورت پورت UART/RS232 ظاهر می‌شود
  • hid: دستگاه رابط انسانی (HID)؛ دسته‌های بازی، صفحه‌کلیدها، ماوس‌ها و غیره. همچنین معمولاً به عنوان رابط داده دستگاه به جای ایجاد یک رابط اختصاصی استفاده می‌شود
  • physical: جوی‌استیک با بازخورد لرزشی (Force feedback)
  • image: دستگاه‌های تصویربرداری ثابت؛ اسکنرها، دوربین‌ها
  • printer: چاپگر لیزری، چاپگر جوهرافشان، دستگاه CNC
  • mass-storage: دستگاه‌های ذخیره‌سازی انبوه (MSD)؛ فلش‌مموری USB، کارت‌خوان حافظه، پخش‌کننده صوتی دیجیتال، دوربین دیجیتال، درایو خارجی
  • hub: هاب USB پرسرعت
  • cdc-data: همراه با کلاس 02h (ارتباطات و کنترل CDC) در بالا استفاده می‌شود
  • smart-card: کارت‌خوان هوشمند USB
  • content-security: حسگر اثر انگشت
  • video: وب‌کم
  • personal-healthcare: نمایشگر ضربان قلب (ساعت هوشمند)
  • audio-video: وب‌کم، تلویزیون
  • billboard: حالت‌های جایگزین USB-C پشتیبانی‌شده توسط دستگاه را شرح می‌دهد
  • usb-type-c-bridge: رابطی برای نمایش و پیکربندی قابلیت‌های USB Type-C متصل‌کننده‌ها روی هاب‌های USB یا آداپتورهای حالت جایگزین
  • bdp: این کلاس پایه برای دستگاه‌هایی تعریف شده که با «مشخصات دستگاه VESA USB BDP» موجود در وب‌سایت VESA مطابقت دارند. این مشخصات مجموعه مقادیر مجاز SubClass و Protocol را تعریف می‌کند. مقادیر خارج از این مشخصات رزرو شده‌اند. این کدهای کلاس فقط در توصیف‌کننده‌های رابط قابل استفاده هستند
  • mctp: این کلاس پایه برای دستگاه‌هایی تعریف شده که با «MCTP روی USB» با شناسه DSP0283 موجود در وب‌سایت DMTF مطابقت دارند. این مشخصات مجموعه مقادیر مجاز SubClass و Protocol را تعریف می‌کند. مقادیر خارج از این مشخصات رزرو شده‌اند. این کدهای کلاس فقط در توصیف‌کننده‌های رابط قابل استفاده هستند
  • i3c-device: رابطی برای نمایش و پیکربندی تابع I3C درون یک دستگاه USB جهت امکان تعامل میان نرم‌افزار میزبان و دستگاه I3C، برای هدایت تراکنش‌ها در گذرگاه I3C به/از دستگاه‌های مقصد
  • diagnostic: تجهیزات ردیابی و اشکال‌زدایی
  • wireless-controller: کنترل‌کننده‌های بی‌سیم: آداپتورهای بلوتوث، Microsoft RNDIS
  • miscellaneous: این کلاس پایه برای تعاریف متفرقه دستگاه‌ها تعیین شده است. برخی از مقادیر منطبق SubClass و Protocol در وب‌سایت USB-IF تعریف شده‌اند
  • application-specific-interface: این کلاس پایه برای دستگاه‌هایی تعریف شده که با چندین مشخصات کلاسی موجود در وب‌سایت USB-IF مطابقت دارند
  • vendor-specific-class: این کلاس پایه برای استفاده دلخواه تولیدکنندگان تعریف شده است
مستثنی کردن دستگاه‌های منطبق با معیارهای KEY=VALUE. کلید KEY یکی از موارد زیر است: vidpid, name, serial, class, bus, number. برای اعمال شرط AND (یک رخداد)، چندین جفت KEY=VALUE را با کاما از هم جدا کنید. برای اعمال شرط OR، آرگومان را تکرار کنید
سطح پرگویی (تکرار گزینه مقدار را افزایش می‌دهد): ۱ پیکربندی‌های دستگاه را چاپ می‌کند؛ ۲ رابط‌ها را چاپ می‌کند؛ ۳ نقاط پایانی رابط را چاپ می‌کند؛ ۴ همه چیز و بلوک‌های بیشتری را چاپ می‌کند
مشخص کردن بلوک‌هایی که برای هر دستگاه و به چه ترتیبی نمایش داده می‌شوند. برای تعیین چندین بلوک، آرگومان را چند بار ارسال کنید یا از مقادیر جداشده با کاما (CSV) استفاده کنید.

[پیش‌فرض: bus-number,device-number,icon,vendor-id,product-id,name,serial,speed]

مقادیر ممکن:

  • bus-number: شماره گذرگاهی که دستگاه به آن متصل است
  • device-number: شماره دستگاه تخصیص‌یافته توسط گذرگاه
  • branch-position: موقعیت دستگاه در شاخه والد
  • port-path: مسیر پورت به سبک لینوکس
  • sys-path: مسیر syspath گزارش‌شده توسط udev لینوکس
  • driver: درایور بارگذاری‌شده برای دستگاه گزارش‌شده توسط udev لینوکس
  • icon: آیکون بر اساس VID/PID
  • vendor-id: شناسه یکتای سازنده - خریداری‌شده از USB IF
  • product-id: شناسه یکتای محصول سازنده
  • vid-pid: شناسه یکتای سازنده و محصول به صورت رشته‌ای در قالب 'vid:pid' مانند lsusb
  • name: نام دستگاه طبق گزارش توصیف‌کننده یا با استفاده از usb_ids در صورت عدم وجود
  • manufacturer: سازنده دستگاه طبق گزارش توصیف‌کننده یا با استفاده از usb_ids در صورت عدم وجود
  • product-name: نام محصول دستگاه طبق جستجوی vidpid در usb_ids
  • vendor-name: نام سازنده دستگاه طبق جستجوی vid در usb_ids
  • serial: رشته سریال دستگاه طبق گزارش توصیف‌کننده
  • speed: سرعت اعلام‌شده قابل پشتیبانی دستگاه
  • negotiated-speed: سرعت توافق‌شده دستگاه هنگام اتصال
  • speed-label: سرعت اعلام‌شده دستگاه به صورت برچسب متنی USB-IF
  • negotiated-speed-label: سرعت توافق‌شده دستگاه به صورت برچسب متنی USB-IF
  • tree-positions: موقعیت در طول تمام شاخه‌ها تا دستگاه ریشه
  • bus-power: فقط در system_profiler سیستم‌عامل macOS - در واقع جریان مصرفی گذرگاه بر حسب میلی‌آمپر است، نه توان!
  • bus-power-used: فقط در system_profiler سیستم‌عامل macOS - در واقع جریان مصرف‌شده گذرگاه بر حسب میلی‌آمپر است، نه توان!
  • extra-current-used: فقط در system_profiler سیستم‌عامل macOS - در واقع جریان اضافی مصرف‌شده بر حسب میلی‌آمپر است، نه توان!
  • bcd-device: نسخه دستگاه
  • bcd-usb: نسخه USB پشتیبانی‌شده
  • base-class: مقدار شمارشی کلاس پایه رابط ارائه‌شده توسط USB IF - تنها هنگام استفاده از libusb در دسترس است
  • sub-class: مقدار زیرکلاس رابط ارائه‌شده توسط USB IF - تنها هنگام استفاده از libusb در دسترس است
  • protocol: مقدار پروتکل برای رابط ارائه‌شده توسط USB IF - تنها هنگام استفاده از libusb در دسترس است
  • uid-class: نام کلاس از مخزن شناسه‌های USB
  • uid-sub-class: نام زیرکلاس از مخزن شناسه‌های USB
  • uid-protocol: نام پروتکل از مخزن شناسه‌های USB
  • class: مقدار شمارشی کد کلاس کامل USB بر اساس سه‌گانه BaseClass/SubClass/Protocol
  • base-value: کلاس پایه به صورت مقدار عددی به جای شمارشی
  • last-event: آخرین باری که دستگاه مشاهده شد
  • event-icon: آیکون رویداد
  • operation-mode: سرعت اعلام‌شده دستگاه به صورت رشته حالت عملکرد USB-IF Gen NxM (مانند 'USB 3.2 Gen 2x1')
  • negotiated-operation-mode: سرعت توافق‌شده دستگاه به صورت رشته حالت عملکرد USB-IF Gen NxM
  • speed-marketing-label: سرعت اعلام‌شده دستگاه به صورت برچسب بازاریابی توصیه‌شده USB-IF (مانند 'USB 5 Gbps')
  • negotiated-speed-marketing-label: سرعت توافق‌شده دستگاه به صورت برچسب بازاریابی توصیه‌شده USB-IF
مشخص کردن بلوک‌هایی که برای هر گذرگاه و به چه ترتیبی نمایش داده می‌شوند. برای تعیین چندین بلوک، آرگومان را چند بار ارسال کنید یا از مقادیر جداشده با کاما (CSV) استفاده کنید.

[پیش‌فرض: port-path,name,host-controller,host-controller-device]

مقادیر ممکن:

  • bus-number: شناسه شماره گذرگاه سیستم
  • icon: آیکون بر اساس VID/PID
  • name: نام داخلی گذرگاه سیستم بر اساس نام دستگاه Root Hub
  • host-controller: نام ارائه‌دهنده داخلی گذرگاه سیستم
  • host-controller-vendor: نام سازنده کنترل‌کننده میزبان PCI از pci.ids
  • host-controller-device: نام دستگاه کنترل‌کننده میزبان PCI از pci.ids
  • pci-vendor: شناسه سازنده PCI (VID)
  • pci-device: شناسه دستگاه PCI (PID)
  • pci-revision: شناسه بازبینی (Revision) PCI
  • port-path: مسیر پورت به سبک syspath به گذرگاه، فقط در لینوکس کاربرد دارد
مشخص کردن بلوک‌هایی که برای هر پیکربندی و به چه ترتیبی نمایش داده می‌شوند. برای تعیین چندین بلوک، آرگومان را چند بار ارسال کنید یا از مقادیر جداشده با کاما (CSV) استفاده کنید.

[پیش‌فرض: number,icon-attributes,max-power,name]

مقادیر ممکن:

  • name: نام برگرفته از توصیف‌کننده رشته‌ای
  • number: شماره پیکربندی، bConfigurationValue؛ مقداری که برای فعال‌سازی پیکربندی تنظیم می‌شود
  • num-interfaces: رابط‌های موجود برای این پیکربندی
  • attributes: ویژگی‌های پیکربندی، bmAttributes
  • icon-attributes: نمایش آیکونی bmAttributes
  • max-power: حداکثر جریان مصرفی بر حسب میلی‌آمپر
مشخص کردن بلوک‌هایی که برای هر رابط و به چه ترتیبی نمایش داده می‌شوند. برای تعیین چندین بلوک، آرگومان را چند بار ارسال کنید یا از مقادیر جداشده با کاما (CSV) استفاده کنید.

[پیش‌فرض: port-path,icon,alt-setting,base-class,sub-class]

مقادیر ممکن:

  • name: نام برگرفته از توصیف‌کننده رشته‌ای
  • number: شماره رابط
  • port-path: مسیر پورت رابط (فقط در لینوکس کاربرد دارد)
  • base-class: مقدار شمارشی کلاس پایه رابط ارائه‌شده توسط USB IF
  • sub-class: مقدار زیرکلاس رابط ارائه‌شده توسط USB IF
  • protocol: مقدار پروتکل برای رابط ارائه‌شده توسط USB IF
  • alt-setting: رابط‌ها می‌توانند شماره یکسانی داشته باشند اما تنظیمات جایگزینی که در اینجا تعریف شده را استفاده کنند
  • driver: درایور دریافت‌شده از udev (فقط لینوکس)
  • sys-path: مسیر syspath دریافت‌شده از udev (فقط لینوکس)
  • dev-path: مسیرهای دستگاه /dev/ برای رابط در صورت وجود (فقط لینوکس)
  • mount-paths: مسیرهای سوارشدن برای رابط‌های MSD در قالب CSV به صورت partition_no:mount_path (فقط لینوکس)
  • num-endpoints: یک رابط می‌تواند چندین نقطه پایانی داشته باشد
  • icon: آیکون بر اساس BaseClass/SubCode/Protocol
  • uid-class: نام کلاس از مخزن شناسه‌های USB
  • uid-sub-class: نام زیرکلاس از مخزن شناسه‌های USB
  • uid-protocol: نام پروتکل از مخزن شناسه‌های USB
  • class: کد کلاس کاملاً تعریف‌شده USB بر اساس سه‌گانه BaseClass/SubClass/Protocol
  • base-value: کلاس پایه به صورت مقدار عددی به جای شمارشی
مشخص کردن بلوک‌هایی که برای هر نقطه پایانی و به چه ترتیبی نمایش داده می‌شوند. برای تعیین چندین بلوک، آرگومان را چند بار ارسال کنید یا از مقادیر جداشده با کاما (CSV) استفاده کنید.

[پیش‌فرض: number,direction,transfer-type,sync-type,usage-type,max-packet-size]

مقادیر ممکن:

  • number: شماره نقطه پایانی روی رابط
  • direction: جهت داده به درون نقطه پایانی
  • transfer-type: نوع انتقال داده‌ای که نقطه پایانی می‌پذیرد
  • sync-type: نوع همگام‌سازی (حالت هم‌زمان / Iso mode)
  • usage-type: نوع کاربرد (حالت هم‌زمان / Iso mode)
  • max-packet-size: حداکثر اندازه بسته بر حسب بایت که نقطه پایانی می‌تواند ارسال/دریافت کند
  • interval: بازه زمانی برای نظرسنجی انتقال‌های داده نقطه پایانی. مقدار بر حسب تعداد فریم. برای نقاط پایانی Bulk و Control نادیده گرفته می‌شود. برای حالت هم‌زمان (Isochronous) باید برابر با ۱ باشد و برای نقاط پایانی وقفه (Interrupt) می‌تواند بین ۱ تا ۲۵۵ باشد
عملیاتی که باید روی بلوک‌های ارائه‌شده از طریق --blocks، --bus-blocks، --config-blocks، --interface-blocks و --endpoint-blocks انجام شود

مقدار پیش‌فرض برای سهولت استفاده 'add' است، مقدار 'new' صریح‌تر بوده و رفتار نسخه‌های قدیمی‌تر (< 2.3.0) است

[پیش‌فرض: add]

مقادیر ممکن:

  • add: افزودن بلوک‌های جدید به بلوک‌های موجود، با نادیده گرفتن موارد تکراری
  • append: افزودن بلوک‌های جدید به انتهای بلوک‌های موجود
  • new: جایگزینی تمام بلوک‌ها با موارد جدید
  • prepend: افزودن بلوک‌های جدید به ابتدای بلوک‌های موجود
  • remove: حذف بلوک‌های منطبق از بلوک‌های موجود
چاپ پیش‌فرض بلوک‌های بیشتر در هر سطح پرگویی

تنها در صورتی کار می‌کند که --blocks یا --x-blocks به عنوان آرگومان یا در پیکربندی ارائه نشده باشند

عملیات مرتب‌سازی دستگاه‌ها

[پیش‌فرض: device-number (در حالت مسطح)، branch-position (در حالت درختی)]

مقادیر ممکن:

  • device-number: مرتب‌سازی بر اساس شماره دستگاه گذرگاه
  • branch-position: مرتب‌سازی بر اساس موقعیت در شاخه والد
  • no-sort: بدون مرتب‌سازی؛ به همان ترتیبی که پردازش شده‌اند
مرتب‌سازی دستگاه‌ها بر اساس شماره گذرگاه. در صورت استفاده از هر مقداری برای sort-devices به جز no-sort، این کار به صورت خودکار انجام می‌شود
گروه‌بندی دستگاه‌ها بر اساس مقدار هنگام فهرست کردن

[پیش‌فرض: no-group]

مقادیر ممکن:

  • no-group: بدون گروه‌بندی
  • bus: گروه‌بندی در گذرگاه‌ها همراه با اطلاعات گذرگاه به عنوان سربرگ - مانند یک درخت مسطح
مخفی کردن گذرگاه‌های خالی هنگام چاپ درخت؛ گذرگاه‌هایی که هیچ دستگاهی ندارند
مخفی کردن هاب‌های خالی هنگام چاپ درخت؛ هاب‌هایی که هیچ دستگاهی ندارند. هنگام فهرست کردن، هاب‌ها را بدون توجه به خالی بودن یا نبودن مخفی می‌کند
نمایش هاب‌های ریشه هنگام فهرست کردن؛ فقط در لینوکس
نمایش مقادیر پایه ۱۶ (هگزادسیمال) به صورت پایه ۱۰ (ده‌دهی)
غیرفعال کردن فاصله‌گذاری برای تراز کردن بلوک‌ها - باعث ناتراز شدن --headings خواهد شد
حالت رنگ‌آمیزی خروجی

[پیش‌فرض: auto]

مقادیر ممکن:

  • auto: نمایش رنگ‌ها در صورتی که خروجی به یک کنسول تعاملی هدایت شود
  • always: همیشه رنگ‌آمیزی را روی خروجی اعمال کن
  • never: هرگز رنگ‌آمیزی را روی خروجی اعمال نکن
کدگذاری نویسه‌های خروجی

[پیش‌فرض: glyphs]

مقادیر ممکن:

  • glyphs: استفاده از نویسه‌های ناحیه کاربرد اختصاصی UTF-8 مانند نویسه‌های مورد استفاده در NerdFont برای نمایش آیکون‌های نمادین
  • utf8: استفاده تنها از نویسه‌های استاندارد UTF-8 برای خروجی؛ بدون آیکون‌های نمادین ناحیه کاربرد اختصاصی
  • ascii: استفاده تنها از نویسه‌های ASCII برای خروجی؛ 0x00 - 0x7F (۱۲۷ نویسه)
زمان چاپ بلوک‌های آیکون

[پیش‌فرض: auto]

مقادیر ممکن:

  • auto: نمایش بلوک‌های آیکون در صورتی که [`Encoding`] از آیکون‌های منطبق در [`icon::IconTheme`] پشتیبانی کند
  • always: همیشه بلوک‌های آیکون را در صورت وجود در بلوک‌های پیکربندی‌شده چاپ کن
  • never: هرگز بلوک‌های آیکون را چاپ نکن
نمایش سربرگ‌های بلوک
خروجی در قالب JSON پس از اعمال تنظیمات مرتب‌سازی، فیلترها و ساختار درختی؛ بدون گزینه -tree، تخلیه مسطح دستگاه‌ها خواهد بود
خواندن از خروجی JSON به جای تحلیل زنده سیستم
اجبار به استفاده از تحلیل‌گر خالص libusb در macOS به جای ترکیب با خروجی system_profiler

روی سایر پلتفرم‌ها یا هنگام استفاده از nusb هیچ تاثیری ندارد

مسیر فایل پیکربندی کاربر برای استفاده از آیکون‌ها، رنگ‌ها و تنظیمات پیش‌فرض سفارشی
روشن کردن اطلاعات اشکال‌زدایی. به عنوان جایگزین می‌توانید از متغیر محیطی RUST_LOG استفاده کنید: INFO, DEBUG, TRACE
پوشاندن شماره‌های سریال با نویسه '*' یا نویسه‌های تصادفی

مقادیر ممکن:

  • no-mask: بدون پوشش
  • hide: مخفی کردن با نویسه '*'
  • scramble: پوشاندن از طریق تصادفی‌سازی نویسه‌های موجود
  • replace: پوشاندن با جایگزینی طول با نویسه‌های تصادفی
اعمال رنگ ملایم به خطوط مربوط به دستگاه‌های هاب به جای رنگ‌های مجزا برای هر بلوک
استفاده از دستور system_profiler در macOS برای دریافت داده‌های USB

در صورت عدم استفاده از nusb، این حالت پیش‌فرض در macOS است که با داده‌های libusb برای خروجی پرجزئیات ادغام می‌شود. کتابخانه nusb مستقیماً از IOKit استفاده می‌کند و بنابراین به صورت پیش‌فرض از system_profiler استفاده نمی‌کند

چاپ راهنما (مشاهده خلاصه با '-h')
چاپ نسخه

نظارت بر اتصال و قطع اتصال دستگاه‌های USB
چاپ این پیام یا راهنمای زیردستور(های) داده‌شده

v3.0.1

John Whittington <john@jbrengineering.co.uk>

cyme 3.0.1