作者gn00618777 (非常念旧)
看板LinuxDev
标题[问题] kernel module
时间Mon Oct 15 23:28:25 2018
我在自己的电脑上编译 kernel module
kernel 4.15.0-36-generic
程式码仅有
static int driver_entry(void) {
printk(KERN_INFO "eeeentry");
return 0;
}
static void driver_exit(void) {
printk(KERN_INFO "Good bye");
}
module_init(driver_entry);
module_exit(driver_exit);
MODULE_LICENSE("GPL");
但我不知道为何 insmod 和 rmmod 时,印出的顺序是相反的XD,insmod 印出 Good bye
rmmod 印出eeeentry
[ 131.604421] sayHello: loading out-of-tree module taints kernel.
[ 131.604458] sayHello: module verification failed: signature and/or
required key missing - tainting kernel
[ 131.606243] eeeentry
[ 151.454288] Good bye
[ 324.322405] eeeentry
[ 372.027624] Good bye
[ 430.550556] eeeentry
--------------------------------------------------------------------------
第一次 insmod 没有出现任何我的 printk
[ 21.142600] IPv6: ADDRCONF(NETDEV_UP): ens33: link is not ready
[ 21.189327] IPv6: ADDRCONF(NETDEV_UP): ens33: link is not ready
[ 21.192464] e1000: ens33 NIC Link is Up 1000 Mbps Full Duplex, Flow
Control: None
[ 21.193253] IPv6: ADDRCONF(NETDEV_CHANGE): ens33: link becomes ready
[ 77.120885] rfkill: input handler disabled
[ 364.034842] sayHello: loading out-of-tree module taints kernel.
[ 364.034883] sayHello: module verification failed: signature and/or
required key missing - tainting kernel
然後 rmmod 出现 driver_entry
21.142600] IPv6: ADDRCONF(NETDEV_UP): ens33: link is not ready
[ 21.189327] IPv6: ADDRCONF(NETDEV_UP): ens33: link is not ready
[ 21.192464] e1000: ens33 NIC Link is Up 1000 Mbps Full Duplex, Flow
Control: None
[ 21.193253] IPv6: ADDRCONF(NETDEV_CHANGE): ens33: link becomes ready
[ 77.120885] rfkill: input handler disabled
[ 364.034842] sayHello: loading out-of-tree module taints kernel.
[ 364.034883] sayHello: module verification failed: signature and/or
required key missing - tainting kernel
[ 364.039197] driver entry
请问有人遇过吗?
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 219.68.215.61
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/LinuxDev/M.1539617309.A.C65.html
1F:→ final01: static int __init xxxxx(void) 这样试试?? 10/15 23:56
2F:推 yvb: 应该是 printk 没加换行, 看到前一次的讯息吧. 10/16 20:17
3F:→ gn00618777: 都不行.... 10/16 21:08
※ 编辑: gn00618777 (219.68.215.61), 10/16/2018 21:11:24
4F:→ gn00618777: 我想..应该就是verification的问题了 10/16 22:54
5F:→ gn00618777: 得重编kernel 10/16 22:55
6F:推 yvb: 刚弄了一台 4.15.0-36-generic (Ubuntu 16.04.5 LTS) 实测, 10/17 00:51
7F:→ yvb: 证实是 printk 加上换行就好了. 与 verification 无关. 10/17 00:52
8F:→ yvb: "eeeentry" => "eeeentry\n" 及 "Good bye" => "Good bye\n" 10/17 00:54
9F:→ gn00618777: ....我刚刚正准备重编了XD 还好有再上来看这篇 谢 10/17 23:18