1. Trang chủ
  2. » Công Nghệ Thông Tin

Tài liệu Biên dịch bộ nhân – kernel trên nền tảng Debian Etch pptx

11 327 2
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Biên dịch bộ nhân – Kernel trên nền tảng Debian Etch
Thể loại Bài viết
Định dạng
Số trang 11
Dung lượng 547,53 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Trong bài viết sau, chúng tôi sẽ giới thiệu với các bạn phương pháp này trên hệ thống Debian Etch, cụ thể là phương pháp biên dịch kernel tùy chỉnh sử dụng bộ nhân nguyên bản tại đây, v

Trang 1

Biên dịch bộ nhân – kernel trên nền tảng Debian Etch

Trang 2

Mỗi 1 nguồn phân phối - distribution đều có công cụ riêng biệt để xây dựng, tạo nhân từ các nguồn tương ứng

Trong bài viết sau, chúng tôi sẽ giới thiệu với các bạn phương pháp này trên

hệ thống Debian Etch, cụ thể là phương pháp biên dịch kernel tùy chỉnh sử dụng bộ nhân nguyên bản tại đây, và từ đó ứng dụng lên hệ thống Đồng thời, bài viết cũng chỉ ra phương pháp áp dụng các bản vá đối với các phiên bản kernel khác nhau

Lưu ý sơ bộ

Chúng ta sẽ thực hiện 2 cách biên dịch phổ biến, cách đầu tiên các bạn sẽ có gói *.deb sau khi hoàn thành Cách thứ 2 là cách “truyền thông”, và kết quả thu được sẽ sử dụng trên tất cả các sản phẩm của Linux, nhưng không phải

là gói *.deb như cách thứ nhất

Xây dựng gói kernel *.deb

Cài đặt các gói yêu cầu để biên dịch kernel:

Trước tiên, chúng ta cần cập nhật package database:

apt-get update

Và cài đặt các gói cần thiết như sau:

apt-get install kernel-package libncurses5-dev fakeroot wget bzip2 build-essential

Tải bộ mã nguồn của kernel:

Bước tiếp theo, chúng ta phải tải bộ kernel tương ứng về thư mục /usr/src Truy cập http://www.kernel.org/ và chọn bộ kernel cần biên dịch, ví dụ linux-2.6.21.3.tar.bz2 (toàn bộ nguồn kernel 2.6 tại đây):

Trang 3

cd /usr/src

wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.21.3.tar.bz2

Giải nén các gói vừa tải về và tạo liên kết động tới thư mục nguồn:

tar xjf linux-2.6.21.3.tar.bz2

ln -s linux-2.6.21.3 linux

cd /usr/src/linux

Áp dụng các bản vá vào nguồn kernel (theo lựa chọn)

Đôi khi, các bạn sẽ cần hệ thống driver mới nhất dành cho phần cứng, nhưng lại không được hỗ trợ bởi kernel mặc định, hoặc tính năng hỗ trợ công nghệ

ảo hóa nhưng lại chưa được tích hợp vào bộ kernel này Trong những trường hợp này, bạn cần áp dụng những bản vá thích hợp (thường có sẵn trên các nguồn cung cấp)

Giả sử chúng ta đã tải những bản patch cần thiết (trong bài viết này là

patch.bz2) về thư mục /usr/src Tại thư mục /usr/src/, gõ lệnh sau:

bzip2 -dc /usr/src/patch.bz2 | patch -p1 dry-run

bzip2 -dc /usr/src/patch.bz2 | patch -p1

Câu lệnh đầu tiên chỉ là kiểm tra, nếu kết quả trả về không báo lỗi nào thì tiếp tục thực thi câu lệnh thứ 2 Không nên tiếp tục chạy câu lệnh 2 nếu câu lệnh 1 có lỗi

Bên cạnh đó, chúng ta cũng có thể áp dụng phương pháp prepatche vào bộ nguồn của kernel Ví dụ, nếu bạn cần các tính năng chỉ có trong phiên bản kernel 2.6.22-rc3, nhưng bộ nguồn đầy đủ vẫn chưa được công bố Thay vào

