উত্স থেকে মিডিয়াটেক অ্যান্ড্রয়েড কার্নাল কীভাবে তৈরি করবেন



সমস্যাগুলি দূর করার জন্য আমাদের উপকরণটি ব্যবহার করে দেখুন

অনেক অ্যান্ড্রয়েড ব্যবহারকারী কাস্টমাইজড কার্নেলগুলি ইনস্টল করে উপভোগ করেন যা কিছুটা পারফরম্যান্স এবং ব্যাটারির আয়ু উন্নত করতে পারে। তবে আপনি যদি পছন্দ করেন এমন কার্নেলটি খুঁজে না পান বা আপনার ডিভাইসের জন্য কোনও কিছুই উপলভ্য না হয় তবে কখনও কখনও আপনাকে কেবল নিজের তৈরি করতে হয়। এই গাইডটি মেডিয়েটেক ডিভাইসগুলির জন্য উত্স থেকে কার্নেলটি কীভাবে তৈরি করবেন সে সম্পর্কে ফোকাস করবে।



দয়া করে সতর্ক করুন এই গাইডটি নবীনদের জন্য নয়, এটি লিনাক্স টার্মিনালগুলিতে কাজ করা অ্যান্ড্রয়েড রমগুলি কাস্টমাইজ করার, এবং আমরা কী করছি সে সম্পর্কে সামগ্রিকভাবে কিছুটা জ্ঞানের জ্ঞানের বোঝার লোকদের উদ্দেশ্যে।



প্রয়োজনীয়তা:

  1. একটি লিনাক্স অপারেটিং সিস্টেম
  2. কিছু বেসিক সি জ্ঞান এবং মেকফিলগুলি কীভাবে কাজ করবেন
  3. অ্যান্ড্রয়েড এনডিকে

শুরু করতে, আপনাকে লিনাক্সের জন্য নিম্নলিখিত প্যাকেজগুলি ডাউনলোড করতে হবে:



  • পাইথন
  • জিএনইউ মেক করুন
  • জেডিকে
  • যাওয়া

sudo apt-get ইনস্টল গিট gnupg ফ্লেক্স বাইসন gperf বিল্ড-অপরিহার্য জিপ curl জি ++ - মাল্টিলেব মিংডব্লু 32 টিফ্রোডস পাইথন-মার্কডাউন লাইবক্সিএমএল 2-ইউপস এক্সস্ল্টপ্রোক জ্লিবি 1 জি-ডেভ: আই 386 গিট-কোর লজপ সিসিচ জিএনআইপিজি ফ্লেক্স বাইসন গিফার্ড বিল্ড-অ্যাসোসিয়েশন জিপ কার্ল zlib1g-dev zlib1g-dev: i385 libb326bbc311 x11proto-core-dev libx11-dev: i386 libreadline6-dev: i386 lib32z-dev libgl1-mesa-glx: i386 libgl1-mesa-dev g ++ - মাল্টিলেব মিংডব্লু 32 টিফ্রোডস পাইথন-মার্কডাউন লিবেক্সএমএল 2 ইউজড্রেডলাইন -6 পড়ুনরেখা -gplv2-dev libncurses5-dev lib32readline5 lib32readline6 libreadline-dev libreadline6-dev: i386 libreadline6: i386 bzip2 libbz2-dev libbz2-1.0 libghc-bzlib-dev lib32bz2-dev libbb2 ডেড স্ক্ল্যাডভিস 2 স্ক্ল্যাড। 8-ডেভ পাইথন জিসিসি জি ++ সিপিপি জিসিসি-4.8 গ্রাম ++ - 4.8 এবং& সুডো এলএন-এস / ইউএসআর / লিব / আই 386-লিনাক্স-জিএনও / মেসা / লি বিজিএল.সো .১৩ / ওশার / লিবি / আই 386-linux-gnu/libGL.so

এখন ইত্যাদি / udev / নিয়ম.ডি / 51-android.rules এ যান:

