به روز رسانی سیستم عامل جانبی از طریق fwupd

نسخه: ۲.۴.۴
آخرین به‌روزرسانی: ۲۳-۰۷-۲۰۲۶

نمای کلی

هدف از این راهنما، شرح نحوه پیکربندی به‌روزرسانی‌های میان‌افزار fwupd پشتیبانی‌شده توسط رابط کاربری ChromeOS است.

فلوچارت fwupd

پیشینه

fwupd یک سرویس متن‌باز است که به‌روزرسانی‌های میان‌افزار دستگاه‌های جانبی و سایر سیستم‌های مبتنی بر لینوکس را انجام می‌دهد. fwupd مکانیزمی است که ChromeOS از طریق آن میان‌افزار دستگاه‌های جانبی را به‌روزرسانی می‌کند.

فایل‌های به‌روزرسانی fwupd شامل فایل‌های .cab هستند که در سرویس میان‌افزار فروشنده لینوکس (LVFS) ذخیره می‌شوند. در لینوکس، به‌روزرسانی‌های fwupd می‌توانند پس از آپلود در LVFS به طور گسترده در دسترس قرار گیرند. با این حال، برای اینکه به‌روزرسانی‌ها در ChromeOS در دسترس قرار گیرند، تیم ChromeOS به طور جداگانه به‌روزرسانی‌های جدید را تأیید و فهرست می‌کند تا از تجربه بهینه کاربر اطمینان حاصل شود.

فرآیند fwupd

موارد زیر فقط در مورد لوازم جانبی دارای گواهینامه WWCB که نمونه های آنها به Allion ارسال شده است، قابل اجرا است.

اگر نسخه فعلی fwupd در ChromeOS از دستگاه جانبی پشتیبانی نمی‌کند، دستورالعمل‌های ارائه شده در حالت استفاده ۱ و حالت استفاده ۲ را دنبال کنید. اگر نسخه فعلی fwupd در ChromeOS از دستگاه جانبی پشتیبانی می‌کند، به حالت استفاده ۲ بروید.

مورد استفاده ۱: نسخه فعلی fwupd در ChromeOS از دستگاه جانبی پشتیبانی نمی‌کند

نسخه فعلی fwupd در ChromeOS از این دستگاه جانبی پشتیبانی نمی‌کند.

تصویر

  1. تولیدکنندگان اصلی قطعات (OEM) و تولیدکنندگان اصلی قطعات (ODM) مستقیماً با فروشندگان چیپست همکاری می‌کنند تا تغییرات افزونه را در پایگاه کد fwupd ثبت کنند.

    1. به کتابچه راهنمای یکپارچه‌سازی fwupd (مرحله دوم - استفاده از fwupd) مراجعه کنید.
    2. تغییرات افزونه: مثال ۱ ، مثال ۲
    3. تطبیق VIDs:PIDs در فایل .quirk : مثال ۳
      • به عنوان جایگزین برای تغییرات فایل quirk، اگر دستگاه جانبی USB توسط افزونه موجود پشتیبانی می‌شود، می‌توانید از مشخصات DS20 پیروی کنید.
    4. تغییرات افزونه و تغییرات عجیب و غریب حاصل توسط نگهدارنده‌های fwupd ادغام شده‌اند.
    5. منتظر انتشار رسمی fwupd (مثلاً ۱.۸.۴) باشید، نسخه را یادداشت کنید.
  2. نسخه‌های fwupd به طور منظم در ChromeOS منعکس می‌شوند و از برنامه انتشار Chromium پیروی خواهند کرد.

  3. اگر تغییرات افزونه، رفع اشکال یا تغییرات فایل تغییر ناگهانی را پس از تاریخ پایان توقف ویژگی‌های نسخه بعدی Chromium ارسال کنید، اما این تغییرات برای نسخه بعدی ChromeOS از اولویت بالایی برخوردار باشند، در این صورت:

    1. به ردیاب مشکلات شریک بروید.
    2. با حساب دامنه Google Partner خود وارد شوید.
    3. برای ایجاد اشکال در کامپوننت خود، روی دکمه‌ی «ایجاد مشکل» از منوی سمت چپ کلیک کنید ( ChromeOS > External > WWCB > PERIPHERAL OEM > fwupd ). این به تیم ChromeOS هشدار می‌دهد که نسخه‌ی fwupd را در ChromeOS به‌روزرسانی کنند.

      اطلاعات زیر را در باگ ارائه دهید:

      1. عنوان اشکال:

        [PRODUCT NAME - fwupd]: New Plugin NAME OF THE PLUGIN requires fwupd X.Y.Z version uprev
        
      2. شرح اشکال:

        1. شماره نسخه fwupd که شامل تغییرات افزونه است:
          • چه امکاناتی اضافه میکنه؟
          • چه باگ‌هایی برطرف شده؟
          • از چه سخت‌افزارهایی پشتیبانی می‌کند؟
        2. مدل/ساخت دستگاه
        3. شناسه ویدیویی، شناسه برنامه کاربردی
        4. GUID (شناسه منحصر به فرد جهانی)
      3. نمونه اسکرین شات:

        اسکرین شات از باگ fwupd uprev

  4. این اشکال بررسی خواهد شد و نسخه انتخابی fwupd توسط مهندسان گوگل در ChromeOS گنجانده خواهد شد.

  5. نسخه ارتقا یافته fwupd پس از تایید لیست تغییرات، به کانال قناری ارتقا خواهد یافت.

    • برای اطلاع از اینکه کدام نسخه از سیستم عامل کروم شامل نسخه ارتقا یافته fwupd است، در مورد این اشکال نظر دهید. همچنین می‌توانید از CL Finder برای جستجوی نسخه ساخت در کنسول شریک سیستم عامل کروم (CPCon) استفاده کنید (به حساب دامنه شریک گوگل نیاز است، لطفاً برای دسترسی به CPCon با TAMها تماس بگیرید).

