يهدف هذا المشروع إلى جعل تحديث البرامج الثابتة على Linux تلقائيًا وآمنًا وموثوقًا.
معلومات إضافية متاحة على الموقع.
قضايا ومناقشات GitHub في هذا المستودع
قناة Libera IRC #fwupd
. يمكنك الانضمام من خلال Libera's IRC أو عبر جسر IRC على Matrix.
راجع البناء والتصحيح للتعرف على كيفية إنشاء بيئة تطوير fwupd.
ملاحظة: في معظم الحالات، يجب ألا يقوم المستخدمون النهائيون بترجمة fwupd من البداية؛ إنه مشروع معقد يحتوي على العشرات من التبعيات (والعديد من خيارات التكوين) وهناك الكثير من الأشياء التي يمكن أن تسوء.
يجب على المستخدمين فقط تثبيت fwupd وتحديثه بواسطة التوزيعة الخاصة بهم وإدارتها واختبارها بواسطة مشرف الحزمة. ستخضع التوزيعة أيضًا لبعض الاختبارات حول كيفية تفاعل fwupd مع البرامج الأخرى على نظامك، على سبيل المثال باستخدام برنامج GNOME.
قد يكون تثبيت fwupd باستخدام Snap أو استخدام Flatpak مفيدًا لتحديث جهاز معين في سطر الأوامر يحتاج إلى إصدار fwupd، ولكن لا ينبغي اعتباره بديلاً لإصدار النظام المقدم من التوزيعة.
Tartan هو مكون إضافي للتحليل الثابت LLVM مصمم لتحليل كود GLib. يمكن تثبيته ثم تشغيله باستخدام:
mkdir build-tartan CC=clang-17 meson ../ SCANBUILD=../contrib/tartan.sh ninja scan-build
تم تكوين هذا المشروع افتراضيًا لتنزيل البرامج الثابتة من Linux Vendor Firmware Service (LVFS).
هذه الخدمة متاحة لجميع مصنعي المعدات الأصلية ومنشئي البرامج الثابتة الذين يرغبون في إتاحة برامجهم الثابتة لمستخدمي Linux.
يمكنك العثور على مزيد من المعلومات حول التفاصيل الفنية لإنشاء كبسولة البرامج الثابتة في قسم موردي الأجهزة على موقع fwupd.
إذا كان لديك جهاز به برنامج ثابت يدعمه fwupd، فهذه هي الطريقة التي يمكنك من خلالها التحقق من وجود تحديثات وتطبيقها باستخدام أدوات سطر أوامر fwupd.
# fwupdmgr get-devices
سيعرض هذا جميع الأجهزة التي اكتشفها fwupd.
# fwupdmgr refresh
سيؤدي هذا إلى تنزيل أحدث البيانات الوصفية من LVFS.
# fwupdmgr get-updates
إذا كانت التحديثات متاحة لأي جهاز على النظام، فسيتم عرضها.
# fwupdmgr update
سيؤدي هذا إلى تنزيل كافة التحديثات لنظامك وتطبيقها.
سيتم إجراء التحديثات التي يمكن تطبيقها مباشرة على الفور.
سيتم تنظيم التحديثات التي يتم تشغيلها عند بدء التشغيل لعملية إعادة التشغيل التالية.
يمكنك العثور على مزيد من المعلومات حول سير عمل التحديث في قسم المستخدمين النهائيين بموقع fwupd.
إذا تم أيضًا تثبيت مشروع Passim وتمكينه، فسيقوم fwupd بإعادة نشر ملف البيانات التعريفية الذي تم تنزيله ليتم تقديمه على 0.0.0.0:27500
افتراضيًا.
يمكن للعملاء الآخرين على نفس الشبكة الاستفادة من هذا عبر mDNS/LLMNR لتقليل النطاق الترددي للشبكة إلى أجهزة التحكم عن بعد التي تم تكوينها.
لتعطيل هذه الوظيفة، قم إما بتعيين P2pPolicy=none
في /etc/fwupd/daemon.conf
أو إلغاء تثبيت حزمة passim أو استخدام systemctl mask passim.service
على الجهاز.
سيشجع fwupd المستخدمين على الإبلاغ عن التحديثات الناجحة والفاشلة مرة أخرى إلى LVFS. هذه ميزة اختيارية، ولكن يتم تشجيعها لأنها توفر تعليقات قيمة لمسؤولي LVFS ومطوري OEM فيما يتعلق بفعالية عملية تحديث البرامج الثابتة.
يمكن الاطلاع على سياسة الخصوصية المتعلقة بهذه البيانات على موقع lvfs readthedocs.
للإبلاغ عن حالة التحديث، قم بتشغيل:
# fwupdmgr report-history
سيتم الإبلاغ عن التحديثات التي تم توزيعها من LVFS فقط إلى LVFS.
يمكن التحكم في تدفق التحديثات في المؤسسة باستخدام ميزة "التحديثات المعتمدة". يسمح هذا لمسؤول المجال بتصفية التحديثات المحتملة من خادم مركزي (مثل LVFS أو نسخة متطابقة) إلى البرامج الثابتة التي تم اختبارها خصيصًا في مؤسستك فقط.
يمكن تمكين قائمة التحديثات المعتمدة عن طريق إضافة ApprovalRequired=true
إلى ملف التكوين البعيد، على سبيل المثال lvfs.conf
. بمجرد التمكين، يمكن تعيين قائمة التحديثات المعتمدة في fwupd.conf
باستخدام قائمة مفصولة بفواصل.
على سبيل المثال:
ApprovedFirmware=foo,bar
حيث يشير foo,bar
إلى المجموع الاختباري للحاوية الذي يتوافق مع تحديثين في ملف البيانات التعريفية.
بالإضافة إلى ذلك، يمكن استكمال قائمة البرامج الثابتة المعتمدة باستخدام fwupdmgr set-approved-firmware baz
أو باستخدام واجهة D-Bus.
fwupdmgr هو عميل سطر أوامر، ولكن تم تعداد العديد من الواجهات الأمامية الرسومية الإضافية في صفحة دليل fwupdmgr.
Coverity - محلل ثابت لرموز Java وC/C++ وC# وJavaScript وRuby وPython.
PVS-Studio - محلل ثابت لرموز C وC++ وC# وJava.