Điểm:0

Thông báo thoát Mô-đun hạt nhân được in vào lần tiếp theo khi chèn mô-đun

lá cờ co

Tôi đã viết mô-đun kernel đơn giản để in thông điệp Hello kernel.

my_module.c

#include <linux/module.h>
#include <linux/init.h>

/* Thông tin meta */
MODULE_LICENSE("GPL");
MODULE_AUTHOR("BHAGWAT");
MODULE_DESCRIPTION("MÔ-ĐUN HELLO WORLD");

/*hàm này được gọi khi module được nạp vào kernel*/

tĩnh int __init ModuleInit(void)
{
    printk("Xin chao kernel!\n");
    trả về 0;
}

/*hàm này được gọi khi mô-đun bị xóa khỏi kernel*/
khoảng trống tĩnh __exit Mô-đunExit (khoảng trống)
{
    printk("Tạm biệt hạt nhân");
}

module_init(ModuleInit);
module_exit(ModuleExit);

Makefile

obj-m += my_module.o

tất cả các:
    tạo các mô-đun -C /lib/modules/$(shell uname -r)/build M=$(PWD)

dọn dẹp:
    làm sạch -C /lib/modules/$(shell uname -r)/build M=$(PWD)

khi tôi chèn mô-đun, tôi nhận được thông báo được in trong nhật ký hạt nhân, nhưng khi tôi gỡ bỏ mô-đun, thông báo không được in. Khi tôi lắp lại mô-đun, hai thông báo được in, một cho lần thoát mô-đun cuối cùng và một cho lần tải mô-đun. Tại sao thông báo thoát mô-đun được in sau khi tôi lắp mô-đun vào nhưng không được in khi gỡ mô-đun ra.

bhagwat@bhagwat:~/bhagwatws/Personal/device_driver$ sudo insmod my_module.ko
bhagwat@bhagwat:~/bhagwatws/Personal/device_driver$ dmesg | đuôi
[ 24.595403] rfkill: đã bật trình xử lý đầu vào
[ 30.244336] rfkill: trình xử lý đầu vào bị tắt
[ 145.426767] my_module: xác minh mô-đun không thành công: thiếu chữ ký và/hoặc khóa bắt buộc - kernel nhiễm độc
[ 145.427022] Xin chào, hạt nhân!
[ 217.026559] Tạm biệt hạt nhân
[ 498.489388] Xin chào, hạt nhân!
[ 524.139613] Tạm biệt hạt nhân
[ 528.270128] Xin chào, hạt nhân!
[ 577.360611] Tạm biệt hạt nhân
[ 587.700237] Xin chào, hạt nhân!
bhagwat@bhagwat:~/bhagwatws/Personal/device_driver$ sudo rmmod my_module 
bhagwat@bhagwat:~/bhagwatws/Personal/device_driver$ dmesg | đuôi
[ 24.595403] rfkill: đã bật trình xử lý đầu vào
[ 30.244336] rfkill: trình xử lý đầu vào bị tắt
[ 145.426767] my_module: xác minh mô-đun không thành công: thiếu chữ ký và/hoặc khóa bắt buộc - kernel nhiễm độc
[ 145.427022] Xin chào, hạt nhân!
[ 217.026559] Tạm biệt hạt nhân
[ 498.489388] Xin chào, hạt nhân!
[ 524.139613] Tạm biệt hạt nhân
[ 528.270128] Xin chào, hạt nhân!
[ 577.360611] Tạm biệt hạt nhân
[ 587.700237] Xin chào, hạt nhân!
bhagwat@bhagwat:~/bhagwatws/Personal/device_driver$ sudo insmod my_module.ko
bhagwat@bhagwat:~/bhagwatws/Personal/device_driver$ dmesg | đuôi
[ 145.426767] my_module: xác minh mô-đun không thành công: thiếu chữ ký và/hoặc khóa bắt buộc - kernel nhiễm độc
[ 145.427022] Xin chào, hạt nhân!
[ 217.026559] Tạm biệt hạt nhân
[ 498.489388] Xin chào, hạt nhân!
[ 524.139613] Tạm biệt hạt nhân
[ 528.270128] Xin chào, hạt nhân!
[ 577.360611] Tạm biệt hạt nhân
[ 587.700237] Xin chào, hạt nhân!
[ 667.900373] Tạm biệt hạt nhân
[ 676.245356] Xin chào, hạt nhân!
bhagwat@bhagwat:~/bhagwatws/Personal/device_driver$ sudo rmmod my_module 
bhagwat@bhagwat:~/bhagwatws/Personal/device_driver$ dmesg | đuôi
[ 145.426767] my_module: xác minh mô-đun không thành công: thiếu chữ ký và/hoặc khóa bắt buộc - kernel nhiễm độc
[ 145.427022] Xin chào, hạt nhân!
[ 217.026559] Tạm biệt hạt nhân
[ 498.489388] Xin chào, hạt nhân!
[ 524.139613] Tạm biệt hạt nhân
[ 528.270128] Xin chào, hạt nhân!
[ 577.360611] Tạm biệt hạt nhân
[ 587.700237] Xin chào, hạt nhân!
[ 667.900373] Tạm biệt hạt nhân
[ 676.245356] Xin chào, hạt nhân!
lá cờ hr
Có lẽ vì không có dòng mới ở cuối thông báo `"Tạm biệt, hạt nhân"` của bạn? Xem ví dụ [printk có phải là dòng đệm không?](https://stackoverflow.com/questions/13538618/printk-is-line-buffered)
Jeff avatar
lá cờ mx
Bạn đang sử dụng phiên bản hạt nhân nào? Có lẽ đó là 5.4, phải không?
Điểm:0
lá cờ in

sử dụng '\n' trong câu lệnh printk của mô-đun thoát printk("Tạm biệt hạt nhân\n");

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.