مورد استفاده ۲: نسخه فعلی fwupd در ChromeOS از دستگاه جانبی پشتیبانی می‌کند

نسخه فعلی fwupd در ChromeOS از این دستگاه جانبی پشتیبانی می‌کند و یک میان‌افزار جدید نیز در دسترس است.

تصویر

  1. یک فایل .cab ایجاد کنید.

    تمام میان‌افزار به عنوان یک آرشیو کابینت آپلود می‌شود. LVFS انتظار دارد که این آرشیو، علاوه بر فایل باینری میان‌افزار، حداقل یک فایل .metainfo.xml داشته باشد که دستگاه هدف و میان‌افزار را توصیف می‌کند. می‌توانید با استفاده از gcab (کتابخانه‌ای برای ایجاد فایل‌های کابینت) در لینوکس، یک آرشیو کابینت ایجاد کنید.

  2. به‌روزرسانی سیستم عامل تست شده و نهایی (فایل .cab ) را در LVFS آپلود کنید.

    1. مطمئن شوید که به‌روزرسانی روی ریموت کنترل پایدار موجود است.

      اگر در private ، embargo یا testing remote موجود باشد، به ChromeOS mirror اضافه نخواهد شد.

    2. به‌روزرسانی‌هایی که از طریق یک گزارش امضا شده در LVFS به عنوان معتبر علامت‌گذاری شده‌اند.

      مطمئن شوید که تست‌های دستگاه اضافه شده‌اند.

    3. اگر این اولین آپلود فریمور است، مطمئن شوید که حداقل دو فریمور، فریمور پایه (برای تست دانگرید) و فریمور جدید (برای تست آپگرید)، در ریموت پایدار LVFS موجود باشند.

  3. ارتقاء میان‌افزار باید از طریق یک گزارش امضا شده روی ChromeOS آزمایش شود.

    1. برای اتصال DUT به حساب کاربری خود، گواهی‌ها را در LVFS آپلود کنید.

      1. با حساب کاربری خود وارد LVFS شوید.
      2. روی نماد «شخص» در بالا سمت راست کلیک کنید، یا روی https://fwupd.org/lvfs/profile{:.external} کلیک کنید.
      3. روی تنظیمات پروفایل کلیک کنید.
      4. گواهی کلاینت را در کروم‌بوک خود پیدا کنید.

        • توجه : کروم‌بوک باید در حالت توسعه‌دهنده باشد
        • با فشردن کلیدهای ctrl + alt + t، پوسته توسعه‌دهندگان ChromeOS را اجرا کنید.
        • نوع:

          shell
        • به مسیر /var/lib/fwupd/pki بروید:

          cd /var/lib/fwupd/pki
        • فایل client.pem را در پوشه‌ای در کروم‌بوک خود، مثلاً Downloads ، کپی کنید.

          cp client.pm /home/chronos/user/MyFiles/Downloads/
    2. روی دکمه آپلود گواهی در بخش گواهینامه‌های کلاینت در وب‌سایت LVFS کلیک کنید و گواهی را آپلود کنید.

      1. این مراحل را روی هر کروم‌بوکی که برای آزمایش استفاده می‌کنید تکرار کنید (می‌توانید چندین گواهی را برای رایانه‌های مختلف آپلود کنید).
    3. ارتقاء را آزمایش کنید و گزارش‌های امضا شده را از طریق DUT آپلود کنید.

      1. برای آزمایش و آپلود گزارش‌ها، دستورات زیر را اجرا کنید و در صورت درخواست، احراز هویت کنید.

        fwupdmgr refresh
        fwupdmgr update
        fwupdmgr report-history --sign
      2. توجه : اگر قبلاً گزارش‌ها را بدون علامت --sign آپلود کرده‌اید، می‌توانید از دستور fwupdmgr report-history --sign --force برای آپلود مجدد همان گزارش در LVFS استفاده کنید.

        fwupdmgr report-history --sign --force
        • برای مشاهده پاسخ سرور می‌توانید از --verbose استفاده کنید.

          fwupdmgr report-history --force --verbose
      3. در کادر تأیید، روی بله کلیک کنید.

        • این باید گزارش امضا شده را در حساب شما آپلود کند.
        • برای تأیید، به آدرس https://fwupd.org/lvfs/dashboard بروید و در قسمت خانه در بالا سمت چپ، روی گزارش‌های امضا شده کلیک کنید.
    4. تأیید کنید که نسخه سیستم عامل در LVFS گزارش‌های امضا شده دارد

      • دستگاه جانبی را در LVFS جستجو کنید.
      • اگر گزارش امضا شده آپلود شده پس از ارتقاء موفقیت‌آمیز نسخه میان‌افزار دستگاه جانبی با استفاده از کروم‌بوک باشد، بخش Tested By نسخه ChromeOS، نسخه fwupd و موجودیت را نشان می‌دهد. به مثال مراجعه کنید.
      • مطمئن شوید که Release Gating علامت سبز «موجود برای کاربران ChromOS» را نشان می‌دهد.
    5. از نسخه M126 به بعد، به‌روزرسانی‌های میان‌افزار فقط در صورتی برای کاربران ChromeOS در دسترس خواهد بود که میان‌افزار گزارش‌های امضا شده (آزمایش‌شده با ChromeOS) روی LVFS داشته باشد.

      • پس از ۲۴ ساعت، کاربران می‌توانند دستگاه جانبی را به کروم‌بوک متصل کرده و از طریق رابط کاربری ChromeOS، میان‌افزار را ارتقا دهند. برای این کار به تنظیمات > درباره ChromeOS > به‌روزرسانی‌های میان‌افزار بروید.
      • توجه: به‌روزرسانی‌های میان‌افزار با فرض اینکه تمام تغییرات افزونه مورد نیاز در ChromeOS برای یک نقطه عطف مشخص در دسترس باشند، در دسترس خواهند بود.

