fwupdmgr(1) fwupdmgr man page fwupdmgr(1)

fwupdmgr - ابزار کلاینت مدیریت به‌روزرسانی سفت‌افزار (فریم‌ور)

fwupdmgr [CMD]

fwupdmgr یک کلاینت خط فرمانی fwupd است که برای استفاده تعاملی در نظر گرفته شده است. پایداری خروجی ترمینال بین نسخه‌های مختلف fwupd تضمین نمی‌شود، اما اگر قصد تجزیه نتایج را دارید، افزودن --json ممکن است دقیقاً همان چیزی باشد که نیاز دارید.

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

•
GNOME Software: https://wiki.gnome.org/Apps/Software
•
GNOME Firmware: https://gitlab.gnome.org/World/gnome-firmware
•
KDE Discover: https://userbase.kde.org/Discover
•
Canonical Firmware Updater: https://github.com/canonical/firmware-updater
•
System76 Firmware Manager: https://github.com/pop-os/firmware-manager

برای مدیریت خودکار پیکربندی و اتوماسیون واکنش‌پذیر، https://mgmtconfig.com منابعی برای مدیریت ریموت‌های fwupd، دستگاه‌های جداگانه و به‌روزرسانی‌های سراسری سیستم، و همچنین تابعی برای گزارش نیاز به راه‌اندازی مجدد ارائه می‌دهد. این ابزار از طریق D-Bus با fwupd ارتباط برقرار می‌کند؛ اعتبارسنجی و نصب فریم‌ور همچنان توسط fwupd مدیریت می‌شود.

در بیشتر سیستم‌ها fwupd برای دریافت فراداده از سرویس سفت‌افزار توزیع‌کنندگان لینوکس (LVFS) https://fwupd.org پیکربندی شده است و اطلاعات بیشتر درباره LVFS در اینجا در دسترس است: https://lvfs.readthedocs.io

بیشتر کاربرانی که تنها می‌خواهند همه دستگاه‌ها را به آخرین نسخه‌ها به‌روزرسانی کنند، می‌توانند دستور fwupdmgr refresh و سپس fwupdmgr update را اجرا نمایند. در این مرحله سیستم درخواست تأیید کرده، برخی دستگاه‌ها را به‌روزرسانی می‌کند و ممکن است برای اعمال به‌روزرسانی‌هایی که نیازمند راه‌اندازی مجدد هستند، سیستم را ری‌استارت کند.

دستور fwupdmgr بسته به کنش اجراشده گزینه‌های مختلفی می‌پذیرد. این کنش‌ها به گروه‌های رفتاری کلی زیر تقسیم می‌شوند:

کنش‌های زیر را می‌توان برای مشاهده جزئیات مربوط به دستگاه‌های شمارش‌شده در سیستم به کار برد:

get-devices: نمایش تمام دستگاه‌ها، به همراه فیلتر اختیاری با استفاده از --filter یا --filter-protocol.

get-updates: نمایش تمام به‌روزرسانی‌های موجود برای یک دستگاه خاص.

get-upgrades: نام مستعار برای get-updates.

get-releases: نمایش تمام نسخه‌های قابل نصب (قدیمی‌تر، یکسان، یا جدیدتر) برای یک دستگاه خاص.

get-details: مشاهده جزئیات مربوط به یک بایگانی .cab خاص، حتی اگر دستگاه هدف در این سیستم یافت نشده باشد.

search: جستجوی به‌روزرسانی‌های موجود در فراداده، صرف‌نظر از اینکه دستگاه در سیستم شناسایی شده باشد یا خیر. جستجو انتشارهای فریم‌ور را بر اساس موارد زیر مطابقت می‌دهد:

•
شناسه GUID کامل یک دستگاه، برای نمونه eb68dbae-3aef-5077-92ae-9016d1f0c856
•
شناسه AppStream ID یک دستگاه، برای نمونه work.frame.Desktop.RyzenAIMax300.BIOS.firmware
•
نام (کامل یا بخشی از) یک به‌روزرسانی فریم‌ور، برای نمونه Desktop Ryzen AI MAX 300
•
نام (کامل یا بخشی از) سازنده فریم‌ور، برای نمونه Framework
•
پروتکل استفاده‌شده توسط فریم‌ور، برای نمونه org.uefi.capsule
•
هرگونه مشکل یا آسیب‌پذیری گزارش‌شده که با این به‌روزرسانی حل می‌شود، برای نمونه CVE-2022-21894
•
هر چک‌سام بایگانی cabinet همراه به‌روزرسانی، در قالب SHA-1 یا SHA-256، برای نمونه b34950fc65dabc0cb50e4c5f081829e40bf92e13

کنش‌های زیر را می‌توان برای نصب فریم‌ور روی دستگاه‌ها به کار برد:

update: به‌روزرسانی به نوبت هر دستگاه به جدیدترین نسخه موجود.

