fwupd.conf(5) Configuration File Format fwupd.conf(5)

fwupd.conf - فایل پیکربندی برای دیمن fwupd

فایل /etc/fwupd/fwupd.conf فایل پیکربندی اصلی برای دیمن fwupd است. شرح کامل قالب فایل و پارامترهای ممکن در اینجا جهت ارجاع مستند شده است.

این فایل از چندین بخش به همراه پارامترهای اختیاری تشکیل شده است. پارامترها به شکل زیر هستند:

[section]
key = value

این فایل خط‌محور است؛ هر خط که با نویسه خط جدید پایان می‌یابد بیانگر یک توضیح، نام یک بخش یا یک پارامتر است.

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

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

هر خطی که با نویسه هش (#) آغاز شود نادیده گرفته می‌شود؛ خطوطی که فقط شامل فاصله‌های خالی هستند نیز نادیده گرفته می‌شوند.

مقادیر پس از علامت مساوی در پارامترها همگی یا یک رشته متنی (بدون نیاز به علامت نقل‌قول)، یا اعداد صحیح بدون علامت، یا مقادیر بولی هستند که می‌توانند به صورت true یا false مشخص شوند. بزرگی و کوچکی حروف در مقادیر بولی اهمیتی ندارد، اما در مقادیر رشته‌ای حفظ می‌شود.

بخش [fwupd] می‌تواند شامل پارامترهای زیر باشد:

DisabledDevices=

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

DisabledPlugins=

امکان مسدودسازی افزونه‌های خاص بر پایه نام. از دستور fwupdmgr get-plugins برای دریافت فهرست افزونه‌ها استفاده کنید.

ArchiveSizeMax=

حداکثر اندازه آرشیوی که می‌تواند بارگیری شود برحسب مگابایت (Mb)، با مقدار پیش‌فرض ۲۵٪ از کل حافظه سیستم.

IdleTimeout=300

مدت‌زمان بیکاری برحسب ثانیه برای خاموش کردن دیمن؛ مقدار 0 نشان‌دهنده «هرگز» است.

نکته: برخی افزونه‌ها ممکن است مانع خاموش شدن خودکار شوند؛ برای نمونه thunderbolt.

IdleInhibitStartupThreshold=500

اگر راه‌اندازی اولیه دیمن بیش از این مدت (برحسب میلی‌ثانیه) طول بکشد، تایمر خاموش شدن در حالت بیکاری متوقف می‌شود. مقدار 0 نشان‌دهنده «هرگز» است.

VerboseDomains=

فهرستی جداشده با کاما از دامنه‌ها برای ثبت وقایع در حالت پرگو (verbose). در صورت تنظیم نشدن، هیچ دامنه‌ای روی حالت پرگو تنظیم نمی‌شود. اگر روی «*» تنظیم شود، تمام دامنه‌ها پرگو خواهند بود که معادل اجرای دیمن با --verbose --verbose است.

UpdateMotd=true

به‌روزرسانی پیام روز (MOTD) در زمان تغییرات دستگاه و متادیتا.

EnumerateAllDevices=false

برای برخی افزونه‌ها، فقط دستگاه‌های پشتیبانی‌شده توسط متادیتا شمارش شوند.

ApprovedFirmware=

فهرستی از مجموع‌های مقابله‌ای (checksums) سفت‌افزار که توسط مدیر سایت تأیید شده است. در صورت عدم تنظیم، تمام سفت‌افزارها تأییدشده هستند.

UriSchemes=file;https;http;ipfs

طرح‌های مجاز URI به ترتیب اولویت؛ در صورت عدم موفقیت بارگیری با نخستین طرح، تلاش با طرح بعدی به ترتیب تکرار می‌شود تا هیچ انتخابی باقی نماند.

IgnorePower=false

نادیده گرفتن سطوح انرژی و توان دستگاه‌ها هنگام اجرای به‌روزرسانی‌ها.

IgnoreRequirements=false

نادیده گرفتن برخی نیازمندی‌های دستگاه؛ برای نمونه حذف نیازمندی عمومی GUID مربوط به CHID، فرزند، والد یا همتا (sibling). این گزینه برای سیستم‌های عملیاتی توصیه نمی‌شود، هرچند ممکن است برای توسعه سفت‌افزار سودمند باشد.

IgnoreEfivarsFreeSpace=false

نادیده گرفتن نیازمندی فضای خالی efivars برای به‌روزرسانی‌های db، dbx، KEK و PK. این گزینه ممکن است در هسته‌های لینوکس قدیمی‌تر از 6.4 یا در شرایطی که سخت‌افزار از RT->QueryVariableInfo در UEFI پشتیبانی نمی‌کند، لازم باشد.

OnlyTrustPostQuantumSignatures=false

تنها به امضاهای رمزنگاری پساکوانتومی (post-quantum) اعتماد شود. این گزینه فقط زمانی توصیه می‌شود که مطمئن باشید سفت‌افزار دارای یک امضای معتبر PQ است.

OnlyTrusted=true

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

ShowDevicePrivate=true

نمایش داده‌هایی مانند شماره سریال‌های دستگاه که ممکن است برخی کاربران آن‌ها را خصوصی بدانند.

TrustedUids=

شناسه‌های کاربری (UID) منطبق با این مقادیر که رابط D-Bus را فراخوانی می‌کنند، باید به عنوان معتبر علامت‌گذاری شوند.

HostBkc=

فهرستی جداشده با کاما از شناسه‌های بهترین پیکربندی شناخته‌شده (BKC) برای استفاده هنگام اجرای fwupdmgr sync. این گزینه می‌تواند سفت‌افزار را به نسخه‌های کارخانه‌ای تنزل دهد یا سفت‌افزار را به سطح پیکربندی پشتیبانی‌شده ارتقا دهد؛ مانند vendor-factory-2021q1,mycompany-2023.

ReleaseDedupe=true

حذف موارد تکراری انتشارها بر اساس مجموع مقابله‌ای (checksum) آرشیو در صورتی که از بیش از یک منبع در دسترس باشند.

ReleasePriority=local

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

گزینه‌های ممکن عبارت‌اند از local یا remote یا مقدار خالی برای عدم اعمال هیچ‌گونه تغییری در خط‌مشی، که بر بخش‌های OrderAfter و OrderBefore در منبع دوردست تکیه می‌کند.

EspLocation=

تنظیم مسیر ترجیحی مورد استفاده برای پارتیشن سیستمی EFI (موسوم به ESP). این گزینه معمولاً زمانی به کار می‌رود که UDisks به هر دلیلی نتواند موقعیت آن را به صورت خودکار شناسایی کند.

RequireImmutableEnumeration=false

عدم اجازه به افزونه‌های fwupd برای تعامل مستقیم با دستگاه‌ها در طول مراحل بررسی (probe) یا راه‌اندازی اولیه (setup). هسته باید تمام اطلاعات دستگاه را در فایل‌های sysfs یا ویژگی‌های udev فراهم کند. این کار مانع از عملکرد برخی افزونه‌ها خواهد شد.

Manufacturer=

ProductName=

ProductSku=

Family=

EnclosureKind=

BaseboardProduct=

BaseboardManufacturer=

بازنویسی مقادیر مربوط به داده‌های SMBIOS یا درخت دستگاه (Device Tree) در سیستم محلی. این مقادیر تنها زمانی لازم هستند که داده‌های SMBIOS یا Device Tree نامعتبر یا ناموجود باشند یا برای شبیه‌سازی اجرا روی سیستمی دیگر استفاده شوند. برای پر کردن ورودی‌های خالی باید از مقادیر خالی، یا افزودن مقادیر برای پر کردن ورودی‌های خاص استفاده شود.

TrustedReports=VendorId=$OEM

گزارش‌های سازنده‌ای که با این عبارات مطابقت داشته باشند، انتشارهای آن‌ها به عنوان trusted-report نشانه‌گذاری می‌شوند. هر بخش *یا* (OR) با ; و هر بخش *و* (AND) با & جدا می‌شود؛ برای نمونه:

•
DistroId=chromeos

هر گزارشی که از ChromeOS بارگذاری شده باشد، معتبر است.

•
DistroId=chromeos&RemoteId=lvfs

هر گزارشی که در منبع دوردست lvfs یافت شود و از یک دستگاه ChromeOS بارگذاری شده باشد، معتبر است.

•
DistroId=fedora&VendorId=19

هر گزارشی که از فدورا ۱۹ بارگذاری شده باشد، معتبر است.

•
DistroId=fedora&VendorId=$OEM

هر گزارشی که از فدورا توسط OEM سخت‌افزار بارگذاری شده باشد، معتبر است.

•
DistroId=fedora;DistroId=rhel&DistroVersion=9

هر گزارشی که از فدورا (هر نسخه‌ای) یا از RHEL 9 بارگذاری شده باشد، معتبر است.

نکته: مقدار VendorId برابر با $OEM نشان‌دهنده شناسه فروشنده OEM برای سازنده‌ای است که مالک سفت‌افزار می‌باشد؛ برای نمونه در شرایطی که واحد تضمین کیفیت (QA) شرکت لنوو یک گزارش امضاشده برای لپ‌تاپ لنوو ایجاد کرده است.

همچنین سه مقدار os-release در دسترس است: $ID، $VERSION_ID و $VARIANT_ID، که امکان استفاده از عباراتی مانند نمونه‌های زیر را فراهم می‌کنند:

•
DistroId=$ID
•
DistroId=$ID,DistroVersion=$VERSION_ID
•
Flags=is-upgrade,from-oem

تمام پرچم‌های ذکرشده در اینجا باید توسط گزارش مطابقت داده شوند.

P2pPolicy=metadata

این گزینه مشخص می‌کند دیمن از چه خط‌مشی همتا‌به‌همتا (P2P) استفاده کند؛ برای نمونه استفاده از Passim، که یک سرویس اختیاری حافظه پنهان محلی است. بهره‌گیری از داده‌های همتا‌به‌همتا می‌تواند میزان پهنای باند مصرفی در شبکه شما را به طور چشمگیری کاهش دهد.

سه مقدار ممکن برای این گزینه وجود دارد:

•
nothing: هیچ فایلی منتشر نشود.
•
metadata: تنها متادیتای به اشتراک گذاشته‌شده که بین همه دستگاه‌ها مشترک است منتشر شود.
•
firmware: آرشیوهای سفت‌افزار تنها پس از راه‌اندازی مجدد بعدی دستگاه منتشر شوند.

در آینده، fwupd مقدار پیش‌فرض را به metadata,firmware تغییر خواهد داد.

TestDevices=false

ایجاد دستگاه‌های آزمایشی مجازی و منبع دوردست برای اعتبارسنجی جریان‌های کاری دیمن. این گزینه تنها برای اهداف آزمایش در یکپارچه‌سازی مداوم (CI) و اهداف توسعه در نظر گرفته شده است.

بخش [uefi_capsule] می‌تواند شامل پارامترهای زیر باشد:

EnableGrubChainLoad=false

پیکربندی GRUB برای راه‌اندازی fwupdx64.efi به جای استفاده از روش‌های دیگر مانند NVRAM یا Capsule-On-Disk.

DisableShimForSecureBoot=false

بارگذار shim برای زنجیره‌کردن باینری EFI مربوط به fwupd الزامی است، مگر آنکه فایل fwupd.efi به صورت دستی و توسط خودتان امضا شده باشد (self-signed).

RequireESPFreeSpace=0

میزان فضای خالی لازم در ESP؛ برای نمونه مقدار 32 برای ۳۲ مگابایت. به طور پیش‌فرض این مقدار به صورت پویا حداقل دو برابر اندازه محموله (payload) تنظیم می‌شود.

DisableCapsuleUpdateOnDisk=false

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

EnableEfiDebugging=false

فعال‌سازی اشکال‌زدایی سطح پایین fwupdx64.efi در متغیر EFI با نام FWUPDATE_DEBUG_LOG.

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

همچنین این مقدار هنگام استفاده از Capsule-on-Disk تأثیری ندارد؛ زیرا باینری کمکی EFI در آن حالت به کار گرفته نمی‌شود.

RebootCleanup=true

حذف هرگونه فایل کپسول کپی‌شده در ESP، و پاکسازی متغیرهای EFI تنظیم‌شده برای به‌روزرسانی.

نکته: غیرفعال کردن این گزینه تنها برای اشکال‌زدایی فرآیند فلش کردن لازم است و کاربران عادی نیازی به تغییر این تنظیم ندارند.

ScreenWidth=0

بازنویسی عرض صفحه نمایش برحسب پیکسل برای بافر فریم EFI همان‌طور که توسط کپسول UX استفاده می‌شود.

ScreenHeight=0

بازنویسی ارتفاع صفحه نمایش برحسب پیکسل برای بافر فریم EFI همان‌طور که توسط کپسول UX استفاده می‌شود.

بخش [uefi_db] می‌تواند شامل پارامترهای زیر باشد:

UpdateWindowsCA=false

فضای فلش مورداستفاده برای به‌روزرسانی‌های UEFI محدود است -- اگر مرجع صدور گواهی ویندوز (Windows CA) را به‌روزرسانی کنیم (در حالی که سیستم به صورت بوت دوگانه با ویندوز پیکربندی نشده است)، در این صورت از فضای فلشی استفاده می‌کنیم که برای به‌روزرسانی‌های db و dbx در UEFI به آن نیاز داریم.

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

بخش [msr] می‌تواند شامل پارامتر زیر باشد:

MinimumSmeKernelVersion=5.18.0

حداقل نسخه هسته موردنیاز برای شناسایی مطمئن AMD SME از طریق SYSCFG MSR.

این گزینه تنها در هسته‌های سازمانی که این قابلیت را به هسته‌ای با نسخه قدیمی‌تر منتقل کرده‌اند (cherry-pick)، نیاز به تغییر دارد.

بخش [redfish] می‌تواند شامل پارامترهای زیر باشد:

Uri=

آدرس URI سرویس Redfish با فرمت scheme://ip:port؛ برای نمونه https://192.168.0.133:443

Username=

نام کاربری مورد استفاده هنگام اتصال به سرویس Redfish.

Password=

گذرواژه مورد استفاده هنگام اتصال به سرویس Redfish.

BearerToken=

توکن حامل (bearer token) مورد استفاده برای احراز هویت در سرویس Redfish.

CACheck=false

بررسی یا عدم بررسی گواهی سرور. این گزینه به طور پیش‌فرض خاموش است. کنترل‌کننده‌های BMC که از گواهی‌های خودامضا استفاده می‌کنند کار نخواهند کرد، مگر اینکه افزونه آن را در برابر CAهای سیستم اعتبارسنجی نکند.

IpmiDisableCreateUser=false

عدم استفاده از IPMI KCS برای ایجاد یک حساب کاربری اولیه در صورت نبود داده‌های SMBIOS. تنظیم این گزینه روی true مانع از ایجاد خودکار حساب‌های کاربری در BMC می‌شود.

ManagerResetTimeout=1800

مدت‌زمان برحسب ثانیه برای انتظار جهت راه‌اندازی مجدد BMC.

بخش [thunderbolt] می‌تواند شامل پارامترهای زیر باشد:

MinimumKernelVersion=4.13.0

حداقل نسخه هسته برای مجاز دانستن استفاده از این افزونه.

این مورد تنها در هسته‌های سازمانی که این قابلیت را به هسته‌ای با شماره نسخه قدیمی‌تر منتقل کرده‌اند (cherry-pick)، نیاز به تغییر دارد.

DelayedActivation=false

اجبار به تأخیر در فعال‌سازی تا هنگام خاموش شدن/خروج از سیستم/راه‌اندازی مجدد.

بخش [dell_kestrel] می‌تواند شامل پارامترهای زیر باشد:

UpdateOnDisconnect=true

به تأخیر انداختن فعال‌سازی سفت‌افزار تا زمانی که کابل داک (dock) جدا شود.

بخش [test] می‌تواند شامل پارامترهای زیر باشد:

AnotherWriteRequired=false

اجرای تابع نوشتن در دو مرحله (pass).

CompositeChild=false

آیا دستگاه باید دارای یک دستگاه فرزند باشد یا خیر.

DecompressDelay=0

تأخیر برحسب میلی‌ثانیه برای استفاده هنگام استخراج و رفع فشرده‌سازی دستگاه آزمایشی.

NeedsActivation=false

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

NeedsReboot=false

آیا دستگاه پیش از استقرار به‌روزرسانی نیازمند راه‌اندازی مجدد است یا خیر.

RegistrationSupported=

آیا دستگاه باید در سایر افزونه‌ها ثبت شود یا خیر.

RequestDelay=10

تأخیر برحسب میلی‌ثانیه برای استفاده در زمان درخواست ورودی از کاربر.

RequestSupported=false

آیا درخواست تعاملی دستگاه پشتیبانی می‌شود یا خیر.

VerifyDelay=0

تأخیر برحسب میلی‌ثانیه برای استفاده در زمان بررسی صحت دستگاه آزمایشی.

WriteDelay=0

تأخیر برحسب میلی‌ثانیه برای استفاده در زمان نوشتن روی دستگاه آزمایشی.

WriteSupported=

آیا نوشتن روی دستگاه پشتیبانی می‌شود یا خیر. در صورت عدم پشتیبانی، فرآیند نوشتن روی دستگاه آغاز نخواهد شد.

فایل /etc/fwupd/fwupd.conf ممکن است حاوی اطلاعات اعتبارسنجی هاردکدشده یا تولیدشده به صورت خودکار باشد و فقط باید توسط کاربری که فرآیند fwupd را اجرا می‌کند، که معمولاً کاربر ریشه (root) است، قابل خواندن باشد.

fwupdmgr(1), fwupd-remotes.d(5)

2.1.7