جزئیات بیشتر در مورد گزارش‌های امضا شده را می‌توانید در LVFS بیابید.

سوالات متداول

س: کدام کروم‌بوک از fwupd پشتیبانی می‌کند؟

همه دستگاه‌های ChromeOS با نسخه M101 یا بالاتر.

س: چگونه می‌توان فهمید کدام نسخه از fwupd با ChromeOS یکپارچه شده است؟

  1. از طریق مرورگر (M109 یا بالاتر) chrome://system را باز کنید.
    1. به fwupd_version بروید.
  2. یا از طریق حالت توسعه‌دهنده، کنسول روت،
    1. دستور fwupdmgr --version را تایپ کنید.
    2. به دنبال runtime org.freedesktop.fwupd بگردید

س: فرآیند ارتقاء fwupd چقدر طول می‌کشد؟

fwupd uprev از برنامه انتشار Chromium پیروی می‌کند، اطمینان حاصل کنید که درخواست fwupd uprev قبل از تاریخ پایان توقف ویژگی‌های شاخه ارسال شده است.

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

در برنامه انتشار کرومیوم .

س: چگونه کروم‌بوک را به حالت توسعه‌دهنده تغییر دهیم؟

  1. کروم‌بوک را خاموش کنید.
  2. کلیدهای esc + Refresh را نگه دارید و دکمه پاور را فشار دهید.
    • توجه : در بعضی از کروم‌بوک‌ها، کافیست کلیدهای esc + → (کلید جهت‌نمای راست) را فشار داده و دکمه پاور را فشار دهید.
  3. دستگاه روشن می‌شود و باید صفحه/حالت بازیابی (Recovery screen/mode) را ببینید.
  4. سپس ctrl + d را فشار دهید و به دنبال آن Enter را برای پذیرش فشار دهید.
    • توجه : اگر قبل از کلیدهای ctrl + d هر کلیدی را فشار دهید، دستگاه به حالت توسعه‌دهنده منتقل نمی‌شود.
  5. دستگاه ریبوت می‌شود، بوق می‌زند و پیام «سیستم شما در حال انتقال به حالت توسعه‌دهنده است» را خواهید دید.
  6. بعد از حدود ۳۰ ثانیه، عبارت «آماده‌سازی سیستم برای حالت توسعه‌دهنده» را خواهید دید.
  7. در نهایت (این زمان بسته به حجم دیسک می‌تواند از ۱۰ دقیقه تا ۱+ ساعت متغیر باشد) دستگاه با صفحه خوشامدگویی معمولی ری‌استارت می‌شود.
  8. برای دسترسی به خط فرمان، کلیدهای ctrl + alt + → (کلید جهت‌نمای راست) را فشار دهید.
    • نکته: در بعضی از کروم‌بوک‌ها، این کلید ترکیبی ctrl + alt + refresh است.
    • برای بازگشت به نمای مرورگر، کلیدهای ctrl + alt + ← (کلید جهت چپ) را فشار دهید.
  9. جزئیات بیشتر را می‌توانید در [حالت توسعه‌دهنده] بیابید.

