Tại sao biên dịch hạt nhân mới? Thường không cần, vì hạt nhân mặc định có sẵn trong Debian có khả năng quản lý được hậu hết cấu hình máy tính. Hơn là Debian cung cấp vài hạt nhân xen kẽ. Vậy trước tiên, khuyên bạn kiểm tra xem nếu có gói ảnh hạt nhân xen kẽ thích hợp hơn với phần cứng của bạn. Tuy nhiên, một số người sẽ muốn biên dịch một hạt nhân mới để:
quản lý vấn đề phần cứng đặc biệt, hoặc chỉnh sửa sự xung đột giữa phần cứng và hạt nhân có sẵn
sử dụng tùy chọn hạt nhân nào chưa được hỗ trợ trong hạt nhân có sẵn (như khả năng hỗ trợ bộ nhớ cao)
tối ưu hóa hạt nhân bằng cách gỡ bỏ các trình điều khiển vô ích, để tăng tốc độ khởi động
tạo hạt nhân cả một phần, thay cho hạt nhân chứa nhiều mô-đun riêng
chạy hạt nhân đã cập nhật hay hạt nhân phiên bản phát triển
học biết thêm về hạt nhân Linux
Đừng sợ thử biên dịch hạt nhân: kinh nghiệm này là thú vị và hữu dụng.
Để biên dịch hạt nhân bằng cách Debian, bạn cần lấy một số gói: fakeroot
, kernel-package
, linux-source-2.6
và một số điều khác rất có thể đã được cài đặt (xem tài liệu Đọc Đi /usr/share/doc/kernel-package/README.gz
để tìm danh sách đầy đủ).
Phương pháp này sẽ tạo gói dạng .deb chứa mã nguồn hạt nhân riêng của bạn, cũng tạo một gói dạng .deb kiểu phụ thuộc vào đã đồng bộ chứa mỗi mô-đun khác chuẩn (nếu có). Nó là phương pháp tốt hơn để quản lý ảnh hạt nhân; /boot
sẽ chứa hạt nhân, tập tin « System.map », và bản ghi của tập tin cấu hình hoạt động của bản xâu dựng đó.
Ghi chú rằng bạn không cần phải biên dịch hạt nhân bằng “cách Debian”; nhưng mà chúng tôi cho là dễ hơn và an toàn hơn khi sử dụng hệ thống quản lý gói để quản lý hạt nhân riêng. Tức là, bạn có thể lấy mã nguồn hạt nhân một cách trực tiếp từ bắc Linus thay cho linux-source-2.6
, còn vẫn sử dụng phương pháp biên dịch kernel-package
.
Ghi chú rằng tài liệu hướng dẫn hoàn toàn về cách sử dụng kernel-package
nằm dưới thư mục /usr/share/doc/kernel-package
. Tiết đoạn này chỉ chứa trợ lý hướng dẫn vắn thôi.
Kể từ câu này, giả sử là bạn điều khiển hoàn toàn máy tính, cũng sẽ giải nén mã nguồn hạt nhân vào nơi nào trong thư mục chính của mình. [27]. Cũng giả sử là phiên bản hạt nhân là 2.6.32. Hãy chắc là (trên dòng lệnh) bạn nằm trong thư mục vào đó bạn muốn giải nén mã nguồn hạt nhân, rồi giải nén nó bằng lệnh tar xjf /usr/src/linux-source-2.6.32.tar.bz2
và chuyển đổi sang thư mục linux-source-2.6.32
mới tạo.
Lúc đó bạn có khả năng cấu hình hạt nhân mới. Nếu bạn đã cài đặt và cấu hình X11, mà hoạt động, hãy chạy lệnh make xconfig
; nếu không thì chạy lệnh make menuconfig
(cần thiết cài đặt gói libncurses5-dev
). Bạn nên mất thời gian để đọc trợ giúp trực tuyến: bạn hãy cẩn thận khi chọn cấu hình hạt nhân. Khi chưa chắc, khuyên bạn bao gồm trình điều khiển thiết bị (phần mềm quản lý phần cứng ngoại vi: thẻ Ethernet, bộ điều khiển SCSI v.v.) về đó bạn chưa chắc. Lại cẩn thận: các tùy chọn khác, không liên quan đến phần cứng đặc trưng, nên vẫn giữ giá trị mặc định nếu bạn không hiểu chúng. Đừng quên chọn “Kernel module loader” (bộ tải mô-đun hạt nhân) trong phần “Loadable module support” (khả năng hỗ trợ mô-đun tải được): mặc định là nó chưa chọn. Nếu không gồm thì bản cài đặt Debian đó sẽ gặp lỗi.
Sau đó, bạn nên làm sạch cây nguồn và đặt lại các tham số kernel-package
. Để làm như thế, hãy chạy lệnh make-kpkg clean
.
Bước theo, hãy biên dịch hạt nhân, bằng lệnh fakeroot make-kpkg --initrd --revision=custom.1.0 kernel_image
. Số hiệu phiên bản “1.0” có thể thay đổi: nó chỉ là số phiên bản dùng để theo dõi các bản xây dựng hạt nhân. Hơn là bạn có khả năng thay thế từ “custom” (riêng) bằng bất cứ từ khác nào (v.d. tên máy). Tiến trình biên dịch hạt nhân có thể hơi lâu, tùy thuộc vào tốc độ của máy tính.
Một khi biên dịch xong, bạn có khả năng cài đặt hạt nhân riêng giống như bất cứ gói phần mềm nào. Như là người chủ, hãy chạy lệnh dpkg -i ../linux-image-2.6.32-
. Phần kiến trúc phụ
_custom.1.0_i386.debkiến trúc phụ
là một kiến trúc phụ tùy chọn, v.d. “686”, phụ thuộc vào những tùy chọn hạt nhân nào bạn đặt. dpkg -i
sẽ cài đặt hạt nhân, cùng với một số tập tin hỗ trợ tốt đẹp khác. Chẳng hạn, tập tin System.map
sẽ được cài đặt đúng (có ích để gỡ lỗi hạt nhân), và /boot/config-2.6.32
sẽ được cài đặt, chứa bộ cấu hình hiện thời của bạn. Gói hạt nhân mới cũng có khả năng cập nhật tự động bộ nạp khởi động để sử dụng hạt nhân mới. Nếu bạn đã tạo một gói modules (các mô-đun), bạn cũng cần phải cài đặt nó.
Lúc này cần khởi động lại hệ thống: hãy đọc cẩn thận cảnh báo nào mà bước trước mới tạo, rồi chạy lệnh shutdown -r now
(tắt bây giờ, rồi khởi động lại).
Để tìm thông tin thêm về hạt nhân Debian và phương pháp biên dịch hạt nhân, xem Sổ Tay Hạt Nhân Linux Debian Debian Linux Kernel Handbook. Còn để tìm chi tiết về gói hạt nhân kernel-package
, đọc những tài liệu hướng dẫn tốt đẹp nằm trong thư mục /usr/share/doc/kernel-package
.
[27] Có một số vị trí khác vào đó bạn có thể giải nén mã nguồn hạt nhân rồi xây dựng hạt nhân riêng, nhưng mà dễ nhất khi giải nén vào thư mục chính vì không cần thiết quyền truy cập đặc biệt.