install: نصب هر نسخه موجود برای یک دستگاه خاص.

reinstall: نصب مجدد همان نسخه روی یک دستگاه خاص در صورت وجود.

downgrade: نصب نسخه‌ای قدیمی‌تر برای یک دستگاه در صورت وجود.

switch-branch: جابه‌جایی میان «شاخه‌های» مختلف فریم‌ور برای یک دستگاه خاص. برای نمونه، ممکن است یک شاخه «پشتیبانی‌شده توسط جامعه» و یک شاخه «توزیع‌کننده بالادستی غیرآزاد» برای دقیقاً همان سخت‌افزار وجود داشته باشد که هر دو در LVFS در دسترس هستند.

local-install: نصب یک بایگانی محلی فریم‌ور. دستور معمولی install نیز اگر نخستین آرگومان آن فایلی محلی باشد که وجود دارد، به این کنش بازمی‌گردد.

activate: فعال‌سازی نسخه فریم‌ور نصب‌شده، که ممکن است باعث شود دستگاه برای چند لحظه آفلاین شده یا پاسخگو نباشد.

sync: نصب تمامی نسخه‌ها با برچسب BKC منطبق، در صورتی که یک «بهترین پیکربندی شناخته‌شده» (Best Known Configuration) برای ماشین محلی تعیین شده باشد.

کنش‌های زیر را می‌توان برای مجاز کردن نصب انتشارهای خاص فریم‌ور استفاده کرد:

کنش‌های زیر را می‌توان برای مدیریت فهرست مجاز فریم‌ورهای خاص استفاده کرد:

set-approved-firmware: تعیین فهرست فریم‌ورهای تأییدشده برای ریموت‌ها. هنگامی که فهرست مجاز روی مقداری غیرخالی تنظیم شود، تنها فریم‌ورهایی که با این چک‌سام‌ها مطابقت داشته باشند به عنوان قابل نصب علامت‌گذاری می‌شوند. همچنان امکان نصب دستی فریم‌ور با استفاده از fwupdmgr install وجود دارد -- این تنظیم تنها بر به‌روزرسانی‌های ارجاع‌شده در ریموت‌های فعال با گزینه ApprovalRequired=true اثر می‌گذارد.

get-approved-firmware: دریافت فهرست فریم‌ورهای تأییدشده؛ در صورتی که هیچ فهرست مجازی تعریف نشده باشد، یک فهرست خالی برمی‌گرداند.

چک‌سام‌های استفاده‌شده برای مجاز دانستن، همان چک‌سام‌های بایگانی cabinet در قالب SHA-1 یا SHA-256 هستند.

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

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

emulation-tag: افزودن دستگاه‌ها برای پایش جهت شبیه‌سازی در آینده.

emulation-save: ذخیره داده‌های ضبط‌شده شبیه‌سازی دستگاه در یک فایل JSON. تنها داده‌های مربوط به دستگاه‌هایی بازگردانده می‌شوند که قبلاً برای شبیه‌سازی نشانه‌گذاری شده‌اند.

emulation-load: بارگذاری داده‌های شبیه‌سازی دستگاه از یک فایل JSON.

emulation-untag: حذف دستگاه‌ها از پایش برای شبیه‌سازی در آینده.

هنگام نشانه‌گذاری دستگاه‌ها، می‌توان از شناسه دستگاه یا GUID برای شناسایی آن استفاده کرد.

کنش‌های زیر را می‌توان برای اجرای آزمون‌های خودکار دستگاه به کار برد:

device-emulate: شبیه‌سازی یک دستگاه با استفاده از یک مانیفست JSON، که تنها روی دستگاه‌های شبیه‌سازی‌شده عمل خواهد کرد.

device-test: آزمایش یک دستگاه با استفاده از یک مانیفست JSON که بایگانی‌های cabinet را دانلود و تأیید کرده و آن‌ها را روی دستگاه‌های فیزیکی واقعی مستقر می‌نماید.

کنش‌های زیر را می‌توان برای مدیریت ریموت‌ها (فروشگاه آنلاین فراداده فریم‌ور) که در دیمن پیکربندی شده‌اند به کار برد:

refresh: دریافت آخرین فراداده آنلاین از ریموت‌های پیکربندی‌شده و فعال.

get-remotes: دریافت فهرست ریموت‌های پیکربندی‌شده، که ممکن است فعال یا غیرفعال باشند.

enable-remote: فعال‌سازی یک ریموت از پیش پیکربندی‌شده به طوری که بتوان آن را تازه‌سازی کرد و به کار برد.

disable-remote: غیرفعال کردن یک ریموت، بدون حذف کردن آن یا متادیتای ذخیره‌شده.

modify-remote: ویرایش یک ریموت، برای نمونه فعال‌سازی ویژگی‌هایی همچون AutomaticReports.

clean-remote: پاکسازی یک ریموت، و حذف فراداده در صورت نیاز.