س: چگونه کروم‌بوک را به حالت عادی (یعنی غیرفعال کردن حالت توسعه‌دهنده) تغییر دهیم؟

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

جزئیات بیشتر را می‌توانید در [حالت توسعه‌دهنده] بیابید.

س: آیا ChromeOS از طریق fwupd از دانگرید پشتیبانی می‌کند؟

خیر. اگر نسخه تولیدی fwupd یا میان‌افزار از کار بیفتد، باید گزارش امضا شده را از طریق https://fwupd.org/lvfs/dashboard حذف کنید. مهم است که هر زمان تغییرات افزونه را ارسال می‌کنید و/یا میان‌افزار جدیدی در دسترس دارید، آن را آزمایش کنید. اطمینان حاصل کنید که همیشه یک نسخه پایه از میان‌افزار روی یک ریموت پایدار LVFS در دسترس است.

س: چگونه می‌توان فهمید کدام نسخه‌های ChromeOS از کدام به‌روزرسانی‌های fwupd پشتیبانی می‌کنند؟

می‌توانید در مورد اشکال ایجاد شده نظر بگذارید و بپرسید که تغییرات در کدام نسخه ساخت اعمال شده است و مهندسان گوگل باید بتوانند این اطلاعات را در اختیار شما قرار دهند. همچنین می‌توانید از CL Finder برای جستجوی نسخه ساخت در کنسول شریک ChromeOS (CPCon) استفاده کنید (به حساب دامنه شریک Google Corp نیاز است - برای دسترسی به CPCon با TAM ها تماس بگیرید). می‌توانید نسخه ساخت را در ChromeOS Partner Frontend (CPFE) به صورت متقابل ارجاع دهید تا ببینید با کدام نقطه عطف مطابقت دارد.

س: چگونه یک حساب کاربری LVFS ایجاد کنیم؟

به مستندات دریافت حساب کاربری LVFS مراجعه کنید.

س: چگونه فایل‌های cab را در LVFS آپلود کنم؟

به مستندات آپلود میان‌افزار LVFS مراجعه کنید.

س: چگونه مطمئن شویم که یک میان‌افزار برای یک وسیله جانبی خاص است؟

این کار از طریق فایل پیکربندی شناخته‌شده امکان‌پذیر است. برای اطلاعات بیشتر به فایل پیکربندی شناخته‌شده‌ی fwupd مراجعه کنید.

س: چگونه می‌توانم به‌روزرسانی fwupd خود را قبل از آپلود در LVFS آزمایش کنم؟

