นี่คือขั้นตอน ขั้นตอนนี้จะขึ้นอยู่กับวิธีการของnixCraft : Compile Linux kernel 2.6 - แต่มีความทันสมัยมาก
ดาวน์โหลดและแตกซอร์สโค้ดของเคอร์เนลที่คุณต้องการสร้าง
คุณจะได้รับต้นน้ำรหัสที่มาเคอร์เนลที่kernel.org เวอร์ชั่น3.16.1 (เคอร์เนลที่เสถียรล่าสุดของการเขียนนี้) จะถูกใช้ที่นี่ ดังนั้นคุณอาจจำเป็นต้องแก้ไขคำสั่งเหล่านี้หากคุณใช้เวอร์ชันอื่น
รหัสแหล่งเคอร์เนลให้ไว้ในปัจจุบัน น้ำมันดิน xz archives ดังนั้นคลิกลิงก์ "tar.xz" ตามเวอร์ชันที่คุณต้องการ:
หลังจากcd
เข้าสู่ไดเรกทอรีที่คุณดาวน์โหลดไฟล์เก็บถาวรคุณสามารถแตกไฟล์ได้ด้วยtar
:
tar xf linux-3.16.1.tar.xz
ติดตั้งเครื่องมือบิลด์ที่จำเป็นและดำเนินการกำหนดค่าเคอร์เนล
ที่จะได้รับของ Ubuntu toolchain ( gcc
, make
และอื่น ๆ ) ติดตั้งสร้างจำเป็น metapackage:
sudo apt-get update
sudo apt-get install build-essential
สองวิธีที่สมควรใช้งานง่ายเพื่อกำหนดค่าสิ่งที่จะเข้าสู่เคอร์เนลของคุณจะถูกจัดให้โดยmake
เป้าหมายและxconfig
menuconfig
xconfig
เรียกใช้ยูทิลิตีการกำหนดค่ากราฟิกขณะที่ทำงานกับmenuconfig
ข้อความ แต่ละคนต้องใช้ซอฟต์แวร์เพิ่มเติมบางอย่างไม่ได้จัดไว้ให้โดยสร้างสิ่งจำเป็น
ในการกำหนดค่ากราฟิกให้ติดตั้ง libqt4-devและ pkg-configและเรียกใช้make xconfig
:
sudo apt-get install libqt4-dev pkg-config
make xconfig
ในการกำหนดค่าในเทอร์มินัลให้ติดตั้งlibncurses5-dev
(ขอบคุณ Hannuสำหรับข้อมูลนี้) และเรียกใช้make menuconfig
:
sudo apt-get install libncurses5-dev
make menuconfig
สร้างเคอร์เนลที่กำหนดค่า
เรียกใช้สิ่งนี้ก่อนเพื่อคอมไพล์เคอร์เนลและสร้างvmlinuz
:
make
vmlinuz
คือ "เคอร์เนล" โดยเฉพาะมันคือเคอร์เนลอิมเมจที่จะไม่ถูกบีบอัดและโหลดลงในหน่วยความจำโดยGRUBหรือบูตโหลดเดอร์อื่น ๆ ที่คุณใช้
จากนั้นสร้างโมดูลเคอร์เนลที่โหลดได้ :
make modules
ติดตั้งเคอร์เนลที่สร้างขึ้นใหม่ของคุณ
สมมติว่าmake
คำสั่งเหล่านี้เสร็จสมบูรณ์แล้วก็ถึงเวลาที่จะติดตั้งเคอร์เนลใหม่ ก่อนติดตั้งโมดูล:
sudo make modules_install
จากนั้นติดตั้งเคอร์เนล :
sudo make install
ที่ทำให้vmlinuz-3.16.1
(สำเนาvmlinuz
) config-3.16.1
(แฟ้มจัดเก็บข้อความพารามิเตอร์การตั้งค่า kernel) และSystem.map-3.16.1
(the ตารางเคอร์เนลสัญลักษณ์การค้นหา ) /boot
ใน สำหรับรายละเอียดเพิ่มเติมโปรดดูที่โพสต์ comp.os.linux.misc นี้โดย Hadronman installkernel
และ
การตั้งค่าขั้นสุดท้ายดังนั้นเคอร์เนลจึงสามารถเริ่มต้นและบูตระบบได้:
ส่วนนี้มีส่วนบนพื้นฐานของข้อมูลในเคอร์เนล / คอมไพล์
ด้วยเคอร์เนลในตอนนี้ที่ซึ่งมันจำเป็นต้องมีมันต้องการ:
สร้าง initramfs ของคุณด้วยmkinitramfs
:
cd /boot
sudo mkinitramfs -ko initrd.img-3.16.1 3.16.1
เมื่อคุณอัปเดตการกำหนดค่าของตัวโหลดการบูต GRUB2 ซึ่งเป็นค่าเริ่มต้นใน Ubuntuตั้งแต่ 9.10 - ควรตรวจพบเคอร์เนลใหม่โดยอัตโนมัติและเพิ่มตัวเลือกในการบูตจากมัน
sudo update-grub
ลองใช้เคอร์เนลของคุณ
ตอนนี้คุณสามารถรีบูตเพื่อทดสอบเคอร์เนลใหม่ของคุณ คุณอาจต้องShiftกดหรือกดค้างไว้Escในระหว่างการบู๊ตเพื่อดูเมนูการบูต GRUB ซึ่งคุณสามารถเลือกระหว่างเมล็ดที่ติดตั้งไว้ได้
ในการทำให้เคอร์เนลของคุณ (หรืออีกอันหนึ่ง) เป็นค่าเริ่มต้นให้ดูที่ฉันจะเปลี่ยนลำดับการบูตของ GRUB ได้อย่างไร