3.Tạo LKM
Một LKM nằm trong một file đối tượng ELF (thường được đặt tên theo dạng serial.o) Thông thường bạn lưu tất cả file object LKM trong một thư mục nhất định (gần file image của kernel cơ sở). Khi dùng chương trình
insmod
để chèn một LKM vào kernel, bạn cần đưa vào tên của file đối tượng đó.Đối với các LKM là một phần của linux, bạn xây dựng chúng cùng lúc với việc tạo image của kernel cơ sở. Đọc file README trong cây thư mục chứa source Linux. Ngắn gọn, sau khi tạo image cho kernel cơ sở với một lệnh (chẳng hạn như
make zImage
, bạn sẽ tạo tiếp tất cả các LKM với lệnh make modules
Lệnh này sẽ cho ra một loạt các file đối tượng LKM *.o trong cây thư mục chứa source Linux. (Trong những phiên bản cũ của Linux, sẽ có link trong thư mục
modules
trỏ đến tất cả các file này. Những LKM này đã sẵn sàng để được load, nhưng có thể bạn sẽ muốn cài đặt chúng trong những thư mục thích hợp hơn.Một trong những công việc cần làm để cấu hình kernel (lúc xây dựng) là chọn những phần nào của kernel để đưa vào kernel cơ sở và những phần nào để tạo LKM độc lập. Trong quá trình cấu hình cơ bản theo dạng hỏi-trả lời (
make config
), với mỗi phần tuỳ chọn của kernel, bạn sẽ được chọn Y - để tích hợp vào kernel cơ sở, hay M - để tạo module độc lập, hay N - bỏ qua hoàn toàn. Những cách cấu hình khác cũng tương tự.Như đã giải thích trong phần 2.3, bạn chỉ nên đưa vào kernel cơ sở những phần tối thiểu, và bỏ qua những phần chắn chắn là bạn không cần tới. Không mất mát gì nhiều nếu bạn tạo một LKM mà bạn không dùng tới. Chỉ là một ít thời gian biên tập (compile), một ít không gian lưu trữ, và khả năng lỗi trong module đó làm cản trở quá trình xây dựng kernel.
Cũng trong bước cấu hình, bạn phải chọn có sử dụng symbol versioning hay không. Lựa chọn này ảnh hường đến cả việc xây dựng kernle cơ sở lẫn LKM, và bạn nhất thiết phải chọn đúng. (Xem phần 6).
No comments:
Post a Comment