หน้าเว็บ

วันอังคารที่ 24 มิถุนายน พ.ศ. 2557

วิธีการ Compile Linux Kernel

สวัสดีครับทุกท่าน บทความนี้จะพาทุกท่านไปคอมไพเลอร์ KernelCompile Kernel จากโค้ดต้นฉบับกัน ปกติแล้วลินุกซ์ดิสโทรต่าง ๆ จะมาพร้อมกับลินุกซ์ Kernel อยู่แล้ว (Linux Kernel)
แต่ถ้าคุณเป็นนักพัฒนาต้องการปรับแต่งลินุกซ์ Kernel เพื่อให้รองรับ Hardware และตัดองค์ประกอบที่ไม่ต้องการออกไป ทำให้ระบบเสถียรยิ่งขึ้น หรือต้องการเขียน Module ให้ทำงานให้เร็วยิ่งขึ้น หรือต้องการเรียนรู้การทำงานของลินุกซ์ Kernel


  1. โหลดโค้ดต้นฉบับ Linux Kernel จากเว็บ kernel.org 

  2. # cd /usr/src/
    # wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.15.1.tar.xz


  3. คลายชิปโค้ดของ Linux Kernel

  4. #tar -xvJf linux-3.15.1.tar.xz

  5. แล้วใช้คำสั่ง cd เข้าไปในโฟล์เดอร์

  6. # cd linux-3.15.1

  7.  ใช้คำสั่ง # make menuconfig  ก็จะพบหน้านี้ครับ ให้ผู้อ่านไล่ปรับแต่งลินุกซ์ Kernel ตามที่ต้องการเลยครับ
  8. หลังจากที่ปรับแต่งเสร็จก็เริ่มลงมือ make ทั้งหมดโดยใช้คำสั่ง # make ถ้าคอมไพเลอร์ kernel modules # make modules ใช้เวลานานประมาณ 2 -3 ชั่วโมงเลยครับ -_-" ขึ้นอยู่กับสเปคของเครื่อง
  9. ติดตั้ง kernel modules
    # make modules_install
     
  10. ติดตั้ง Kernel ที่สร้างขึ้น
    คำเตือน โดยใช้ความระวังอย่างสูงในขั้นตอนนี้ อย่าให้ไฟตกหรือไฟดับ!!!
    # make install
  11. พอติดตั้งลินุกซ์ Kernel อันใหม่แล้วถึงเวลารีบูตเครื่องใหม่ครับ ^_^ โดยใช้คำสั่ง # reboot
  12. เช็คว่าลินุกซ์ที่ใช้เป็นลินุกซ์ Kernel อันใหม่หรือไม่ ให้ใช้คำสั่ง uname -r

ปัญหาที่พบในการ Compile Linux Kernel

ไม่พบncurses
ต้องติดตั้ง ncurses ก่อนครับ
สำหรับ Debian , Ubuntu
sudo apt-get install libncurses5-dev
สำหรับ fedora
sudo yum install ncurses-devel # if you use sudo
su -c yum install ncurses-devel # if you use su
สำหรับ opensuse
http://bit.ly/1yGMeUe 
Compile Linux Kernel แล้วเปลี่ยนมาใช้แล้วพัง
ให้ใช้ Live CD ในการไปแก้ไขระบบให้กลับมาใช้  Linux Kernel เดิมครับ

สำหรับใครอยากลองฝึกฝน kernel modules เพิ่มเติม แนะนำให้เข้าไปที่ https://github.com/usrbinnc/netcat-cpi-kernel-module วง netcat ได้อออกอัลบั้มที่ชื่อว่า "Cycles Per Instruction" แต่ถ้าใครอยากฟังต้องโหลด kernel modules ตัวที่ปล่อยอยู่ใน github มาคอมไฟล์โหลดเข้า Kernel จะไปอยู่ใน /dev/netcat และสั่งเล่นได้โดยใช้คำสั่ง ogg123 - < /dev/netcat สเปคเครื่องต้องแรง ๆ หน่อยนะครับ

ขอบคุณครับ :)

ไม่มีความคิดเห็น:

แสดงความคิดเห็น