Làm cách nào để loại bỏ các kiến ​​trúc, trình điều khiển không sử dụng khỏi các tiêu đề khi xây dựng kernel linux tùy chỉnh?


7

Tôi đang xây dựng các gói kernel linux tùy chỉnh trong môi trường Ubuntu 13.10 amd64 bằng cách sử dụng cách
apt-get source linux-image-$(uname -r)
debian make-kpkg clean;fakeroot make-kpkg --initrd --append-to-version=-custom kernel_image kernel_headers.

Tiêu đề Linux lớn hơn hình ảnh

Kết quả là hai tệp .deb trong đó tệp linux-headers-có kích thước 8.2M và kết quả linux-image-chỉ là 6.1M . Sau khi xem những tập tin linux-image-chứa trong đó, tôi thấy rằng có vô số tiêu đề cho các mục bị vô hiệu hóa trong .configtệp.

Linux-headers -...

  • hệ thống tập tin không sử dụng, như /fs/reiserfs/,
  • mô-đun bảo mật không sử dụng, như /security/selinux/,
  • không sử dụng bao gồm, như /include/pcmcia/hoặc /include/sound/,
  • kiến trúc không sử dụng, như /arch/powerpc/, /arch/s390/, /arch/parisc/, /arch/blackfin/, /arch/cris/, /arch/xtensa/, /arch/alpha/, /arch/ia64/, /arch/h8300/, /arch/arm/, vân vân,
  • trình điều khiển không sử dụng, như /drivers/leds/, /drivers/eisa/, /drivers/isdn/, /drivers/net/ppp/, /drivers/net/wireless/, vân vân,
  • không sử dụng mạng như /net/bluetooth/, /net/wimax/, /net/decnet/, vân vân

Các tùy chọn để làm gì (và như thế nào) là tước các mục không sử dụng ra khỏi linux-headers-gói và / hoặc làm giảm các kích thước tập tin ?


Tại sao bạn muốn giảm linux-headerskích thước gói?
SparKot

1
Có thể tôi không cần gói linux-headers- để tạo và sử dụng kernel linux tùy chỉnh hoạt động, và chỉ cần loại bỏ kernel_headerstừ fakeroot make-kpkg.
Sao lưu chuyên nghiệp

Bạn có thể tìm thấy chi tiết về cách biên dịch debian của Debian tại đây - unix.stackexchange.com/a/115921/4671 . Câu trả lời này cần được làm sạch, nhưng tôi không có nó. Hãy thêm câu hỏi / ý kiến.
Faheem Mitha

1
Gói linux-headers chỉ cần thiết khi bạn muốn biên dịch các nguồn, hạt nhân hoặc xây dựng các gói khác. Chúng cũng không phải là một phần của thời gian chạy hệ thống. Vì vậy, nói chính xác không có trường hợp sử dụng để tước các tệp tiêu đề không sử dụng.

@bersch Nếu không có câu trả lời tốt hơn, tôi sẵn sàng trao phần thưởng cho nhận xét của bạn.
Sao lưu dự phòng

Câu trả lời:


5

Các linux-headersgói chỉ cần thiết khi bạn muốn biên dịch nguồn khác nhau, hạt nhân hay xây dựng các gói khác.

Mô tả gói từ debian :

Gói này cung cấp các tệp tiêu đề kernel dành riêng cho kiến ​​trúc cho kernel Linux 2.6.32-5-686, thường được sử dụng để xây dựng các mô-đun kernel ngoài cây. Các tệp này sẽ được cài đặt vào /usr/src/linux-headers-2.6.32-5-686 và có thể được sử dụng để xây dựng các mô-đun tải vào kernel được cung cấp bởi linux-image-2.6.32-5- Gói 686.

kernel-headerscũng không phải là một phần của thời gian chạy hệ thống. Vì vậy, nói chính xác không có trường hợp sử dụng để tước các tệp tiêu đề không sử dụng khỏi gói. Tuy nhiên, mô tả ban đầu hạn chế điều này bằng cách nói generallyvà giới hạn việc sử dụng nó để xây dựng các mô-đun hạt nhân. Nếu bạn đang chạy một kernel tùy chỉnh được xây dựng cùng kpkg, thì bạn cũng có thể xem lại các /usr/include/{linux,asm,asm-generic}tiêu đề của mình để có thể biên dịch đúng các nguồn khác.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.