đó, bản patch-2.6.22-rc3.bz2 đã có sẵn, và bạn có thể áp dụng bản vá đó vào bản kernel 2.6.21, nhưng không phải bộ kernel bản 2.6.21.1 hoặc 2.6.21.2… Các bạn có thể tham khảo thêm tại đây

Trang 4

Phương pháp prepatch tương đương với phiên bản alpha dành cho Linux, chúng tồn tại trong các thư mục kiểm tra để lưu trữ

Do đó, nếu muốn biên dịch bộ kernel 2.6.22-rc3, bạn phải tải mã nguồn của kernel 2.6.21 Sử dụng câu lệnh sau để áp ụng bản vá 2.6.22-rc3 vào kernel 2.6.21:

cd /usr/src

wget http://www.kernel.org/pub/linux/kernel/v2.6/testing/patch-2.6.22-rc3.bz2

cd /usr/src/linux

bzip2 -dc /usr/src/patch-2.6.22-rc3.bz2 | patch -p1 dry-run

bzip2 -dc /usr/src/patch-2.6.22-rc3.bz2 | patch -p1

Thiết lập, tùy chỉnh kernel

Để làm việc này, copy file thiết lập sẵn có tới /usr/src/linux:

make clean && make mrproper

cp /boot/config-`uname -r` /.config

sau đó chạy lệnh sau:

make menuconfig

để hiển thị bảng thiết lập Chọn Load an Alternate Configuration File > config:

Trang 5

Sau đó tùy chọn các tính năng sẵn có và đi kèm trong menu, lựa chọn và

quyết định khi cảm thấy phù hợp với nhu cầu Khi hoàn thành, chọn Exit và Yes khi được hỏi Do you wish to save your new kernel configuration?

Trang 6

Xây dựng kernel

Để làm việc này, chúng ta sẽ sử dụng 2 câu lệnh sau:

make-kpkg clean

fakeroot make-kpkg initrd append-to-version=-custom kernel_image kernel_headers

Sau cú pháp append-to-version= bạn có thể viết bất cứ chuỗi ký tự nào để

nhận diện bộ kernel này, nhưng phải bắt đầu bằng – và không có khoảng trống trong chuỗi

Quá trình này sẽ diễn ra khá lâu, có thể lên đến hàng giờ tùy thuộc vào những yêu cầu thiết lập và tốc độ xử lý của hệ thống

Cài đặt bộ kernel mới

Quá trình xây dựng và biên dịch kết thúc, sẽ có 2 gói deb trong thư mục /usr/src:

Trang 7

cd /usr/src

ls -l

Trong cuộc kiểm tra này, chúng ta thu được 2 gói linux-image-2.6.21.3-custom_2.6.21.3-custom-10.00.Custom_i386.deb (chứa file gốc nguyên bản)

và linux-headers-2.6.21.3-custom_2.6.21.3-custom-10.00.Custom_i386.deb

(chứa file cần thiết để người sử dụng tự biên dịch sau này) Cài đặt các gói này như sau:

dpkg -i

linux-image-2.6.21.3-custom_2.6.21.3-custom-10.00.Custom_i386.deb

dpkg -i

linux-headers-2.6.21.3-custom_2.6.21.3-custom-10.00.Custom_i386.deb

Nếu muốn sử dụng trên hệ thống Debian Etch khác thì người dùng chỉ việc copy và lưu trữ trực tiếp, không cần phải biên dịch lại lần nữa

Đồng thời, file cấu hình GRUB bootloader /boot/grub/menu.lst cũng được điều chỉnh tự động, ramdisk dành cho bộ kernel mới cũng đã được tạo trong /boot Sau đó khởi động lại hệ thống:

shutdown -r now

Khi bảng thông báo khởi động xuất hiện, lựa chọn bộ kernel mới (mặc định):

Trang 8

Nếu tất cả mọi bước đều được thực hiện tốt, bảng thông báo sẽ xuất hiện với

bộ kernel mới Bạn có thể kiểm tra lại việc sử dụng bộ kernel mới bằng lệnh sau:

uname -r

kết quả thu được sẽ có dạng như sau:d

2.6.21.3-custom

