Danh mục

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

Số trang: 11      Loại file: pdf      Dung lượng: 547.53 KB      Lượt xem: 13      Lượt tải: 0    
Jamona

Hỗ trợ phí lưu trữ khi tải xuống: 4,000 VND Tải xuống file đầy đủ (11 trang) 0
Xem trước 2 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Biên dịch bộ nhân – kernel trên nền tảng Debian EtchMỗ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...
Nội dung trích xuất từ tài liệu:
Biên dịch bộ nhân – kernel trên nền tảng Debian Etch Biên dịch bộ nhân – kernel trên nền tảng Debian EtchMỗi 1 nguồn phân phối - distribution đều có công cụ riêng biệt để xâydự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ênhệ 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. Đồngthờ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ênbả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ảilà gói *.deb như cách thứ nhất.Xây dựng gói kernel *.debCà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 updateVà cài đặt các gói cần thiết như sau:apt-get install kernel-package libncurses5-dev fakeroot wget bzip2 build-essentialTả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):cd /usr/srcwget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.21.3.tar.bz2Giả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.bz2ln -s linux-2.6.21.3 linuxcd /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ưnglạ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ườnghợ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ácnguồ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-runbzip2 -dc /usr/src/patch.bz2 | patch -p1Câ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âulệ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ảnkernel 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àobả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.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ủakernel 2.6.21. Sử dụng câu lệnh sau để áp ụng bản vá 2.6.22-rc3 vào kernel2.6.21:cd /usr/srcwget http://www.kernel.org/pub/linux/kernel/v2.6/testing/patch-2.6.22-rc3.bz2cd /usr/src/linuxbzip2 -dc /usr/src/patch-2.6.22-rc3.bz2 | patch -p1 --dry-runbzip2 -dc /usr/src/patch-2.6.22-rc3.bz2 | patch -p1Thiế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 mrpropercp /boot/config-`uname -r` ./.configsau đó chạy lệnh sau:make menuconfigđể hiển thị bảng thiết lập. Chọn Load an Alternate Configuration File >.config: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?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 cleanfakeroot make-kpkg --initrd --append-to-version=-custom kernel_imagekernel_headersSau 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ảngtrố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àonhữ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ớiQuá 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:cd /usr/srcls -lTrong 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óinày như sau:dpkg -i linux-image-2.6.21.3-custom_2.6.21.3-custom-10.00.Custom_i386.debdpkg -i linux-headers-2.6.21.3-custom_2.6.21.3-custom-10.00.Custom_i386.debNếu muốn sử dụng trên hệ thống Debian Etch khác thì người dùng chỉ việccopy 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. ...

Tài liệu được xem nhiều: