Fwupd ফার্মওয়্যার আপডেট ইন্টিগ্রেশন হ্যান্ডবুক

সংস্করণ: 1.0.2
সর্বশেষ আপডেট: 2025-03-12

টিএল; ডিআর

এই ডকটি ভবিষ্যতের প্রকল্পগুলির জন্য কীভাবে বিক্রেতারা fwupd প্রয়োগ করতে পারে তার একটি ওয়াকথ্রু হওয়ার উদ্দেশ্যে। এতে LVFS রক্ষণাবেক্ষণকারীদের থেকে সরাসরি উদ্ধৃত অন্তর্দৃষ্টিও অন্তর্ভুক্ত রয়েছে। Fwupd হল একটি ওপেন সোর্স ফার্মওয়্যার আপডেট ফ্রেমওয়ার্ক যা বহিরাগত বিক্রেতাদের সাথে অংশীদারিত্বে ফার্মওয়্যার আপডেট করার পদ্ধতিকে কেন্দ্রীভূত করতে সাহায্য করতে পারে।

প্রথম ধাপ - তথ্য সংগ্রহ করুন এবং নির্দেশনা প্রদান করুন

বিক্রেতাদের জন্য - প্রথমে জিজ্ঞাসা করুন:

  • আপডেটযোগ্য উপাদান (গুলি) সম্পর্কে প্রশ্ন

    • আকার আপডেট করুন

    • আপডেট সময়

    • বিদ্যমান আপডেটের ধরন (A/B বা বুটলোডার/রানটাইম মডেল)

    • একটি আপডেটের সময় উপাদানটির কার্যকারিতার কী ঘটে?

    • একটি সফল আপডেট ব্যবহার শুরু করার জন্য সিস্টেমে কী ঘটতে হবে?

    • একটি নির্দিষ্ট ক্রমে একাধিক উপাদান ইনস্টল করা প্রয়োজন?

  • LVFS/fwupd এর সাথে কাজ করার পরিচিতি বা এটি সম্পর্কে জ্ঞান

  • প্লাগইন বাস্তবায়নে সহায়তা করার জন্য এনজি রিসোর্স কমিট করার ক্ষমতা (আরো বিশদ বিবরণের জন্য নীচে দেখুন)

  • LGPLv2+-এ ওপেন সোর্সিং প্লাগইন করার প্রতিশ্রুতি (কোড যা ফার্মওয়্যারকে কম্পোনেন্টে লেখে) এবং ফার্মওয়্যারকে LVFS দ্বারা পুনরায় বিতরণযোগ্য করার অনুমতি দেয়

বিক্রেতাদের জন্য - প্রাথমিক নির্দেশিকা:

  • আপডেটকে অবশ্যই পেরিফেরাল বা অভ্যন্তরীণ উপাদান কার্যকারিতা প্রভাবিত হওয়ার সময়কে কমিয়ে আনতে হবে, আদর্শভাবে কয়েক সেকেন্ডের জন্য। আপডেটের দীর্ঘ অংশ ব্যবহারকারীকে ব্যাহত না করে পটভূমিতে নীরবে ঘটতে হবে

    • যদি এই পেরিফেরাল ব্যবহারকারীর অভিজ্ঞতাকে সুস্পষ্টভাবে প্রভাবিত করে (যেমন ডিসপ্লে কাজ করা বন্ধ করে) তাহলে এই প্রয়োজনীয়তা আরও কঠোর হয়ে যায়
  • এই ধরনের নীরব আপডেট সক্ষম করতে, A/B আপডেটগুলিকে জোরালোভাবে উত্সাহিত করা হয়

    • পেরিফেরাল আনপ্লাগে সক্রিয় হতে পারে এমন A/B আপডেটগুলি ব্যবহারকারীর ব্যাঘাত কমানোর জন্য আদর্শ
  • আপডেটটি অবশ্যই পুনরুদ্ধারযোগ্য হতে হবে - যদি আপনি পাওয়ার অফ করেন, পেরিফেরাল আনপ্লাগ করেন, ইত্যাদি আপডেটটি ডিভাইস বা পেরিফেরালকে ইট করা উচিত নয়৷ এটি ব্যবহারকারীর পদক্ষেপ ছাড়াই পুনরুদ্ধার করার জন্য শক্তিশালী হওয়া উচিত।

    • প্রাথমিক অনুমানটি হওয়া উচিত যে সম্পূর্ণ আপডেটের সময় ব্যবহারকারীর কোন ক্রিয়া নেই, সঠিক স্ক্রিপ্ট এবং আপডেটের পর্যায়গুলি স্বায়ত্তশাসিতভাবে চালিত হওয়া উচিত