Nếu hệ thống không hoạt động, hãy khởi động lại lần nữa và chọn bộ kernel

cũ và thử biên dịch lại bộ kernel đó Và cũng đừng quên xóa bỏ thành phần khởi động của bộ kernel không hoạt động trong danh sách

/boot/grub/menu.lst

Xây dựng bộ kernel theo cách “truyền thống”

Trong phần tiếp theo, chúng ta sẽ miêu tả cách làm khác để thu được bộ kernel, và có thể được sử dụng trên bất kỳ hệ thống Linux nào

Cài đặt các gói yêu cầu để biên dịch kernel:

Việc trước tiên là cập nhật package database:

Trang 9

apt-get update

và cài đặt gói cần thiết như sau:

apt-get install kernel-package libncurses5-dev fakeroot wget bzip2 build-essential

Tải bộ nguồn kernel

Tương tự như trên, tải bản kernel tới thư mục /usr/src Truy

cậphttp://www.kernel.org/ và lựa chọn bản kernel muốn cài đặt (ví dụ

linux-2.6.21.3.tar.bz2 hoặc http://www.kernel.org/pub/linux/kernel/v2.6/):

cd /usr/src

wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.21.3.tar.bz2

Giải nén gói mã nguồn và tạo liên kết động tới thư mục nguồn kernel như sau:

tar xjf linux-2.6.21.3.tar.bz2

ln -s linux-2.6.21.3 linux

cd /usr/src/linux

Áp dụng các bản vá vào nguồn kernel (theo lựa chọn)

Về cơ bản, trình tự và cách làm tương tự như phương pháp bên trên Tại thư mục /usr/src/linux, gõ lệnh sau:

bzip2 -dc /usr/src/patch.bz2 | patch -p1 dry-run

bzip2 -dc /usr/src/patch.bz2 | patch -p1

Nếu muốn biên dịch bộ kernel 2.6.22-rc3, bạn cần tải bản mã nguồn của kernel 2.6.21 Bạn có thể sử dụng câu lệnh sau để thực hiện bản vá 2.6.22-rc3 vào kernel 2.6.21:

Trang 10

cd /usr/src

wget

http://www.kernel.org/pub/linux/kernel/v2.6/testing/patch-2.6.22-rc3.bz2

cd /usr/src/linux

bzip2 -dc /usr/src/patch-2.6.22-rc3.bz2 | patch -p1 dry-run

bzip2 -dc /usr/src/patch-2.6.22-rc3.bz2 | patch -p1

Sau đó áp dụng các bước như trên để biên dịch và tạo kernel

Tìm hiểu về bước Post-Installation

Một khi bộ kernel mới được cài đặt, nhưng chúng ta vẫn cần ramdisk đối với kernel tương ứng (nếu không thì hệ thống sẽ không khởi động được), và chúng ta phải điều chỉnh GRUB bootloader về sự thay đổi nhân kernel này:

Trước tiên, gõ lệnh sau:

depmod 2.6.21.3

apt-get install yaird

Tạo ramdisk bằng cú pháp sau:

mkinitrd.yaird -o /boot/initrd.img-2.6.21.3 2.6.21.3

Việc thiết lập, tùy chỉnh GRUB khá đơn giản trên hệ thống Debian Etch:

update-grub

câu lệnh trên sẽ tự động cập nhật kernel và ramdisk mới vào danh sách

/boot/grub/menu.lst

Sau đó, khởi động lại hệ thống:

shutdown -r now

Trang 11

Trên đây là 1 số phương pháp cơ bản để xây dựng, biên dịch bộ nhân kernel Linux trên hệ thống Debian Etch

Chúc các bạn thành công!

Ngày đăng: 26/01/2014, 04:20

HÌNH ẢNH LIÊN QUAN

Nếu tất cả mọi bước đều được thực hiện tốt, bảng thông báo sẽ xuất hiện với bộ kernel mới - Tài liệu Biên dịch bộ nhân – kernel trên nền tảng Debian Etch pptx
u tất cả mọi bước đều được thực hiện tốt, bảng thông báo sẽ xuất hiện với bộ kernel mới (Trang 8)

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm