কার্নেল। প্রয়োজনীয় বিকল্পগুলি কনফিগ করুন


16

আমি পাই এর জন্য একটি কাস্টম কার্নেল সংকলন করতে আগ্রহী। আমার কাছে গিথুব সংরক্ষণাগার থেকে উত্স রয়েছে, এতে একটি ডিফল্ট কনফিগারেশনের জন্য একটি লক্ষ্য লক্ষ্য অন্তর্ভুক্ত রয়েছে:

make ARCH=arm bcmrpi_defconfig

তবে (সাধারণ লিনাক্স ডিস্ট্রো কার্নেলের মতো) এর মধ্যে আমার প্রচুর পরিমাণে কখনই প্রয়োজন হবে না এবং কিছু জিনিস যা আমি পরিবর্তন করতে চাই includes

আসলে বিভিন্ন সাধারণ পাই-কেন্দ্রিক জিনিসগুলি কাজ করতে প্রয়োজনীয় বিকল্পগুলি কী কী ?

উত্তর:


25

ডিফল্ট কনফিগারেশন দিয়ে শুরু করা বা আপনি জানেন এমন একটি ইতিমধ্যে কাজ করে, এটি একটি ভাল ধারণা। সাবধান হন যে পাই 2 এর জন্য আপনার ব্যবহার করা উচিত:

make bcm2709_defconfig

পরিবর্তে bcmrpi_defconfig

নোট করুন যে আপনি যদি একই সংস্করণে বিদ্যমান কার্নেল ইনস্টলটি ক্লোবার্বিং এড়াতে চান তবে সাধারণ সেটআপ -> স্থানীয় সংস্করণ সেট করুন - কার্নেল রিলিজ স্ট্রিংটিকে একটি অনন্য মান হিসাবে যুক্ত করুন।

আমি .configএখান থেকে আসল লেবেল ব্যবহার করেছি , CONFIG_ এর স্যানস ; আপনি যদি উদাহরণস্বরূপ ব্যবহার করে থাকেন make menuconfig, তবে আপনি অনুসন্ধানের সাথে প্রাসঙ্গিক বিকল্পটি (ফরোয়ার্ড স্ল্যাশ /) সন্ধান করতে পারেন। এই বিকল্পগুলি প্রতিটি বিকল্পের জন্য "সহায়তা" পৃষ্ঠার শীর্ষেও ব্যবহৃত হয়। নোট করুন যে শব্দটি সক্ষম (ডি) এমন কোনও কিছুকে বোঝায় যা কোনও বিকল্প উপস্থিত হওয়ার কারণ দেয়, যা বাস্তবে নির্মিত হওয়ার বিকল্পটি নির্বাচন করা থেকে পৃথক ।

যেখানে A / B / B + / A + বোর্ড এবং পাই 2 এর মধ্যে পার্থক্য রয়েছে, এটি নির্দেশিত। কিছু জায়গায় ব্রডকম ২com০৮ এবং ২0০৯ পরিবারের মধ্যে পার্থক্য থাকলেও অন্যান্য জায়গাগুলিতে পাই 2 অন্যান্য বোর্ডগুলির মতো একই 2708 (বা 2835) বিকল্পটি ব্যবহার করে।


পদ্ধতি

এ / এ + / বি / বি + এর জন্য:

  • ARCH_BCM2708 (সিস্টেমের ধরণ -> আর্ম সিস্টেমের ধরণ -> ব্রডকম বিসিএম 2708 পরিবার)

পাই 2 এর জন্য:

  • ARCH_BCM2709 (সিস্টেমের ধরণ -> আর্ম সিস্টেমের ধরণ -> ব্রডকম বিসিএম 2709 পরিবার) ... এটি তালিকার একেবারে নীচে এবং বর্ণানুক্রমিক ক্রমে নয়।
  • এসএমপি (কার্নেলের বৈশিষ্ট্যগুলি -> প্রতিসম একাধিক প্রক্রিয়াজাতকরণ)
  • নিওন (ভাসমান পয়েন্ট এমুলেশন -> অ্যাডভান্সড সিমডি (নিয়ন) এক্সটেনশন সমর্থন) এবং "কার্নেল মোডে নিওনের জন্য সমর্থন"।