پس از ارسال تغییرات افزونه و گنجاندن نسخه انتخابی fwupd در تصویر آزمایشی ChromeOS، می‌توانید از طریق ChromeOS Partner Frontend (CPFE) به تصویر آزمایشی دسترسی پیدا کنید (به حساب دامنه شریک Google Corp نیاز است - برای دسترسی به CPFE با TAM ها تماس بگیرید).

برای تست میان‌افزار روی ChromeOS به مستندات LVFS مراجعه کنید. همچنین می‌توانید تست‌های fwupd را با Moblab اجرا کنید.

س: چگونه به کاربر اطلاع داده می‌شود که به‌روزرسانی میان‌افزار برای دستگاه جانبی‌اش در دسترس است؟

کاربر بر اساس فوریتی که برای به‌روزرسانی در LVFS تعیین شده است، اعلانی مبنی بر در دسترس بودن به‌روزرسانی دریافت خواهد کرد. عملکرد به‌روزرسانی به شرح زیر است:

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

س: آیا به‌روزرسانی‌های fwupd به‌طور خودکار انجام می‌شوند؟

خیر. تمام به‌روزرسانی‌های fwupd توسط کاربر آغاز می‌شوند و در حین بوت یا به‌طور خودکار اتفاق نمی‌افتند.

س: مزیت مشخصات DS20 چیست؟

در حال حاضر فقط برای لوازم جانبی USB تأیید شده است، اگر از همان پروتکلی که روی سخت‌افزار دیگر خود استفاده کرده‌اید استفاده کنید، فقط با یک توصیفگر DS20 کار خواهد کرد.

فروشندگان می‌توانند داده‌های فایل quirk را به جای پروژه fwupd، در توصیف‌گر USB قرار دهند. به این ترتیب، دستگاه USB وارد می‌شود، fwupd داده‌های توصیف‌گر را می‌خواند، افزونه را مطابقت می‌دهد و دستگاه را بدون نیاز به ارسال وصله از فروشنده به fwupd و انتظار برای fwupd uprev، می‌شمارد.

س: آیا DS20 یک گزینه جایگزین برای تغییر ناگهانی تغییرات فایل است؟

بله؛ اغلب اوقات سخت‌افزارهای آینده فقط به VID و PID های اضافه شده به یک افزونه موجود نیاز دارند، نه تغییرات واقعی کد. اگر تغییرات کد مورد نیاز باشد، فروشنده باید تغییرات افزونه را به fwupd ارسال کند.

ضمائم

  1. راهنمای توسعه‌دهندگان
  2. پشتیبانی توسعه‌دهندگان
  3. مقدمه‌ای بر Git و Gerrit برای مشارکت‌کنندگان CrOS
  4. ایجاد تغییرات در کد منبع
  5. فرآیند بررسی/تایید گریت
  6. کتابچه راهنمای ادغام fwupd

تاریخچه ویرایش‌ها

تاریخ نسخه یادداشت‌ها
۲۳-۰۷-۲۰۲۶ ۲.۴.۴ لینک راهنمای ادغام fwupd را به‌روزرسانی کنید
۲۳-۰۷-۲۰۲۵ ۲.۴.۳ به‌روزرسانی گردش کار مورد استفاده ۱
۲۰۲۴-۱۰-۱۸ ۲.۴.۲ به‌روزرسانی تصاویر گردش کار fwupd و مراحل آپلود گواهی کلاینت
۲۰۲۴-۰۷-۲۳ ۲.۴.۱ به‌روزرسانی‌های قالب‌بندی.
۲۰۲۴-۰۶-۲۶ ۲.۴ به‌روزرسانی گردش کار fwupd uprev (مورد استفاده ۱). (همراه با ۲.۴.۱ منتشر شد)
۲۰۲۴-۰۶-۱۷ ۲.۳ به‌روزرسانی گردش کار گزارش امضا شده. (همراه با نسخه ۲.۴.۱ منتشر شد)
۲۰۲۴-۰۲-۰۱ ۲.۲ انتشار مجدد در پلتفرم جدید؛ به‌روزرسانی‌های جزئی در متن.
۲۰۲۳-۱۰-۱۲ ۲.۱ تصاویر اضافه شده در مورد ۱ و مورد ۲، کتابچه راهنمای ادغام fwupd که در سایت همکار میزبانی شده است
۱۴-۰۸-۲۰۲۲ ۲.۰ انتشار اولیه سایت شریک