Skip to main content
  1. Posts/

আন্ড্রয়েড কার্ণেল কম্পাইল

429 words·3 mins· loading · loading ·
android-talk আন্ড্রয়েড কার্নেল kernel compile android
Table of Contents

এনভাইরনমেন্ট সেটআপ
#

প্যাকেজ ডাউনলোড
#

আমি মুলত উবুন্তু বা apt প্যাকেজ ম্যানেজার ব্যবহার করেছি, আপনি আপনার ডিস্ট্রো এর প্যাকেজ ম্যানেজার ব্যবহার করে প্যাকেজ গুলা নামায়ে নিবেন।আশা করি সমস্যা হবে না। তো শুরু করা যাক 😄.

Prequisite:

১) কার্নেল সোর্স লাগবে, যে ডিভাইসের জন্যে বিল্ড করবেন।

২) কম্পাইল এর জন্যে টুলচেইন লাগবে GCC / NDK , যেকোন একটা হইলেই হবে।

৩) ধৈর্য্য ,ধৈর্য্য ,ধৈর্য্য

  • প্রথমে সিস্টেম ওয়াইড প্যাকেজ আপডেট এর জন্যে নিচের কমান্ড টি টার্মিনাল এ রান করাবেন।
sudo apt-get update && apt-get upgrade

সব ঠিকমত আপডেট হয়ে গেলে , এবার নিচের কমান্ড টা রান করে , প্যাকেজ গুলা ইন্সটল করে নিন।এই গুলা কম্পাইল এর জন্যে লাগবে।

sudo apt-get install libncurses5 libncurses5-dev build-essential bc

ব্যাস বিল্ড এনভাইরনমেন্ট রেডি, তারপরেও কিছু মিছিং থাকলে/এরোর দেখালে টার্মিনাল দেখে ইনস্টল করে নেবেন। পরের ধাপ টুলচেইন । টার্মিনাল এ নিচের কমান্ড টি রান করান।

sudo apt-get install gcc-arm-linux-gnueabi

আর এখান থেকে প্রি-বিল্ট টুলচেইন নামায়ে নেবেন ।

এবার একটা নির্দিষ্ট ডিরেকটরি তে যেয়ে কার্ণেল আর টূলচেইন দুইটাই এক্সট্রাক্ট বা আনজিপ করবেন। নিচের মত করে

demo

মুল বিল্ড
#

এনভাইরন্মেন্ট ভেরিয়েবল
#

এখন এনভাইরনমেন্ট ভেরিয়েবল সেট করার পালা,

export ARCH=arm
export SUBARCH=arm
export CROSS_COMPILE=<path to toolchain>/toolchains/arm-eabi-4.4.3/bin/arm-eabi-

N.B:- “path to toolchain from googlesource” এর যায়গা তে “<>” sign টা বাদ রেখে আপনি গুগোল সোর্স থেকে টুলচেইন নামিয়ে যেই লোকেশন এ রেখেছেন সেটা বসাবেন ।

টুলচেইন সেটআপ
#

পরের স্টেপ এ আপনি আপনার কার্নেল সোর্স এর ফোল্ডার এ যেয়ে টার্মিনাল ওপেন করবেন। ডিরেক্টরি থেকে টার্মিনাল ওপেন এর জন্যে পপুলার কিছু ফাইল ম্যানেজার এর কি বোর্ড শর্ট কাট দিয়ে দিয়েছি নিচে, ডলফিন: shift + F4

এবার আপনার ডিভাইস স্পেছিফিক কনফিগারেশন টা বিল্ড করতে হবে। এখানে প্রশ্ন আসতে পারে যে কিভাবে জানব আমার defconfig এর কোডনেম ? উত্তর হল আপনি আপনার ডিভাইসের কার্ণেল সোর্স এর ডকুমেন্টেশন এই পাবেন আপনার নির্ধারিত defconfig . আসুন জেনে নেই কিভাবে কনফিগ টা বিল্ড করতে হবে

export KBUILD_OUTPUT=out

উপরের কমান্ড টা এর অর্থ হল সব বিল্ড কমপ্লিট হইলে আপনি কার্নেল টা out ফোল্ডার এ পাবেন ।

বিল্ড ডেফকনফিগ
#

make codename_defconfig

“codename” এর জাইগায় আপনি নিজের ডিভাইস এর কনফিগ কোডনেম টা বসাবেন ।

ব্যস শেষ ধাপ এ পৌঁছে গেছি । এবার মুল বিল্ড এর পালা , নিচের কমান্ড টা রান করালেই শুরু হয়ে যাবে কম্পাইলিং , আপনার প্রসেসর এর পার্ফরমেন্স অনুযায়ী সময়ের তারতম্য হতে পারে।

make

OR

make -jx

উপরে x এর জাইগাই আপনার প্রসেসর এর কোর সংখ্যা বসাবেন, এবার অপেক্ষা করুন, সব ঠিকঠাক থাকলে ২০ থেকে ৩০ মিনিট এর ভিতরে বিল্ড হয়ে যাবে ।

এবার কার্নলে সোর্স এর ঐ ফোল্ডার এর ই ভিতরে out নামের সাব ফোল্ডারে zimage-dtb নামের একটা ফাইল পাবেন ঐটা ই আপনার কাঙ্ক্ষিত কার্নেল 😛 ।

ব্যাস রিনেম করে ফ্লাশ করে দেখুন।