কার্নেল মেমরি স্প্লিট:

লিগ্যাসি সফ্টওয়্যার কয়েক টুকরো সমস্যার কারণে , ডিফল্ট কনফিগারেশনটি এখানে 3G / 1G ব্যবহার করতে পারে যা পাই 2 এর র্যামের 25% ব্যবহারকারীর জায়গার জন্য অনুপলব্ধ রাখবে। আপনি যদি এই বিষয়ে উদ্বিগ্ন হন তবে কার্নেল বৈশিষ্ট্যগুলি -> মেমরি স্প্লিট পরীক্ষা করুন ।


এসডি কার্ড

এগুলি মডিউল হতে পারে না, স্পষ্টতই, যেহেতু তাদের অ্যাক্সেস করার প্রয়োজন হয় /lib/modules; সেগুলি অবশ্যই অন্তর্নির্মিত হতে হবে। তারা মেনুকনফিগের "ডিভাইস ড্রাইভার" বিভাগে রয়েছে।

  • এমএমসি (এমএমসি / এসডি / এসডিআইও কার্ড সমর্থন): এমএমসি ড্রাইভারের বিকল্প পাওয়ার জন্য প্রয়োজনীয়, তবে পর্যাপ্ত নয়। এই বিকল্পগুলির মধ্যে:
    • এমএমসি_বিসিএম 2835 ( বিসিএম 2835 তে এমএমসি সমর্থন)।
    • এমএমসি_বিসিএম 2835_DMA ( বিসিএম 2835 আরাসান কন্ট্রোলারে ডিএমএ সমর্থন): সক্ষম হয়েছে তবে এমএমসি_বিসিএম 2835 দ্বারা নির্বাচিত হয়নি।
    • এমএমসি_এসডিএইচসিআই (সিকিউর ডিজিটাল হোস্ট কন্ট্রোলার ইন্টারফেস সমর্থন)

যেহেতু মূল পার্টিশনটি সাধারণত এক্স ফর্ম্যাট হয় তাই আপনি এটির মধ্যেও চাই:

  • "ফাইল সিস্টেমগুলি" এর অধীনে এক্সটি 4_এফএস (বর্ধিত 4 ( এক্সট্রা 4) ফাইল সিস্টেম)। সম্ভবত ext2 এবং ext3 খুব ভাল ধারণা।

বুট পার্টিশনটি vfat, সুতরাং:

  • ভিএফএএফএস (ভিএফএটি (উইন্ডোজ -৯৯ ) এফএস সমর্থন) "ফাইল সিস্টেম -> ডস / এফএটি / এনটি ফাইল সিস্টেমস" এর অধীনে।

বিবিধ

