Tôi có phải biên dịch kernel mỗi lần, ngay cả cho một thay đổi nhỏ không?


7

Trong dự án của tôi, tôi cấu hình kernel (2.6.32) block/ioctl.c. Chúng ta đều biết rằng việc biên dịch và xây dựng kernel mất vài giờ. Ngay cả đối với một thay đổi nhỏ, tôi đang biên dịch từ đầu. Vì vậy, có cách nào để biên dịch và xây dựng chỉ các tập tin thay đổi?


1
câu hỏi đầu tiên trong KernelCustomBuild có thể giúp bạn
Yogu

Một vài giờ cho một thay đổi tập tin .c? Những lệnh nào bạn đang sử dụng chính xác và bạn có phần cứng nào?
Mat

@Mat Tôi phải phân tích block/ioctl.cmã. ví dụ đơn giản: printkhàm addind . Và thay đổi một số thứ vĩ mô
gangadhars

Tôi hiểu điều đó. Việc xây dựng lại sau một thay đổi nhỏ trong tệp .c sẽ không dẫn đến việc xây dựng lại hoàn toàn và ngay cả khi việc đó không mất nhiều giờ.
Mat

2
Không cấu hình lại nếu bạn không thay đổi cấu hình. Đừng dọn dẹp nếu bạn có ý định xây dựng lại với một thay đổi nhỏ.
Mat

Câu trả lời:


9

Không, quá trình biên dịch kernel không mất vài giờ. Linus Torvalds nói rằng anh ấy đã mất 12 phút trong những ngày xưa, và ngày nay ít hơn rất nhiều. Tất nhiên, điều này phụ thuộc vào việc bạn biên dịch kernel chỉ với trình điều khiển bạn cần cho phần cứng của bạn hay kernel phân phối với tất cả các trình điều khiển mà mọi người có thể cần - nhưng ngay cả đối với kernel phân phối trên máy hơi cũ, nó sẽ ít hơn một giờ để xây dựng đầy đủ.

Hơn nữa, nếu bạn thay đổi một tệp của kernel, bạn không cần phải xây dựng đầy đủ. Chỉ cần chạymake (và make modulesnếu có các mô-đun bạn cần biên dịch lại) và chỉ tệp đã thay đổi (và các tệp phụ thuộc vào nó, nếu đó là tệp tiêu đề) sẽ được biên dịch lại.


1
Ngay cả sự thay đổi nhỏ nhất trong cấu hình cũng dẫn đến toàn bộ kernel được xây dựng lại và phải mất hàng giờ. Nó luôn luôn làm miễn là tôi nhớ (20 năm và đếm). Nó trở nên tồi tệ hơn khi depsmục tiêu bị giảm.
ajeh
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.