দ্বিতীয় ধাপ - fwupd ব্যবহার করা

যদি কোনো বিক্রেতা কখনোই fwupd ব্যবহার না করে থাকে

  • Chrome OS fwupd থেকে OEM এর মাধ্যমে ফার্মওয়্যার আপডেটের প্রয়োজনীয়তা দেয়। OEM-এর উচিত এটি সরাসরি চিপ/কম্পোনেন্ট সরবরাহকারীদের সাথে যোগাযোগ করা

  • কিছু ক্ষেত্রে, ODM সরাসরি চিপ বিক্রেতাদের সাথে OEM ইন্টারফেসে সাহায্য করতে পারে। সেই অনুযায়ী এই প্রয়োজনীয়তাগুলি বরাবর পাস যোগাযোগ করা OEM-এর দায়িত্ব৷

  • অনুগ্রহ করে মনে রাখবেন যে যদি LGPLv2+ লাইসেন্সের সাথে সোর্স কোড প্রদান করা হয়, তাহলে এই কোড থেকে প্লাগইন নেওয়া সাধারণত সম্ভব নয় (অনেক জটিলতা)। তাই এই পরিস্থিতিতে চিপ বিক্রেতার এমন কাউকে থাকতে হবে যে fwupd রক্ষণাবেক্ষণকারী এবং Google ইঞ্জিনিয়ারদের সাথে কাজ করতে পারে।

  • OEM সক্রিয় হতে পারে এবং রক্ষণাবেক্ষণকারীদের সাথে ঘনিষ্ঠভাবে কাজ করার জন্য চিপ বিক্রেতাদের কাছ থেকে প্রতিশ্রুতি পেতে সহায়তা করতে পারে। বিক্রেতা পক্ষের প্রকৌশল সহায়তার জন্য অনুরোধের নিম্নলিখিত প্রয়োজনীয়তা রয়েছে:

    • আপডেটযোগ্য হার্ডওয়্যার কম্পোনেন্টের অদ্ভুত এবং ডিজাইনের বৈশিষ্ট্যগুলির সাথে খুব পরিচিত, এমনকি ফার্মওয়্যারটি লিখেছে এমন একই দলে থাকতে হবে

    • সাধারণ ওপেন সোর্স লাইসেন্সের মধ্যে পার্থক্য বুঝুন (যেমন LGPLv2 এবং MIT)

    • GLib এবং GObject এর একটি প্রাথমিক বোঝার সাথে, বিশেষভাবে GErrorsকে বোঝার সাথে C তে দক্ষ হন

    • একটি গিথুব অ্যাকাউন্ট আছে এবং জানুন কিভাবে একটি পুল অনুরোধ খুলতে হয় এবং আপডেট করতে হয়, গিটহাব কোড রিভিউ করতে হয়, এবং জানুন কিভাবে fwupd সমস্ত সাহায্যকারী fwupd প্রদান করে (যেমন chunking, সংযুক্ত/বিচ্ছিন্ন করা, ডিভাইস পুনঃপ্রচার, HID, ইত্যাদি) দিয়ে গঠন করা হয়।

    • ঐচ্ছিক: UK-তে হার্ডওয়্যার নমুনা পাঠানোর ক্ষমতা - fwupd রক্ষণাবেক্ষণকারীদের জন্য বিক্রেতা ডিবাগ সমস্যাগুলিতে সাহায্য করতে এবং প্রতিটি রিলিজে চালানো fwupd পরীক্ষায় বোর্ড যুক্ত করতে সত্যিই দরকারী। পরেরটি উন্নয়ন শাখায় রিগ্রেশন বন্ধ করার জন্য গুরুত্বপূর্ণ।

  • সমান্তরালভাবে, OEM fwupd মেলিং তালিকার মাধ্যমে বা রিচার্ড হিউজেস (hughsient@gmail.com) এর সাথে সরাসরি জড়িত হওয়া শুরু করতে পারে এবং প্লাগইন কোড লেখার আগে পরিকল্পনাটি দেখতে পারে

  • যদি একটি কোম্পানি ছোট হয় যার কোনো ইঞ্জিনিয়ারিং সংস্থান বা ওপেন সোর্স বোঝা না থাকে, তাহলে নিম্নলিখিত পরামর্শ সাহায্য করতে পারে:

    • উপাদান বিক্রেতা ওপেন সোর্স কাজের সাথে পরিচিত পরামর্শকারী সংস্থাগুলি ব্যবহার করতে পারে (এতে অতিরিক্ত খরচ হয় না)

    • যদিও এই পরামর্শটি স্কেল করতে সাহায্য করতে পারে, তবে বিক্রেতাদের মধ্যে এটি করার মূল্য হল যে প্রকৌশলীরা প্রক্রিয়াটির সাথে পরিচিত হন এবং তারা সহজেই নতুন হার্ডওয়্যারের জন্য ভবিষ্যতে VID/PID যোগ করতে পারেন। হার্ডওয়্যারে ডিবাগ করার জন্য প্রশ্ন / সমস্যাগুলি বন্ধ করাও দ্রুত