এগুলি আপনার বিভিন্ন প্রয়োজন (প্রায় অবশ্যই) তাই আমি তাদের প্রথমে তালিকাভুক্ত করেছি।

  • "ফ্লোটিং পয়েন্ট এমুলেশন" এর অধীনে ভিএফপি (ভিএফপি-ফর্ম্যাট ভাসমান পয়েন্ট গণিত)।
  • "নেটওয়ার্কিং সমর্থন" এর অধীনে ইউনিক্স (ইউনিক্স ডোমেন সকেট)। আপনি যদি কোনও আসল নেটওয়ার্কিং না করেন তবে বেসিক সিস্টেম সফ্টওয়্যারটির এটির প্রয়োজন হবে।
  • BINFMT_ELF (ELF বাইনারিগুলির জন্য কার্নেল সমর্থন) "ইউজারস্পেস বাইনারি ফর্ম্যাটগুলি" এর অধীনে।
  • "ডিভাইস ড্রাইভার -> অক্ষর ডিভাইস" এর অধীনে টিটিওয়াই ( টিটিওয়াই সক্ষম করুন); এটি আপনার নির্বাচন করা উচিত যা ভিটি (ভার্চুয়াল টার্মিনাল) এবং ইউএনআইএক্স 98_PTYS (ইউনিক্স 98 পিটিওয়াই সমর্থন) সক্ষম করে। , VT তারপর সম্ভব VT_CONSOLE এবং (ভার্চুয়াল টার্মিন্যালে কনসোল সমর্থন) CONSOLE_TRANSLATIONS (কনসোল চরিত্রের অনুবাদের সক্ষম করুন) যা নির্বাচন করতে হবে।
  • "ফাইল সিস্টেম -> সিউডো ফাইল সিস্টেমস" এর অধীনে PROC_FS , এসওয়াইএসএফস এবং টিএমপিএফএস
  • SERIAL_AMBA_PL011 (এআরএম এএমবিএ পিএল 1111 সিরিয়াল পোর্ট সমর্থন) "ডিভাইস ড্রাইভার -> চরিত্র ডিভাইস -> সিরিয়াল ড্রাইভার" এবং সিরিয়াল_এএমবিএ_পিএল 011_CONSOLE ( এএমবিএ সিরিয়াল পোর্টে কনসোলের জন্য সমর্থন)। রাস্পবিয়ান সিস্টেমগুলি "/ dev / ttyAMA0: এ জাতীয় ফাইল বা ডিরেক্টরি নেই" সম্পর্কে অভিযোগ করবে।
  • MAILBOX এবং BCM2708_MBOX (4.x কার্নেলের উপর)। এটি ডিভাইস ড্রাইভার-> মেলবক্স হার্ডওয়্যার সমর্থন এবং সাবমেনুতে বিসিএম 2708 বিকল্প। দেখুন zub এর উত্তর

ইউএসবি

  • ইউএসবি (হোস্ট সাইড ইউএসবি জন্য সমর্থন), "ডিভাইস ড্রাইভার -> ইউএসবি সহায়তা" -এ, পৃষ্ঠায় ইউএসবি_ডিডব্লিউসিটিজি ( স্নোপসিস ডিডাব্লুসি হোস্ট সমর্থন) সক্ষম করে, এটিও নির্বাচন করা উচিত।
  • ইউএসবি_এইউএনওউনসিসি.এনইউ_ডিইভিইএস (ডিভাইস ড্রাইভার -> ইউএসবি সহায়তা -> ইউএসবি নতুন ডিভাইস ঘোষণা করে)।
  • ইউএসবি_ডিএফএএলএফএলপিপার্সটি (ডিভাইস ড্রাইভার -> ইউএসবি সহায়তা -> ডিফল্টরূপে ইউএসবি স্থির রাখতে সক্ষম করুন)।

কীবোর্ড এবং ইঁদুরগুলির জন্য:

  • "ডিভাইস ড্রাইভার-> এইচআইডি সমর্থন" তে HID_GENERIC (জেনেরিক এইচআইডি ড্রাইভার)
  • তারপরে "ইউএসবি এইচআইডি সমর্থন" তে: ইউএসবি_হাইড (ইউএসবি এইচআইডি পরিবহন স্তর)
  • INPUT_MOUSEDEV (মাউস ইন্টারফেস) "ডিভাইস ড্রাইভার -> ইনপুট ডিভাইস সমর্থন" তে।

হার্ড ড্রাইভের জন্য:

  • "ডিভাইস ড্রাইভার -> এসসিএসআই সমর্থন" -এ এসসিএসআই (এসসিএসআই ডিভাইস সমর্থন) এবং তারপরে বিএলকে_ডিইভিএসডি (এসসিএসআই ডিস্ক সমর্থন)।
  • "ডিভাইস ড্রাইভার -> ইউএসবি সমর্থন" এ ইউএসবিপোর্যজ (ইউএসবি মাস স্টোরেজ সমর্থন)।

