লিনাক্স কার্নেল Kconfig এর "সিলেক্ট" বনাম "নির্ভর" এর মধ্যে পার্থক্য কী?


11

কার্নেল Kconfig ফাইলের মধ্যে selectএবং এর depends onমধ্যে নির্ভরতার মধ্যে পার্থক্য কী ?

config FB_CIRRUS
tristate "Cirrus Logic support"
depends on FB && (ZORRO || PCI)
select FB_CFB_FILLRECT
select FB_CFB_COPYAREA
select FB_CFB_IMAGEBLIT
---help---
This enables support for Cirrus Logic GD542x/543x based boards on
Amiga: SD64, Piccolo, Picasso II/II+, Picasso IV, or EGS Spectrum.

উপরের উদাহরণে, কিভাবে হয় FB_CIRRUSdiffrently এর সাথে সম্পর্কিত FB && (ZORRO || PCI)তুলনায় এটি হয় FB_CFB_FILLRECT, FB_CFB_COPYAREAএবং FB_CFB_IMAGEBLIT?

হালনাগাদ

আমি লক্ষ্য করেছি যে depend onসংকলন ক্রমের ক্ষেত্রে সত্যিই খুব বেশি কিছু করে না।

উদাহরণ স্বরূপ. AppB- র একটি সফল বিল্ডিং প্রথমে তৈরি করার জন্য একটি স্থিতিশীল লিঙ্কের উপর নির্ভর করে। depends on LibBঅ্যাপনিবি'র জন্য কনকনফিগে সেট করা লিবিবকে প্রথমে তৈরি করতে বাধ্য করবে না। সেট করা select LibBহবে।

উত্তর:


17

depends on=yএই বিকল্পটি কনফিগার করার জন্য প্রতীকটি ইতিমধ্যে ইতিবাচকভাবে বেছে নেওয়া উচিত ( )। উদাহরণস্বরূপ, depends on FB && (ZORRO || PCI)উপায়গুলি FBঅবশ্যই নির্বাচিত হওয়া উচিত ছিল এবং (এবং&) হয় ZORROবা (||) PCI। মত জিনিসের জন্য make menuconfig, এটি নির্ধারণ করে যে কোনও বিকল্প উপস্থাপন করা হবে কি না।

selectইতিবাচক একটি প্রতীক সেট করে। উদাহরণস্বরূপ, select FB_CFB_FILLRECTঅর্থ হবে FB_CFB_FILLRECT=y। এটি কিছু অন্যান্য কনফিগার বিকল্প (গুলি) এর সম্ভাব্য নির্ভরতা পূরণ করে। নোট করুন যে কার্নেল ডক্সগুলি "দৃশ্যমান" চিহ্নগুলির জন্য (যা ব্যবহারকারী দ্বারা নির্বাচিত / অপসারণ করা যেতে পারে) বা তাদের নিজস্ব নির্ভরতা রয়েছে এমন চিহ্নগুলির জন্য নিরূসাহিত করে যেহেতু সেগুলি পরীক্ষা করা হবে না

তথ্যসূত্র: https://www.kernel.org/doc/Docamentation/kbuild/kconfig-language.txt


3

depends এর অর্থ হ'ল বিকল্পটি কেবল মেনুতে প্রদর্শিত হবে যদি এর পূর্বশর্তগুলি (এর পিছনে বুলিয়ান গঠন) পূরণ করা হয়।

selectএর অর্থ, যখন ব্যবহারকারী এই বিকল্পটি নির্বাচন করেন, তখন যুক্তি হিসাবে দেওয়া বিকল্পটি selectস্বয়ংক্রিয়ভাবে নির্বাচিত হবে।


1

আমি এইভাবে ভাবতে চাই:

  • selectএকটি "সাবসেট" এটির জন্য depends, যখন কোনও বৈশিষ্ট্যের জন্য কেবলমাত্র একটি সম্ভাব্য নির্ভরতা থাকে।

    যেহেতু কেবলমাত্র একটি সম্ভাব্য নির্ভরতা রয়েছে, selectকেবলমাত্র সেই বিকল্পটি স্বয়ংক্রিয়ভাবে নির্বাচন করুন এবং আপনাকে প্রথমে স্বতঃস্ফূর্তভাবে নির্ভরতা বাছাইয়ের কাজটি সংরক্ষণ করে।

    এই অটোমেশনটি কেবলমাত্র একটি সম্ভাব্য নির্ভরতা থাকার সাবসেট বাধা থেকে আপনি পেয়েছেন gain

  • depends আরও সাধারণ, এবং এমন কোনও ক্ষেত্রে কাজ করে যেখানে বৈশিষ্ট্যটি এমন ইন্টারফেসের উপর নির্ভর করে যার একাধিক বাস্তবায়ন রয়েছে has

    উদাহরণস্বরূপ, 4.15-তে, দুটি বিপিএফ বাস্তবায়ন রয়েছে: ক্লাসিক এবং প্রসারিত।

    অতএব, BPF_JITবৈশিষ্ট্যটি সক্ষম হওয়া কমপক্ষে একটি বাস্তবায়নের উপর নির্ভর করে:

    config BPF_JIT
        depends on HAVE_CBPF_JIT || HAVE_EBPF_JIT
    

    যেহেতু দুটি সম্ভাব্য বাস্তবায়ন রয়েছে BFP_JIT, তাই কনকফিগ সংজ্ঞায়িতভাবে সঠিকটি স্বয়ংক্রিয়ভাবে নির্বাচন করতে পারেনি।

    কখনও কখনও আমি চাই যে আমি বলতে পারি: "যদি কোনও নির্ভরতা পূরণ না হয় তবে এটি ডিফল্টরূপে নির্বাচন করুন", এটি স্টাফটিকে আরও স্বয়ংক্রিয় করার অনুমতি দেয়।

এছাড়াও "মেনুকনফাইগের উপর অন্য কোনও বিকল্প লুকিয়ে রাখে" প্রভাব রয়েছে, তবে এগুলি কেবল ফ্লফ :-)

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.