Android কার্নেল সম্পর্কিত প্রায়শই জিজ্ঞাসিত প্রশ্ন

এই ডকুমেন্টে Android কার্নেল সম্পর্কে প্রায়শই জিজ্ঞাসিত প্রশ্নাবলী রয়েছে, যেটি জেনেরিক কার্নেল ইমেজ (GKI) কার্নেল নামেও পরিচিত। আপনি GKI এবং GKI কার্নেল পরিভাষা সম্পর্কে ওয়াকিবহাল না হলে, কার্নেল ওভারভিউ দেখুন।

কার্নেল মডিউল ইন্টারফেস (KMI) সিম্বল তালিকা কি স্টেবল কার্নেলে পরিবর্তন করা যায়?

যেসব পরিবর্তন আগে থেকে থাকা KMI-কে প্রভাবিত করে না, সেগুলি ফ্রোজেন কার্নেলে যোগ করা যেতে পারে। এইসব পরিবর্তনের মধ্যে নতুন এক্সপোর্ট করা ফাংশন ও প্রতীক তালিকা এন্ট্রি অন্তর্ভুক্ত। আরও বিবরণের জন্য, প্রতীক তালিকা ম্যানেজ করা দেখুন।

আমি কি স্থিতিশীল কার্নেলে ভেন্ডর মডিউল দ্বারা ব্যবহৃত স্ট্রাকচার পরিবর্তন করতে পারি?

KMI ইন্টারফেসের অংশ এমন স্ট্রাকচার, ফ্রোজেন KMI সহ কার্নেলে পরিবর্তন করা যাবে না। KMI ফ্রিজ করার আগে, এই স্ট্রাকচার পরিবর্তন করা যেতে পারে।

আমি কি বাইনারি বা সোর্স কম্প্যাটিবিলিটি না ভেঙে কার্নেল পরিবর্তন করতে পারি?

KMI-কে প্রভাবিত করে না এমন পরিবর্তন Android-নির্দিষ্ট প্যাচ-এ বর্ণিত পদ্ধতি অনুযায়ী করা যেতে পারে।

GKI কীভাবে কার্নেল কনফিগারেশন ম্যানেজ করে?

কার্নেল কনফিগারেশন সম্পর্কে তথ্যের জন্য, gki_defconfig-এ পরিবর্তন দেখুন।

আগে থেকে থাকা GKI মডিউল ওভাররাইট করার জন্য আপস্ট্রিম বাগ ফিক্স আমি কীভাবে ম্যানেজ করব?

আপনি যদি Android Common Kernel (ACK)-এ কোনও ড্রাইভারের উপর ভিত্তি করে ভেন্ডর মডিউল তৈরি করেন, তাহলে আপস্ট্রিম এবং ACK থেকে বাগ ফিক্সগুলি আপনার মডিউলে প্রোপাগেট করা হয়েছে কিনা তা নিশ্চিত করার দায়িত্ব আপনার। সাধারণত, GKI কার্নেল এবং GKI মডিউল কোনও পরিবর্তন না করেই ব্যবহার করলে তা আপনার পক্ষে সবচেয়ে ভাল হয়, তাই Google এইসব আপডেট ধারাবাহিকভাবে প্রদান করে।

GKI-এর জন্য কি নির্দিষ্ট পরীক্ষা আছে?

ভেন্ডর টেস্ট স্যুট (VTS) টেস্টের মাধ্যমে সার্টিফায়েড GKI বিল্ড ইনস্টল করা আছে কিনা তা যাচাই করা হয় এবং প্রতিটি রিলিজের জন্য GKI সংক্রান্ত প্রয়োজনীয়তা এনফোর্স করা হয়। যেমন, বুট হেডার v3 -এর জন্য Android 12 VTS পরীক্ষা এবং 5.10 কার্নেল চালিত ডিভাইসে প্রয়োজনীয় পার্টিশন আছে কিনা তা যাচাই করার জন্য পরীক্ষা আছে।

ডিভাইস বিল্ডের জন্য আমি কীভাবে প্রোজেক্ট defconfig ফ্র্যাগমেন্ট ফাইল তৈরি করব?

অনেক GKI-মানানসই ডিভাইস, ভেন্ডর মডিউল তৈরি করার জন্য gki_defconfig ছাড়াও, প্রয়োজনীয় কনফিগারেশন বিকল্প বর্ণনা করতে কনফিগার ফ্র্যাগমেন্ট ব্যবহার করে। ACK কোডবেসের অংশ এমন উদাহরণের মধ্যে Cuttlefish ও DB845c অন্তর্ভুক্ত। ফ্র্যাগমেন্ট অপ্টিমাইজ করার জন্য কনফিগারেশন বিকল্পের কিছু ম্যানুয়াল পরীক্ষা এড়ানোর কোনও উপায় নেই, তবে কার্নেল সোর্স থেকে scripts/diffconfig gki_defconfig ও gki_defconfig+device.fragment-এর ফলাফল তুলনা করার জন্য উপযোগী।

modprobe-এর জন্য কি কোনও সমাধান আছে যা - এবং _-কে সমতুল্য হিসেবে বিবেচনা করে?

The modprobe man page এই বিবরণটি রয়েছে: "modprobe Linux কার্নেল থেকে কোনও মডিউলকে বুদ্ধিদীপ্তভাবে যোগ করে বা সরিয়ে দেয়: মনে রাখবেন যে সুবিধার জন্য, মডিউলের নামে _ এবং - এর মধ্যে কোনও পার্থক্য নেই (অটোমেটিক আন্ডারস্কোর কনভার্সন করা হয়)।" GKI টিম স্ট্যান্ডার্ড আপস্ট্রিম কনভেনশন মেনে চলে, তাই ভেন্ডর টুল বা মডিউল নামকরণের কনভেনশনকে অবশ্যই এটি মাথায় রাখতে হবে।

আমি কীভাবে ইন্টার্নাল ব্যবহারের জন্য debugfs চালু করব?

debugfs চালু করার ব্যাপারে আরও জানতে, ইন্ট্রুসিভ ডাউনস্ট্রিম ডিবাগ ফিচার দেখুন।

নির্দিষ্ট মডিউল কনফিগারেশন চালু থাকা GKI কার্নেলের সাথে ম্যাচ না করা ABI সংক্রান্ত সমস্যার সমাধান কীভাবে করব?

GKI কার্নেল ও মডিউল কনফিগারেশনের মধ্যে ABI না মিললে তা ইমপ্লিসিট মডিউল কনফিগারেশন সংক্রান্ত নির্ভরতা বোঝায়, যেখানে কোনও মডিউল চালু করলে, তার ফলে প্রাপ্ত কার্নেল ইমেজে একটি বাইনারি কনফিগারেশন বিল্ট-ইন হয়ে যায়। ভবিষ্যতে কী করা যায় তা নির্ধারণ করতে Android কার্নেল টিমের সাথে যোগাযোগ করুন (kernel-team@android.com)। প্রতীকের তালিকা নির্ধারণ করার পরে, Issue Tracker-এ একটি বাগ তৈরি করুন এবং প্রতীকের তালিকায় একটি পরিবর্তন আপলোড করুন।