8.6. Biên dịch hạt nhân mới

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ý hậu hết cấu hình máy tính. Hơn nữa, Debian cung cấp vài hạt nhân xen kẽ. Vì vậy trước tiên, khuyên bạn kiểm tra xem nếu có một gói ảnh hạt nhân xen kẽ thích hợp hơn với phần cứng của mình. Tuy nhiên, có thể là hữu ích khi biên dịch một hạt nhân mới để:

8.6.1. Quản lý ảnh hạt nhân

Đừ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 một 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ố gói 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. [20]. Cũng giả sử là phiên bản hạt nhân là 3.16. 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 xf /usr/src/linux-source-3.16.tar.xz và chuyển đổi sang thư mục linux-source-3.16 mới tạo.

Này bạn có thể cấu hình hạt nhân mới. Nếu bạn đã cài đặt và cấu hình X11, và nó đang chạy, thì chạy câu lệnh make xconfig; không thì chạy câu lệnh make menuconfig (yêu cầu cài đặt gói libncurses5-dev). Bạn nên mất thời gian để đọc trợ giúp trực tuyến, và chọn cẩn thậ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.) bổ sung. Lại cẩn thận: các tùy chọn khác mà 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 trường hợp tương ứng. Đừng quên chọn Kernel module loader (bộ nạp mô-đun hạt nhân) trong phần Loadable module support (khả năng hỗ trợ mô-đun nạp được): mặc định là nó chưa chọn. Quên thì bản cài đặt Debian sẽ gặp vấn đề.

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=1.0.custom 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-3.16-kiến trúc phụ_1.0.custom_armhf.deb. Phần kiến trúc phụ là một kiến trúc phụ tùy chọn, 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-3.16 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êm thông tin 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 chi tiết nằm trong thư mục /usr/share/doc/kernel-package.



[20] 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.