Các kernel-header
gói phân phối chứa, như tên của chúng ngụ ý, chỉ các tệp tiêu đề kernel (cộng với hệ thống ống nước cần thiết) được yêu cầu để xây dựng phần mềm như các mô-đun hạt nhân.
Bạn không nên mong đợi tìm thấy tất cả các tệp nhị phân trong thư mục nguồn kernel , ngoại trừ đầu ra bản dựng. (Nếu bạn cấu hình và xây dựng một kernel mình, thư mục mã nguồn kernel cũng sẽ chứa các đối tượng biên soạn, mô-đun, hạt nhân xây dựng chính nó và một vài bit nhị phân khác và mảnh mà làm cho nó làm việc.)
KConfig
File là một mô tả về các tùy chọn cấu hình kernel (và phụ thuộc của chúng) có sẵn cho một thư mục / mô-đun nhất định.
Ngoài ra, đó là tất cả (hầu hết) mã nguồn C, tệp tiêu đề và Makefile
s. Có một vài tập lệnh trợ giúp ở đây và ở đó, và nguồn lắp ráp cũng vậy.
Các gói tiêu đề (những gì bạn đã cài đặt) chỉ chứa phần tiêu đề ở trên (và không phải tất cả các tiêu đề đó - chỉ các tiêu đề "đã xuất") và một số cơ sở hạ tầng xây dựng. Vì vậy, những gì bạn đang thấy được mong đợi. Các gói tiêu đề không chứa mã nguồn C (ngoại trừ một số sơ khai và xây dựng mã cơ sở hạ tầng). Toàn bộ mục đích của loại gói này là để tiết kiệm không gian (và băng thông) - toàn bộ cây nguồn Linux khá lớn và hoàn toàn không cần thiết nếu bạn không có ý định tự biên dịch kernel. Các gói tiêu đề được xây dựng và vận chuyển bởi các bản phân phối để cung cấp đúng thứ cần thiết để xây dựng các mô-đun, nhưng không còn nữa. (Chúng chắc chắn không chứa kernel đã biên dịch.)
Giải quyết bình luận của bạn: các gói tiêu đề không di dời bất cứ nơi nào. Chúng được xây dựng cho các phiên bản cụ thể của kernel, được đóng gói trong một thư mục cụ thể và đó là điều đó. Nó chỉ là một tập hợp các tập tin. (Lưu ý rằng các gói tiêu đề không nhất thiết phải có cùng phiên bản với các gói nhị phân hạt nhân ổn định hiện tại - các gói tiêu đề là chung chung và có thể tụt hậu so với hạt nhân thực tế mà bạn đang chạy. Tuy nhiên, chúng không nên từ hạt nhân phiên bản gần đây hơn kernel đã cài đặt (hoặc đích) hiện tại.)
Các tệp nhị phân đã cài đặt thường được cài đặt trong /boot
thư mục, cùng với các tệp nhị phân bootloader và các tệp cấu hình. (Đây đôi khi là một hệ thống tệp độc lập, không được gắn theo mặc định.) Tên chính xác của các tệp phụ thuộc vào kernel và phân phối. (Bộ tải khởi động cũng vậy.)
Các mô-đun hạt nhân được cài đặt nằm trong các thư mục con của:
/lib/modules/`uname -r`/
Vì vậy, ví dụ trên hệ thống của tôi, họ hiện đang ở
/lib/modules/3.1.4-gentoo/
Mã nguồn đầy đủ của kernel : Trên Ubuntu, nếu bạn muốn các nguồn kernel đầy đủ tự xây dựng kernel, bạn nên cài đặt theo hướng dẫn tại đây .
Bạn cũng có thể tải xuống một tarball nguồn từ kernel.org
và giải nén nó ở đâu đó ( không ghi đè lên các tệp được cài đặt Ubuntu nếu bạn sử dụng tarball này, giữ riêng nội dung cá nhân của bạn và các nội dung được quản lý bởi RPM riêng biệt).
/usr/src/linux
là một nơi truyền thống để đặt các nguồn kernel, nhưng không có gì ngăn cản bạn đặt các nguồn kernel ở nơi khác. Đường dẫn này cũng thường chỉ là một liên kết tượng trưng đến một thư mục. ví dụ: tôi có cái này trên máy của tôi:
$ ls -l /usr/src/linux
lrwxrwxrwx 1 root root 18 Dec 7 17:03 /usr/src/linux -> linux-3.1.4-gentoo
Symlink có mặt để đơn giản hóa việc xây dựng các ứng dụng phụ thuộc vào nguồn kernel. Bạn liên kết đường dẫn đó với hạt nhân đang chạy (hoặc đích) của mình để bạn không phải chỉ định thông tin chính xác về phiên bản hoặc đường dẫn khi bạn xây dựng mô-đun ngoài cây. Giúp một bó cho các bản phân phối dựa trên nguồn ít nhất.