তৃতীয় ধাপ - চূড়ান্ত ধাপ

  • অবশেষে কোডটি fwupd-এ সমস্ত ভাগ করা কার্যকারিতা ব্যবহার করে ছোট পর্যালোচনাযোগ্য কমিটগুলিতে পুনরায় ফ্যাক্টর করা হয়

  • একবার সম্পূর্ণ হলে, প্লাগইনটি আপস্ট্রিমে একত্রিত হয়ে যায়

    • আপস্ট্রিম ব্যবহার করা কোডটি ChromeOS-এ একই কোড হবে

    • ChromeOS-এর বাইরে ব্যবহৃত ফার্মওয়্যার আপডেট বাইনারিগুলি LVFS-এ বিতরণ করা হবে৷

ChromeOS ক্ষেত্রে বিশেষভাবে:

  • OEM-কে CPFE এর মাধ্যমে আমাদের সার্ভারে ফার্মওয়্যার বাইনারি আপলোড করতে হবে

  • হার্ডওয়্যার রিগ্রেশন পরীক্ষার কাজ করার জন্য LVFS-এ এখনও পুনঃবন্টনযোগ্য আপডেট ক্যাবিনেট আর্কাইভ থাকা দরকার

চতুর্থ ধাপ (ঐচ্ছিক) - নতুন উপাদান যোগ করা

  • যদি fwupd ফ্রেমওয়ার্ক ইতিমধ্যেই জায়গায় থাকে, তবে একমাত্র অতিরিক্ত পদক্ষেপ হল আপডেটযোগ্য উপাদান সরবরাহকারীকে হার্ডওয়্যার ভেরিয়েন্টের জন্য কুয়ার্ক এবং ভিআইডি/পিআইডি যোগ করার জন্য পুল অনুরোধে কাজ করতে হবে

অন্যান্য নির্দেশিকা - LVFS-এ কাজ করা

  • একটি নতুন বিক্রেতা অ্যাকাউন্ট তৈরি করুন (সেট আপ করতে ~2 মিনিট)

  • বিক্রেতারা তাদের নিজস্ব ডোমেনের জন্য ব্যবহারকারী তৈরি করে বা LVFS-এ ব্যবহারকারীর অ্যাকাউন্ট সিঙ্ক করতে Azure AD-এর মতো কিছু ব্যবহার করে। তারা খুব অল্প চেকের মাধ্যমে সম্পূর্ণরূপে প্রাইভেট এবং বিক্রেতা-নিষেধাজ্ঞায় ফার্মওয়্যার আপলোড করতে পারে (তাই প্রায়শই ইঞ্জিনিয়াররা শুরু থেকেই এটি করে থাকে)

  • অবশেষে পরীক্ষা বা স্থিতিশীল করার জন্য তাদের আইনি বিভাগ থেকে কিছু নথি প্রয়োজন যা স্পষ্টভাবে বলে যে LVFS ফার্মওয়্যার পুনরায় বিতরণ এবং বিশ্লেষণ করতে পারে। পিডিএফ নির্দেশিকা রিচার্ড দ্বারা প্রদান করা হয়. ● যদি বিক্রেতা শুধুমাত্র একটি সিলিকন সরবরাহকারী বা একটি ODM হয় তবে তারা OEM এর "অনুষঙ্গী" হতে পারে এবং তাদের পক্ষে ফার্মওয়্যার আপলোড করতে পারে, OEM তাদের নামের সাথে ব্র্যান্ডযুক্ত ফার্মওয়্যারের সাথে কী ঘটছে তার সম্পূর্ণ দৃশ্যমানতা রয়েছে৷

  • সেট আপ করার জন্য অনেক অন্যান্য জিনিস রয়েছে (যেমন ভেন্ডর আইডি তাদের পিসিআই বা ইউএসবি আইডির সেটে সীমাবদ্ধ করে) তবে বেশিরভাগ বিক্রেতার ইতিমধ্যেই একটি নির্দিষ্ট আইডি রয়েছে এবং এটি সেট আপ করতে 20 সেকেন্ড সময় লাগে।

