Compile Kernel trên Ubuntu

Trên Ubuntu, việc compile kernel của Ubuntu hơi khác một chút so với cách làm thông thường. Nguyên nhân là do cách quản lí kernel sau khi modify lại của Ubuntu. Có hai cách lấy source kernel của Ubuntu, cách thứ nhất là dùng apt-get, cách thứ hai là dùng git. Với cách thứ hai, kernel lấy về có phiên bản thường mới hơn là cách thứ nhất, nguyên nhân do cách thứ hai là ta lấy trực tiếp từ kernel đang phát triển của Ubuntu.

1. Chuẩn bị “đồ nghề” để compile trên Ubuntu

sudo apt-get install build-essential libncurses5-dev kernel-package

2. Lấy source kernel
Bằng apt-get

sudo apt-get install linux-source-2.6

Bằng git

sudo apt-get install git-core
git clone git://kernel.ubuntu.com/ubuntu/ubuntu-feisty.git ubuntu-feisty

Chạy xong lệnh này, trong thư mục hiện tại sẽ xuất hiện thư mục ubuntu-feisty. CD vào thư mục ubuntu-feisty và

git pull

để update git.

Sau đó là compile bình thường.
Compile xong, ta cần thực hiện ba thao tác nữa

1. Chạy lệnh mkinitramfs để tạo initrd image cho kernel. Ví dụ với kernel 2.6.20.3-ubuntu1:

mkinitramfs -o /boot/initrd.img-2.6.20.3-ubuntu1 2.6.20.3-ubuntu1

2. Chạy lệnh update-grub để update grub menu list.
3. Edit file /boot/grub/menu.lst, thêm dòng

initrd /boot/initrd.img-2.6.20.3-ubuntu1

vào dưới dòng “kernel …” của “title … Default”

Khởi động lại máy.

Reference:

Ubuntu Kernel Git Guide

Ubuntu Kernel Custom Guide

Ubuntu Kernel Maintenance Feisty

TODO: Tìm hiểu cơ chế quản lí kernel của Ubuntu.

Đông Thao

Advertisements

About dongthao

"Man does not simply exist but always decides what his existence will be, what he will become the next moment"
This entry was posted in Linux, Linux Troubleshoot, Linux Tutorial. Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

w

Connecting to %s