অ্যান্ড্রয়েড ডিভাইসগুলি টিথারিংয়ের জন্য, আমার উত্তরটি এখানে দেখুন


ইথারনেট

প্রথমে ইউএসবি সক্ষম করা আবশ্যক।

  • নেট (নেটওয়ার্কিং সমর্থন), একটি শীর্ষ স্তরের বিকল্প; এর ভিতরে রয়েছে:

    • প্যাকেট (প্যাকেট সকেট)।
    • আইএনইটি (টিসিপি / আইপি নেটওয়ার্কিং)। এটি আপনাকে ছেড়ে যেতে পারে যা বিভিন্ন ধরণের আইপি সম্পর্কিত ডিফল্ট সক্ষম করে।
    • নেটফিল্টার (নেটওয়ার্ক প্যাকেট ফিল্টারিং কাঠামো), কার্নেল "আইপি টেবিল" প্যাকেট ফিল্টার ফায়ারওয়ালের জন্য প্রয়োজনীয়।
  • "ডিভাইস ড্রাইভারস" এ নেটদেবস (নেটওয়ার্ক ডিভাইস সমর্থন), তারপরে:

    • NET_CORE (নেটওয়ার্ক কোর ড্রাইভার সমর্থন)।
    • USB_NET_DRIVERS (ইউএসবি নেটওয়ার্ক অ্যাডাপ্টার) ->
      • ইউএসবি_ ইউএসবিএনট (একাধিক উদ্দেশ্য ইউএসবি নেটওয়ার্কিং ফ্রেমওয়ার্ক)।
      • USB_NET_SMSC95XX (SMSC LAN95XX ভিত্তিক ইউএসবি 2.0 10/100 ইথারনেট ডিভাইস)

সাউন্ড

অনবোর্ড সাউন্ড সক্ষম করতে:

  • সাউন্ড (ডিভাইস ড্রাইভারদের মধ্যে), তারপরে:
    • এসএনডি (উন্নত লিনাক্স সাউন্ড আর্কিটেকচার) এবং এতে:
    • SND_ARM (এআরএম সাউন্ড ডিভাইসগুলি) এবং অবশেষে সেই SND_BCM2835 (বিসিএম 2835 এএলএসএ ড্রাইভার)

ভিডিও

  • CONFIG_BCM2708_VCHIQ (ডিভাইস ড্রাইভার -> বিবিধ ডিভাইস -> ভিডিওোকোর ভিসিএইচআইকিউ)।

এক্স সার্ভার সহায়তার জন্য আর কিছুই প্রয়োজন নেই; পাই এর এসসির জন্য কোনও ডিআরআই ড্রাইভার বিকল্প নেই।

আপনি ফ্রেম-বাফারের, যা যেমন অ্যাপ্লিকেশনের পারবেন ব্যবহার করতে চান তাহলে fbiএবং omxplayerএক্স প্রদর্শনের গ্রাফিক্স বাইরে:

  • FB (ডিভাইস ড্রাইভার -> গ্রাফিক্স সমর্থন -> ফ্রেম বাফার ডিভাইস -> ফ্রেম বাফার ডিভাইসের জন্য সমর্থন), তারপরে একই মেনুতে, FB_BCM2708 (বিসিএম 2708 ফ্রেমবফার সমর্থন)।

আপনি যদি এটি করেন এবং বুট কনসোলে আপনি পেঙ্গুইন (বা বরং রাস্পবেরি) চান, গ্রাফিক্স সমর্থন অধীনে লোগো (বুটআপ লোগো) মনে রাখবেন ।

আপনি সিস্টেমের ধরণের -> ব্রডকম 2708 (বা 9) প্রয়োগের অধীনে বিকল্পগুলিও দেখতে চাইতে পারেন ।