অন্যান্য নির্দেশিকা - Chrome OS নির্দিষ্ট বিট

  • আমাদের ক্ষেত্রে, ফার্মওয়্যার আপডেট বাইনারিগুলি সরাসরি LVFS থেকে টানা হয় না। পরিবর্তে CAB ফাইল স্থানীয় ফাইল সিস্টেমে সংরক্ষণ করা হবে (rootfs)

    • ভবিষ্যত ওয়ার্কস্ট্রিম: উপযুক্ত পোর্টেজ ওভারলেতে একটি পোর্টেজ ইবিল্ড তৈরি করে DLC-তে ফার্মওয়্যার বাইনারি অন্তর্ভুক্ত করুন
  • fwupd সঠিক সময়ে (এর CLI fwupdtool এর মাধ্যমে) আহ্বান করা প্রয়োজন। প্রতিটি আপডেটযোগ্য উপাদানের জন্য একটি udev নিয়ম (বা সমতুল্য স্ক্রিপ্ট) তৈরি করতে হবে যা একটি fwuptool-আপডেট আপস্টার্ট ইভেন্ট নির্গত করে। সঠিক আর্গুমেন্ট এবং সঠিক স্যান্ডবক্সিং (মিনিজেল) সহ fwupdtool চালানোর জন্য এই ইভেন্টটি স্বয়ংক্রিয়ভাবে পরিচালনা করা হবে

  • অন্য একটি উপাদান সিদ্ধান্ত নিচ্ছে যে UI প্রয়োজন কিনা - শুধুমাত্র নির্দিষ্ট পরিস্থিতিতে আপডেট করা উপাদানটির প্রকৃতির উপর নির্ভর করে। প্রধানমন্ত্রী এবং ইঞ্জিনিয়ার টিম দ্বারা মূল্যায়ন করা হবে। উচ্চ স্তরের নির্দেশিকা, যেমন প্রথম ধাপে উল্লিখিত হয়েছে, তা হল ব্যবহারকারীর পক্ষ থেকে পদক্ষেপ কমিয়ে আনা

বিক্রেতাদের জন্য অতিরিক্ত সম্পদ

  • বাহ্যিক ডকুমেন্টেশন রেফারেন্স: https://lvfs.readthedocs.io/

  • বহিরাগত বিক্রেতা চুক্তির রেফারেন্স: fwupd.org/lvfs/docs/agreement

  • ডেভেলপিং প্লাগইন টিউটোরিয়াল: https://fwupd.github.io/tutorial.html

  • ডিবাগিং প্লাগইন টিউটোরিয়াল: https://lvfs.readthedocs.io/en/latest/custom-plugin.html

  • নমুনা quirk ফাইল: https://github.com/fwupd/fwupd/blob/master/plugins/wacom-usb/wacom-usb.quirk

পুনর্বিবেচনার ইতিহাস

তারিখ সংস্করণ নোট
2025-03-12 1.0.2 পিডিএফ থেকে মার্কডাউনে পাঠ্য রূপান্তর করুন
2024-01-31 1.0.1 নতুন প্ল্যাটফর্মে প্রজাতন্ত্র
2023-10-12 1.0 প্রাথমিক প্রকাশনা