আবেগের উপর # অ্যাডাবির প্রোটোকল (নেক্সাস ওয়ান)
সাবসিস্টেম == 'ইউএসবি', এটিটিআর {আইডিওয়েন্ডার} == '18 ডি 1 ″, এটিটিআর {আইডিপ্রডাক্ট} ==' 4e12 ″, মোডে = '0600 ″, মালিক =' '
আবেগের উপর # ফাস্টবूट প্রোটোকল (নেক্সাস ওয়ান)
সাবস্কায়ম == 'ইউএসবি', এটিটিআর {আইডিওয়েন্ডার} == '0 বিবি 4 ″, এটিটিআর {আইডিপ্রডাক্ট} ==' 0 পিএফএফ ', মোডে =' 0600 ″, মালিক = ''
Crespo / crespo4g (নেক্সাস এস) এ # অ্যাডবি প্রোটোকল
সাবসিস্টেম == 'ইউএসবি', এটিটিআর {আইডিওয়েন্ডার} == '18 ডি 1 ″, এটিটিআর {আইডিপ্রডাক্ট} ==' 4e22 ″, মোডে = '0600 ″, মালিক =' '
Crespo / crespo4g (নেক্সাস এস) এ # ফাস্টবूट প্রোটোকল
সাবসিস্টেম == 'ইউএসবি', এটিটিআর {আইডিওয়েন্ডার} == '18 ডি 1 ″, এটিটিআর {আইডিপ্রডাক্ট} ==' 4e20 ″, মোডে = '0600 ″, মালিক =' '
স্টিংরে / উইংয়েরিতে # অ্যাডবি প্রোটোকল (জুম)
সাবসিস্টেম == 'ইউএসবি', এটিটিআর {আইডিওয়েন্ডার = == '22 বি 8 ″, এটিটিআর {আইডিপ্রডাক্ট} ==' 70 এ 9 ″, মোডে = '0600 ″, মালিক =' '
স্টিংরে / উইংড্রেতে # ফাস্টবুট প্রোটোকল (জুম)
সাবসিস্টেম == 'ইউএসবি', এটিটিআর {আইডিওয়েন্ডার} == '18 ডি 1 ″, এটিটিআর {আইডিপ্রডাক্ট} ==' 708 সি ', মোডে =' 0600 ″, মালিক = ''
মাগুরো / টরোতে # অ্যাডিবি প্রোটোকল (গ্যালাক্সি নেক্সাস)
সাবসিস্টেম == 'ইউএসবি', এটিটিআর {আইডিওয়েন্ডার} == '04e8 ″, এটিটিআর {আইডিপ্রডাক্ট} ==' 6860 ″, মোডে = '0600 ″, মালিক =' '
মাগুরো / টরোতে # ফাস্টবুট প্রোটোকল (গ্যালাক্সি নেক্সাস)
সাবসিস্টেম == 'ইউএসবি', এটিটিআর {আইডিওয়েন্ডার} == '18 ডি 1 ″, এটিটিআর {আইডিপ্রডাক্ট} ==' 4e30 ″, মোডে = '0600 ″, মালিক =' '
পান্ডায় # অ্যাডবি প্রোটোকল (পান্ডবোর্ড)
সাবসিস্টেম == 'ইউএসবি', এটিটিআর {আইডিওয়েন্ডার} == '0451 ″, এটিটিআর {আইডিপ্রডাক্ট} ==' ডি 101 ″, মোডে = '0600 ″, মালিক =' '
পান্ডায় # অ্যাডবি প্রোটোকল (পান্ডবোর্ড ইএস)
সাবসিস্টেম == 'ইউএসবি', এটিটিআর {আইডিওয়েন্ডার} == '18 ডি 1 ″, এটিটিআর {আইডিপ্রডাক্ট} ==' d002 ″, মোডে = '0600 ″, মালিক =' '
পান্ডায় # ফাস্টবুট প্রোটোকল (পান্ডবোর্ড)
সাবসিস্টেম == 'ইউএসবি', এটিটিআর {আইডিওয়েন্ডার} == '0451 ″, এটিটিআর {আইডিপ্রডাক্ট} ==' ডি022 ″, মোডে = '0600 ″, মালিক =' '
পান্ডায় # ইউএসবি বুট প্রোটোকল (পান্ডবোর্ড)
সাবস্কায়ম == 'ইউএসবি', এটিটিআর {আইডিওয়েন্ডার} == '0451 ″, এটিটিআর {আইডিপ্রডাক্ট} ==' ডি00ফ ', মোডে =' 0600 ″, মালিক = ''
পান্ডায় # ইউএসবাবুট প্রোটোকল (পান্ডবোর্ড ইএস)
সাবসিস্টেম == 'ইউএসবি', এটিটিআর {আইডিওয়েন্ডার} == '0451 ″, এটিটিআর {আইডিপ্রডাক্ট} ==' ডি010 ″, মোডে = '0600 ″, মালিক =' '
গ্রেগ্পার / টিলাপিয়ায় # অ্যাডবি প্রোটোকল (নেক্সাস 7)
সাবসিস্টেম == 'ইউএসবি', এটিটিআর {আইডিওয়েন্ডার} == '18 ডি 1 ″, এটিটিআর {আইডিপ্রডাক্ট} ==' 4e42 ″, মোডে = '0600 ″, মালিক =' '
গ্রেগ্পার / টিলাপিয়ায় # ফাস্টবুট প্রোটোকল (নেক্সাস 7)
সাবসিস্টেম == 'ইউএসবি', এটিটিআর {আইডিওয়েন্ডার} == '18 ডি 1 ″, এটিটিআর {আইডিপ্রডাক্ট} ==' 4e40 ″, মোডে = '0600 ″, মালিক =' '
মান্টায় # অ্যাডবি প্রোটোকল (নেক্সাস 10)
সাবসিস্টেম == 'ইউএসবি', এটিটিআর {আইডিওয়েন্ডার} == '18 ডি 1 ″, এটিটিআর {আইডিপ্রডাক্ট} ==' 4 আই 2 ″, মোডে = '0600 ″, মালিক =' '
মান্টায় # ফাস্টবুট প্রোটোকল (নেক্সাস 10)
সাবসিস্টেম == 'ইউএসবি', এটিটিআর {আইডিওয়েন্ডার} == '18 ডি 1 ″, এটিটিআর {আইডিপ্রডাক্ট} ==' 4 আই0 ″, মোডে = '0600 ″, মালিক =' '



এবং bash.rc এ:

রপ্তানি USE_CCachE = 1
এখন অবশেষে:

sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
সুতরাং এখন আমরা বিল্ড এনভায়রনমেন্ট সেট আপ করতে প্রস্তুত। টার্মিনালে, টাইপ করুন:

TARGET_BUILD_VARIANT = ব্যবহারকারী TARGET_PRODUCT = ডিভাইসেনাম MTK_ROOT_CUSTOM = .. / মিডিয়াটেক / কাস্টম / TARGET_KERNEL_V রফতানি করুন
এই আদেশগুলি যা করতে চলেছে তা এখানে:

BUILD_VARIANT: কার্নেলটি কী তৈরি করা হচ্ছে তা নির্দিষ্ট করে।
TARGET_PRODUCT / TARGET_KERNEL_PRODUCT: কোন ডিভাইসের নির্দিষ্ট ফাইলগুলি ব্যবহার করতে হবে তা লিনাক্সকে বলে।
MTK_ROOT_CUSTOM: মেডিটেক / কাস্টম ফোল্ডারের ডিরেক্টরি নির্দিষ্ট করে। মনে রাখবেন যে এই কুকুরটি কার্নেলের উত্স হিসাবে একই ডিরেক্টরিতে থাকবে।
পাথ: আপনার টুলচেন এক্সিকিউটেবলকে আপনার পথে সেট করে।
ক্রস_সিএমপিএল: একটি ক্রস সংকলক এমন একটি সংকলক যা সংকলকটি চালাচ্ছে তার ব্যতীত অন্য প্ল্যাটফর্মের জন্য এক্সিকিউটেবল কোড তৈরি করতে সক্ষম। টুলচেন এই ফাংশনটি সহজতর করে
এআরসিএইচ = আর্ম, এআরএম হ'ল ব্রিটিশ সংস্থা এআরএম হোল্ডিংস দ্বারা বিকাশিত হ্রাসযুক্ত নির্দেশ সেট কম্পিউটিং (আরআইএসসি) আর্কিটেকচারের ভিত্তিতে কম্পিউটার প্রসেসরের জন্য ইনস্ট্রাকশন সেট আর্কিটেকচারগুলির একটি পরিবার। এআরএম অ্যান্ড্রয়েডেও ব্যবহৃত হয়।

সুতরাং আমরা যখন টার্মিনালে 'এক্সপোর্ট এআরএচ = আর্ম' টাইপ করি তখন আমরা মূলত লিনাক্সকে বলি যে আমরা এআরএম আর্কিটেকচারের জন্য তৈরি করছি।

সুতরাং এখন আমরা কার্নেলটি কনফিগার করা শুরু করতে প্রস্তুত। আপনার অত্যন্ত যত্নবান হওয়া দরকার কারণ কার্নেলটি মূলত আপনার ফোনের জন্য নিয়ামক। সুতরাং সাবধানে পাশাপাশি অনুসরণ করুন।


আপনি সম্ভবত কার্নেল_সোর্স / মেডিয়েটেক / কনফিগারেশন / ডিভাইসনেম / অটোকনফিগ / কেকনফাইগ / প্ল্যাটফর্মের বেস কনফিগারেশনটি খুঁজে পাবেন।
আমরা এই বেস কনফিগারেশনটি ব্যবহার করতে পারি এবং এটি বিভিন্ন প্রয়োজনীয়তা সহ তৈরি করতে পারি, উদাহরণস্বরূপ SELinux অনুমতিগুলি সক্ষম বা অক্ষম। আপনি স্ক্র্যাচ থেকে সবসময় কেবল একটি বেস কনফিগার তৈরি করতে পারতেন, তবে আমি সত্যিই এটির প্রস্তাব দিই না।

সুতরাং এখন লিনাক্স টার্মিনালে টাইপ করা যাক:

সিডি কার্নেল_সোর্স
সিপি মেডিয়েটেক / কনফিগার / ডিভাইসনেম / অটোকনফিগ / কেকনফিগ / প্ল্যাটফর্ম .কনফিগ
মেনুকনফিগ তৈরি করুন

এটি একটি গ্রাফিকাল ইন্টারফেস তৈরি করতে যাচ্ছে যা আপনাকে কার্নেলের সাথে বৈশিষ্ট্যগুলি যুক্ত করতে দেয়। উদাহরণস্বরূপ, আপনি আই / ও শিডিউল, সিপিইউ গভর্নর, জিপিইউ ফ্রিকোয়েন্সি, ইত্যাদির জন্য টুইঙ্ক করতে পারেন
একবার আপনি আপনার পছন্দসই সেটিংস টিক করে নিলে, আপনি কার্নেলটি সংকলন করতে প্রস্তুত। সুতরাং লিনাক্স টার্মিনাল টাইপ করুন:
zImage করুন

এবং এটি এমন কিছু ফেরত দেওয়া উচিত:

খিলান / হাত / বুট / zImage প্রস্তুত y

3 মিনিট পড়া