BOLTD(8) راهنمای bolt BOLTD(8)

boltd - دیمن مدیریت دستگاه‌های تاندربولت

boltd [گزینه‌ها]

برنامه boltd دیمن مدیریت دستگاه‌های تاندربولت است. هدف آن فراهم کردن امکان استفاده امن و آسان از دستگاه‌های تاندربولت با بهره‌گیری از ویژگی‌های امنیتی کنترل‌کننده‌های جدید تاندربولت است. این دیمن نام org.freedesktop.bolt را روی گذرگاه سیستم ارائه می‌دهد. در صورت اتصال دستگاه تاندربولت، boltd به‌صورت خودکار از طریق systemd/udev راه‌اندازی می‌شود.

فناوری ورودی/خروجی تاندربولت با ایجاد پل PCIe میان کنترل‌کننده‌ها در هر دو سر اتصال کار می‌کند، که در نتیجه دستگاه‌های متصل از طریق تاندربولت در نهایت از طریق PCIe متصل می‌شوند. بنابراین تاندربولت می‌تواند به سرعت‌های اتصال بسیار بالایی دست یابد، به‌اندازه‌ای سریع که حتی کارت‌های گرافیک خارجی را راه‌اندازی کند. نکته منفی این است که برخی حملات را نیز ممکن می‌سازد. برای کاهش این خطرات امنیتی، جدیدترین نسخه — موسوم به تاندربولت ۳ (Thunderbolt 3) — از سطوح امنیتی مختلف پشتیبانی می‌کند:

none

بدون امنیت. رفتار دقیقاً مشابه با نسخه‌های پیشین تاندربولت است.

dponly

هیچ تونل PCIe ایجاد نمی‌شود، اما تونل‌های DisplayPort مجاز بوده و کار خواهند کرد.

user

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

secure

اساساً مشابه حالت user است، اما علاوه بر آن در نخستین اتصال دستگاه، یک کلید روی آن نوشته می‌شود. این کلید سپس برای تایید هویت دستگاه متصل استفاده خواهد شد.

usbonly

یک تونل PCIe به کنترل‌کننده USB در یک داک تاندربولت ایجاد می‌شود؛ هیچ تونل PCIe دیگری در ادامه مسیر مجاز نخواهد بود (نیازمند هسته نسخه ۴.۱۷ به بعد و سخت‌افزار جدید است).

وظیفه اصلی boltd اعطای مجوز به تجهیزات جانبی تاندربولت در صورتی است که سطح امنیتی روی user یا secure تنظیم شده باشد. این دیمن یک رابط برنامه‌نویسی D-Bus برای فهرست کردن دستگاه‌ها، ثبت آن‌ها (اعطای مجوز و ذخیره در پایگاه‌داده محلی) و فراموش کردن مجدد آن‌ها (حذف دستگاه‌های ثبت‌شده پیشین) ارائه می‌دهد. همچنین هنگام اتصال (یا حذف) دستگاه‌های جدید سیگنال‌هایی صادر می‌کند. در حین ثبت می‌توان دستگاه‌ها را طوری تنظیم کرد که به محض اتصال، به‌صورت خودکار مجاز شوند. برای کنترل دیمن و انجام تمامی وظایف ذکرشده می‌توان از ابزار خط فرمان boltctl(1) استفاده کرد.

ویژگی فهرست کنترل دسترسی پیش از بوت (BootACL) در صورتی که توسط سفت‌افزار پشتیبانی شود و boltd روی یک هسته لینوکس به‌اندازه کافی جدید (>= 4.17) اجرا شود، فعال خواهد بود. ویژگی BootACL فهرستی از UUIDها است که می‌توان روی کنترل‌کننده تاندربولت نوشت. در صورت فعال بودن در BIOS، تمامی دستگاه‌های موجود در آن فهرست در طول مرحله پیش از بوت توسط سفت‌افزار مجاز شناخته می‌شوند؛ بدین معنا که این دستگاه‌ها در تنظیمات BIOS و همچنین در مراحل اولیه بوت لینوکس قابل استفاده هستند. توجه: هیچ راستی‌آزمایی برای دستگاه انجام نمی‌شود، حتی زمانی که سطح امنیتی در BIOS روی حالت secure تنظیم شده باشد؛ یعنی حداکثر سطح امنیتی موثر برای دستگاه‌های موجود در BootACL تنها user است. در صورت وجود پشتیبانی از BootACL، تمام دستگاه‌های جدید به‌طور خودکار اضافه خواهند شد. دستگاه‌هایی که فراموش شوند (از boltd حذف شوند) از BootACL نیز حذف خواهند شد. هنگامی که یک کنترل‌کننده آفلاین باشد، تغییرات BootACL در یک ژورنال نوشته شده و با آنلاین شدن مجدد کنترل‌کننده، باز همگام‌سازی می‌شوند.

پشتیبانی از IOMMU: اگر سخت‌افزار و سفت‌افزار از واحد مدیریت حافظه ورودی/خروجی (IOMMU) برای محدود کردن دسترسی مستقیم به حافظه (DMA) به نواحی امن مشخصی پشتیبانی کنند، boltd این ویژگی را شناسایی کرده و رفتار خود را تغییر می‌دهد: تا زمانی که پشتیبانی از iommu فعال باشد (که توسط صفت sysfs با نام iommu_dma_protection در کنترل‌کننده دامنه نشان داده می‌شود)، دستگاه‌های جدید به‌طور خودکار با خط‌مشی iommu ثبت می‌شوند و دستگاه‌های موجود با خط‌مشی iommu (یا auto) به‌صورت خودکار و بدون نیاز به تعامل کاربر توسط boltd مجاز می‌شوند. هنگامی که iommu فعال نباشد، دستگاه‌هایی که با خط‌مشی iommu ثبت شده‌اند به‌طور خودکار مجاز نخواهند شد. وضعیت پشتیبانی از iommu را می‌توان با استفاده از دستور boltctl domains بررسی کرد.

-h, --help

نمایش متن راهنمای کوتاه و خروج.

--version

نمایش شماره نسخه و خروج.

-r, --replace

جایگزین کردن نمونه در حال اجرای boltd.

--journal

اجبار به ثبت وقایع در ژورنال.

-v, --verbose

چاپ خروجی اشکال‌زدایی (verbose).

RUNTIME_DIRECTORY

مسیری را مشخص می‌کند که دیمن داده‌هایی را که تنها تا پایان بوت جاری معتبر هستند در آن ذخیره می‌کند. در صورت شروع از طریق systemd (>= 240) به‌طور خودکار تنظیم می‌شود. در صورت عدم تنظیم، مسیر پیش‌فرض برای داده‌های زمان اجرا /run/boltd است.

STATE_DIRECTORY

مسیری را مشخص می‌کند که دیمن اطلاعات دستگاه‌ها، از جمله کلیدهای استفاده‌شده برای احراز هویت را در آن ذخیره می‌کند. مسیری را که در زمان کامپایل تعیین شده است بازنویسی می‌کند. در صورت شروع از طریق systemd (>= 240) به‌طور خودکار تنظیم خواهد شد.

BOLT_DBPATH

مشابه STATE_DIRECTORY است اما در صورت تنظیم، اولویت بالاتری نسبت به آن دارد.

در صورت موفقیت 0 و در غیر این صورت یک کد خطای غیرصفر بازگردانده می‌شود.

نوشته‌شده توسط Christian Kellner <ckellner@redhat.com>.

boltctl(1)

08/10/2026 bolt 0.9.11