enable-remote-auth: فعال کردن یک ریموت نیازمند احراز هویت (معمولاً دارای محدودیت انتشار) به طوری که بتوان آن را تازه‌سازی کرد و به کار برد.

کنش‌های زیر را می‌توان برای بارگذاری، برون‌بری یا پاک کردن داده‌های گذشته به کار برد:

report-export: برون‌بری تاریخچه فریم‌ور به صورت یک فایل آفلاین جهت بارگذاری دستی به سرویسی مانند LVFS.

report-history: به‌اشتراک‌گذاری تاریخچه فریم‌ور با مالک ریموت، که معمولاً برای نشان دادن نسبت موفقیت یک به‌روزرسانی خاص به کار می‌رود. در برخی موارد، به‌اشتراک‌گذاری تاریخچه نتایجی به صفحات وب حاوی جزئیات بیشتر درباره شکست و گاه راهکارهای رفع آن بازمی‌گرداند.

get-history: نمایش تاریخچه به‌روزرسانی فریم‌ور همان‌گونه که توسط fwupd ذخیره شده است.

get-results: نمایش نتیجه آخرین به‌روزرسانی فریم‌ور برای یک دستگاه خاص.

clear-results: پاک کردن نتایج آخرین به‌روزرسانی در صورت امکان.

report-devices: ارسال فهرست دستگاه‌های قابل به‌روزرسانی به یک سرور از راه دور، تا بتوانند سازنده را برای پشتیبانی از کاربران لینوکس تحت فشار بگذارند.

کنش‌های زیر را می‌توان برای مشاهده یا رفع مشکلات امنیتی سکو به کار برد:

security: دریافت فهرست ویژگی‌های امنیتی میزبان که برای ارزیابی سطح امنیت ماشین استفاده می‌شوند.

security-fix: رفع نقص یک ویژگی امنیتی خاص در میزبان.

security-undo: بازگرداندن اصلاح ویژگی امنیتی میزبان، که ممکن است در صورت بروز مشکل ناشی از security-fix نیاز باشد.

کنش‌های زیر را می‌توان برای فهرست کردن یا تنظیم متغیرهای BIOS فریم‌ور به کار برد:

get-bios-settings: بازیابی تنظیمات BIOS فریم‌ور و مقادیر مجاز آن‌ها.

set-bios-setting: تعیین یک یا چند مورد از تنظیمات BIOS فریم‌ور.

verify-update: به‌روزرسانی چک‌سام‌های ذخیره‌شده که توسط کنش verify استفاده می‌شوند.

کنش‌های زیر ممکن است برای استفاده در اسکریپت‌های غیرتعاملی یا در CI مفید باشند:

check-reboot-needed: بررسی اینکه آیا دستگاهی برای تکمیل به‌روزرسانی در انتظار راه‌اندازی مجدد است یا خیر.

device-wait: انتظار برای ظاهر شدن یک دستگاه در فهرست دستگاه‌های دیمن.

download: دانلود یک فایل با استفاده از همان سازوکارهایی که برای فریم‌ور و فراداده به کار می‌روند.

modify-config: تغییر یک مقدار پیکربندی دیمن مانند IgnorePower. برای فهرست کامل متغیرها به man fwupd.conf مراجعه کنید.

reset-config: بازنشانی یک بخش پیکربندی دیمن به مقادیر پیش‌فرض.

quit: درخواست خروج از دیمن پس از پایان هرگونه به‌روزرسانی فریم‌ور در حال انجام.

inhibit: ممانعت در سیستم برای جلوگیری از ارتقاهای تصادفی دستی یا خودکار.

uninhibit: رفع ممانعت سیستم برای مجاز ساختن ارتقاها.

unlock: باز کردن قفل دستگاه جهت دسترسی به فریم‌ور، که ممکن است برای برخی دستگاه‌های سکو لازم باشد.

get-plugins: نمایش تمام افزونه‌های ثبت‌شده در دیمن.

hwids: بازگرداندن تمام شناسه‌های سخت‌افزاری دستگاه. این GUIDها در ویندوز مایکروسافت گاهی CHID نامیده می‌شوند، و مقادیر بازگردانده‌شده توسط fwupd نیز باید با مقادیر حاصل از ComputerHardwareIds.exe مطابقت داشته باشند.

monitor: پایش دیمن برای رویدادها.

دستوراتی که با موفقیت اجرا شوند مقدار «0» را برمی‌گردانند و شکست عمومی با «1» نشان داده می‌شود.

همچنین چند کد خروج دیگر نیز مورد استفاده قرار می‌گیرند: کد خروج «2» برای دستوراتی است که هیچ عملیاتی نداشتند اما با موفقیت اجرا شدند، و «3» زمانی استفاده می‌شود که یک منبع پیدا نشود.

مسائل گیت‌هاب را ببینید: https://github.com/fwupd/fwupd/issues

<fwupdtool(1)> <fwupd.conf(5)>

2.1.7