Tôi có một đối tượng hạt nhân đơn giản mà tôi đã xây dựng để thăm dò xung quanh bộ nhớ hạt nhân.Khả năng tương thích của hạt nhân Linux (* .ko) giữa các hạt nhân
Nếu tôi xây dựng nó trên máy 64-bit Ubuntu (3.2) của tôi, nó hoạt động tốt trên máy đó. Nhưng nó sẽ không bị lỗi trên máy tính 64-bit Ubuntu (3.9) của tôi. Và ngược lại. Nó mang lại cho tôi một lỗi "-1 định dạng mô-đun không hợp lệ" nếu tôi cố gắng chạy nó trên một Kernel rev khác với cái tôi đã xây dựng nó trên.
Tôi nghĩ insmod đã liên kết nó động với bảng biểu tượng đã xuất và bảng biểu tượng đã xuất không thay đổi giữa các phiên bản hạt nhân. (Nó được nối thêm.)
Ai đó có thể cho tôi biết làm thế nào tôi có thể xây dựng một mô-đun hạt nhân (.ko) tương thích với hạt nhân Linux trong tương lai (hoặc cũ) mà không cần phải xây dựng lại hạt nhân đó?
Dưới đây là làm cho tôi file:
ccflags-y = -g
obj-m + = access_mem.o
tất cả: làm C/lib/modules/$ (uname vỏ -r)/xây dựng M = $ (PWD) module
sạch: làm C/lib/modules/$ (vỏ uname -r)/xây dựng M = $ (PWD) sạch
Ubuntu 3.2 của bạn là phiên bản 32 bit hoặc 64 bit? Cùng một câu hỏi với Ubuntu 3.9 – nouney
Cả hai 64-bit. Thx để nhắc tôi về điểm dữ liệu quan trọng này. –