জিপিআইও / আই 2 সি

  • বিসিএম 270০৮_জিপিআইও (সিস্টেমের ধরণ -> ব্রডকম বিসিএম ২70০৮ বাস্তবায়ন) বা পাই 2 এর জন্য, বিসিএম 2709 সম্পর্কিত বিকল্প।
  • /sys/class/gpioইন্টারফেসের জন্য জিপিআইওএসওয়াইএসএফ (ডিভাইস ড্রাইভার -> জিপিআইও সমর্থন) ।
  • I2c (ডিভাইস ড্রাইভার -> i2c সমর্থন), যা সম্ভব I2C_CHARDEV (i2c ডিভাইস ইন্টারফেস)। তারপরে "আই 2 সি হার্ডওয়্যার বাস সমর্থন" এর অধীনে:
    • আই 2 সি_বিসিএম 2708 (বিসিএম 2708 বিএসসি)।

Raspicam

  • মিডিয়া_সিএএমএআরএএসএসপপোর্ট (ডিভাইস ড্রাইভার -> মাল্টিমিডিয়া সহায়তা -> ক্যামেরা / ভিডিও গ্রাহকদের সমর্থন)।
  • V4L_PLATFORM_DRIVERS (ডিভাইস ড্রাইভার-> মাল্টিমিডিয়া সহায়তা -> ভি 4 এল প্ল্যাটফর্ম ডিভাইস ") This এটি একটি সাবমেনু সক্ষম করে যেখানে আপনি নির্বাচন করতে চান:
    • CONFIG_SOC_CAMERA (এসসি ক্যামেরা সমর্থন)।
    • CONFIG_VIDEO_BCM2835 (ব্রডকম বিসিএম 2835 ক্যামেরা ইন্টারফেস ড্রাইভার)। এটি "ব্রডকম বিএম 2835 এমএমএল ক্যামেরা ইন্টারফেস ড্রাইভার ( CONFIG_VIDEO_BCM2835_MMAL ) সক্ষম করে যা আপনারও নির্বাচন করা উচিত।

তাপীয় সংবেদক

আপনার এখানে একটি পছন্দ আছে; যদি আপনি উভয়ই বেছে নেওয়ার চেষ্টা করেন তবে প্রথমটি বাতিল হয়ে যাবে (যদিও আপনি মডিউল হিসাবে একটি তৈরি করতে পারেন, কনফিগারটি পরিবর্তন করতে পারেন, অন্যটি তৈরি করতে পারেন, এবং যদি আপনি সত্যিই চান তবে উভয়ই ব্যবহার করতে পারেন)।

  • SENSORS_BCM2835 (ডিভাইস ড্রাইভার-> হার্ডওয়্যার মনিটরিং সহায়তা -> ব্রডকম বিসিএম 2835 এইচডব্লিউএমএন ড্রাইভার)। আপনি নীচে "বিসিএম 2835 থার্মাল ড্রাইভার" নির্বাচন না করলে এটি তালিকার নীচে রয়েছে। এটা আপনি তাপ জিনিসের অ্যাক্সেস দেয় /sys/devices/platform/bcm2835_hwmon- temp1_inputএবং temp1_max। আগেরটি একই /sys/devices/virtual/thermal/thermal_zone0/temp; পরেরটি সর্বদা 85000 (যেমন 85 ° C) হয়।
  • THERMAL_BCM2835 (ডিভাইস ড্রাইভার-> জেনেরিক থার্মাল sysfs ড্রাইভার-> বিসিএম 2835 তাপীয় ড্রাইভার)। এছাড়াও ডিভাইস ড্রাইভারগুলি-> হার্ডওয়্যার মনিটরিং সমর্থন (তবে সেই মেনুতে স্বতন্ত্র ড্রাইভার নয়) বেছে নিন যাতে এখানে "hwmon ডিভাইস হিসাবে তাপীয় সেন্সরগুলি উদ্ঘাটন করুন" এবং আপনি এটি চয়ন করতে পারেন (4.0. আমার মনে হয় এটি নেই)। এটি নির্বাচন করা উপরোক্ত SENSORS_BCM2835টিকে অস্বীকার করবে। এটা আপনাকে স্মরণ করে এবং খুঁজে পাওয়া সহজ অ্যাক্সেসের অনুমতি দেয়, /sys/class/devices/virtual/thermal/thermal_zone0যার মধ্যে tempএবং trip_point_0_temp(হিসাবে একই temp1_maxউপরে)। বিভিন্ন ব্যবহারকারী স্থান মনিটর সম্ভবত এটি পছন্দ করবে এবং এটি ছাড়া কাজ নাও করতে পারে।

5

সোনারিলকের দুর্দান্ত পোস্টে একটি মন্তব্য:

আমি rpi-4.1.y শাখা (05376fce25aaab4f47182a5af04928bfa06f30d6) দিয়ে পর্যবেক্ষণ করা একটি জিনিস যুক্ত করতে চেয়েছিলাম: ইউএসবি কাজ করার জন্য (এতে ইউএসবি-সংযুক্ত ইথারনেট অন্তর্ভুক্ত), বিসিএম 2708_ এমবিএক্স (ডিভাইস ড্রাইভারস -> মেলবক্স হার্ডওয়্যার সমর্থন- > ব্রডকম বিসিএম 2708 মেলবক্স (vcio))।

এই বিকল্পটি ছাড়াই ইউএসবি আরম্ভ করা শুরু করে তবে কেবল ভয়াবহ বার্তাগুলির একটি গোছা তৈরি করে:

[    1.193854] WARN::dwc_otg_core_reset:5109: dwc_otg_core_reset() HANG! Soft Reset GRSTCTL=80000001
[    1.441137] WARN::dwc_otg_hcd_init:1047: FIQ DMA bounce buffers: virt = 0x9fc0c000 dma = 0x5d5e4000 len=9024

BTW। BCM2708_MBOX এছাড়াও জন্য একটা পূর্বশর্ত THERMAL_BCM2835 এবং জন্য SND_BCM2835


2

ভিডিও (ফ্রেমবফার)

ভিডিও সমর্থন ছাড়াও, দেখে মনে হচ্ছে আপনার সক্ষম করা দরকার:

Device Drivers ->
  DMA Engine support ->
    BCM2835 DMA engine support (CONFIG_DMA_BCM2835)

যাতে ফ্রেমবফার ড্রাইভার সঠিকভাবে লোড করা যায়। আপনি এটি ডিএমএ সক্ষম না করে সক্ষম করতে পারবেন, তবে এটি লোড করতে ব্যর্থ হবে।

ইন্টিগ্রেটেড ওয়্যারলেস

ইন্টিগ্রেটেড ওয়্যারলেস (আরপিআই 3 এবং পাই জিরো ডাব্লু) পাওয়ার জন্য আপনাকে নিম্নলিখিতটি নির্বাচন করতে হবে:

Networking support ->
  Wireless ->
    cfg80211 - wireless configuration API (CONFIG_CFG80211)

Device Drivers ->
  Network device support ->
    Wireless LAN ->
      Broadcom IEEE802.11n embedded FullMAC WLAN driver (CONFIG_BRCMFMAC)

0

বুড়ো হতে পারে তবে আমি অনুসন্ধানটি ব্যবহার করে এখানে এসেছি। এসডিএইচসি কার্ডের জন্য আপনার অতিরিক্ত প্রয়োজন

Device Drivers -> -> MMC block device driver )CONFIG_MMC_BLOCK)

অন্যথায় আপনার কার্নেল এসডিএইচসি কার্ড সনাক্ত করতে পারে তবে এতে কোনও পার্টিশন নেই।

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