关掉模块的验证CONFIG_MODULE_SIG

遇到下面的bug,是由于模块验证不通过造成的,有一个workaround的方法是在config文件中关掉CONFIG_MODULE_SIG 这个选项,系统就可以起来了


[    9.827069] ------------[ cut here ]------------
[    9.831763] kernel BUG at crypto/asymmetric_keys/public_key.c:96!
[    9.837969] Internal error: Oops - BUG: 0 [#1] SMP
[    9.842845] Modules linked in: marvell(E)
[    9.846928] CPU: 52 PID: 1 Comm: swapper/0 Tainted: G            E   4.12.0tao #1
[    9.854547] Hardware name: Huawei D05/D05, BIOS Nemo 1.7.5 LTS 10/19/2017
[    9.861458] task: fffffe2fee3e0f00 task.stack: fffffe2ff0158000
[    9.867491] PC is at public_key_verify_signature+0x200/0x260
[    9.873251] LR is at x509_check_for_self_signed+0xb4/0x100
[    9.878836] pc : [<fffffc00083e6108>] lr : [<fffffc00083e7704>] pstate: 60000145
[    9.886374] sp : fffffe2ff015ba50
[    9.889743] x29: fffffe2ff015ba50 x28: fffffc0008fd9000 
[    9.895153] x27: 0000000000000000 x26: fffffe2fee3abb80 
[    9.900558] x25: fffffc0008fe6000 x24: fffffc0008c12300 
[    9.905964] x23: 0000000000000542 x22: fffffc0008e6a900 
[    9.911371] x21: fffffe1ecb5bae00 x20: 0000000000000001 
[    9.916775] x19: fffffe1ecb5bb700 x18: 0000000000000010 
[    9.922183] x17: 0000000000000000 x16: 0000000000000000 
[    9.927591] x15: 0000000000000006 x14: ab60717d63c962db 
[    9.932998] x13: ffff000000000000 x12: ffffffffffffffff 
[    9.938407] x11: 0000000000000030 x10: 0000000000000005 
[    9.943816] x9 : 000000000000ffff x8 : fffffffffffffff0 
[    9.949223] x7 : ffffffffffffffff x6 : 000000000000ffff 
[    9.954628] x5 : 0000000000000083 x4 : 0000000000000000 
[    9.960036] x3 : fffffc0008c08578 x2 : fffffe1ecb5bb700 
[    9.965447] x1 : fffffe1ecb5bb700 x0 : 0000000000000000 
[    9.970854] Process swapper/0 (pid: 1, stack limit = 0xfffffe2ff0158000)
[    9.977678] Stack: (0xfffffe2ff015ba50 to 0xfffffe2ff015c000)
[    9.983526] ba40:                                   fffffe2ff015bb90 fffffc00083e7704
[    9.991502] ba60: fffffe1ecb37c900 0000000000000001 fffffe1ecb5b9e80 fffffc0008e6a900
[    9.999479] ba80: 0000000000000542 fffffc0008c12300 fffffc0008fe6000 fffffe2fee3abb80
[   10.007456] baa0: fffffe2ff015bac0 fffffc00083c3458 fffffffffffffffe fffffffffffffffe
[   10.015428] bac0: fffffe2ff015baf0 fffffc00083c2ba4 fffffc00089ac030 fffffc00083c33b0
[   10.023405] bae0: 0000000000000000 0000000000000201 fffffe2ff015bb40 fffffc00083cbc1c
[   10.031380] bb00: fffffc0008c081d8 0000000000000000 fffffe2ff015bb30 fffffc000826571c
[   10.039357] bb20: 00000000014000c0 00000000014000c0 fffffe2ff015bb70 fffffc00083e4cb8
[   10.047332] bb40: 0000000000000000 0000000000000009 000000000000002e fffffc0008e6a929
[   10.055308] bb60: fffffc0008e6a90f fffffc0008c12300 fffffe2ff015bb90 fffffc00083e76c0
[   10.063281] bb80: fffffe1ecb37c900 0000000000000001 fffffe2ff015bbb0 fffffc00083e63c8
[   10.071253] bba0: fffffe1ecb5b9c80 fffffe1ecb37c900 fffffe2ff015bbf0 fffffc00083e72f8
[   10.079230] bbc0: fffffc0008fe6760 fffffe2ff015bd08 fffffc0008fe6670 fffffe2ff015bd08
[   10.087205] bbe0: fffffc00090b51f0 fffffe2ff015bd50 fffffe2ff015bc30 fffffc00083e4f0c
[   10.095181] bc00: fffffc0008fe6760 fffffe2fe0422340 fffffc0008fe6670 fffffe2ff015bd08
[   10.103157] bc20: fffffc00090b51f0 fffffc0008c12300 fffffe2ff015bc80 fffffc0008390240
[   10.111131] bc40: ffffffffffffffec fffffe2fe0422340 fffffe2fe0422341 fffffc0008e6a900
[   10.119107] bc60: 0000000000000542 000000001f030000 000000000000000e fffffc0008e6a900
[   10.127080] bc80: fffffe2ff015bd50 fffffc0008d3d400 0000000000000542 fffffc0008e6a900
[   10.135058] bca0: fffffc0008e6ae42 fffffc00097708d8 fffffc0008be5bd8 fffffc0008dd1070
[   10.143033] bcc0: fffffc0008d20520 fffffc0009110000 fffffc0008e84868 0000000000000000
[   10.151006] bce0: fffffe2ff015bd10 00000000ffffffc8 fffffc0008fe66a8 0000000000000000
[   10.158979] bd00: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
[   10.166952] bd20: 0000000000000000 0000000000000000 fffffc0008e6a900 0000000000000542
[   10.174925] bd40: 0000000000000000 7fffffffffffffff fffffe2ff015bd90 fffffc0008083614
[   10.182899] bd60: fffffc0008d3d348 fffffe2fee3e0f00 0000000000000000 fffffc0008dd1078
[   10.190877] bd80: fffffc0008d06d18 fffffc0008dd1070 fffffe2ff015be00 fffffc0008d20ea8
[   10.198849] bda0: 0000000000000100 fffffc0009110000 0000000000000007 fffffc0008dd1078
[   10.206825] bdc0: fffffe2ff015bd00 fffffc00090b2828 fffffc00090b2780 0000000000000000
[   10.214803] bde0: 0000000700000007 fffffc0008d20520 fffffe2ffbff2300 fffffe2ffbff2309
[   10.222779] be00: fffffe2ff015bea0 fffffc0008924e80 fffffc0008924e68 0000000000000000
[   10.230757] be20: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
[   10.238732] be40: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
[   10.246704] be60: 0000000000000003 0000000000000000 0000000000000000 0000000000000000
[   10.254677] be80: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
[   10.262652] bea0: 0000000000000000 fffffc00080833b0 fffffc0008924e68 0000000000000000
[   10.270624] bec0: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
[   10.278599] bee0: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
[   10.286572] bf00: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
[   10.294544] bf20: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
[   10.302516] bf40: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
[   10.310493] bf60: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
[   10.318468] bf80: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
[   10.326439] bfa0: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
[   10.334413] bfc0: 0000000000000000 0000000000000005 0000000000000000 0000000000000000
[   10.342390] bfe0: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
[   10.350362] Call trace:
[   10.352843] Exception stack(0xfffffe2ff015b880 to 0xfffffe2ff015b9b0)
[   10.359402] b880: fffffe1ecb5bb700 0000040000000000 fffffe2ff015ba50 fffffc00083e6108
[   10.367378] b8a0: fffffe2ff015b8f0 fffffc000810d0c0 fffffc0008f25fd8 0000000000000140
[   10.375354] b8c0: 0000000000000003 0000000000000001 fffffe2ff015b8f0 fffffc000810d0cc
[   10.383332] b8e0: fffffc0008f25fd8 0000000000000140 fffffe2ff015b930 fffffc00080dd4cc
[   10.391305] b900: fffffc0009651000 fffffe1ecb5b9c80 fffffc0008f25000 0000000000000100
[   10.399281] b920: 0000000000000000 fffffe1ecb5bb700 fffffe1ecb5bb700 fffffc0008c08578
[   10.407258] b940: 0000000000000000 0000000000000083 000000000000ffff ffffffffffffffff
[   10.415236] b960: fffffffffffffff0 000000000000ffff 0000000000000005 0000000000000030
[   10.423210] b980: ffffffffffffffff ffff000000000000 ab60717d63c962db 0000000000000006
[   10.431185] b9a0: 0000000000000000 0000000000000000
[   10.436149] [<fffffc00083e6108>] public_key_verify_signature+0x200/0x260
[   10.442973] [<fffffc00083e7704>] x509_check_for_self_signed+0xb4/0x100
[   10.449620] [<fffffc00083e63c8>] x509_cert_parse+0x148/0x1c0
[   10.455382] [<fffffc00083e72f8>] x509_key_preparse+0x28/0x1a0
[   10.461232] [<fffffc00083e4f0c>] asymmetric_key_preparse+0x6c/0x110
[   10.467616] [<fffffc0008390240>] key_create_or_update+0x140/0x358
[   10.473824] [<fffffc0008d3d400>] load_system_certificate_list+0xb8/0x11c
[   10.480649] [<fffffc0008083614>] do_one_initcall+0x44/0x130
[   10.486325] [<fffffc0008d20ea8>] kernel_init_freeable+0x1e4/0x280
[   10.492531] [<fffffc0008924e80>] kernel_init+0x18/0x110
[   10.497851] [<fffffc00080833b0>] ret_from_fork+0x10/0x20
[   10.503256] Code: d4210000 d503201f d4210000 d503201f (d4210000) 
[   10.509515] ---[ end trace 1bef767df4f37fb5 ]---
[   10.514233] Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b

模块一般用来支持那些不经常使用的功能。例如,通常情况下你仅使用拨号网络,因此网络功能并不是任何时候都需要的,那么就应该使用可装入的模块来提供这个功能。仅在你进行拨号联接的时候,该模块才被装入。而在你断掉连接的时候它会被自动卸下。这样会使内核使用内存的量最小,减小系统的负荷。 当然,那些象硬盘访问这样时时刻刻都需要的功能,则必须作在内核里。如果你搭一台网络工作站或 web服务器,那么网络功能是时刻都需要的,你就应该考虑把网络功能编译到内核里。另外一个方法是在启动的时候就装入网络模块。这种方法的优点是你不需要重新编译内核。而缺点是网络功能不能特别高效。 按照以上的原则,我们首先列出一张清单,看看 kernel 中哪些选项是非有不可的,也就是说,这些东西是必须被编译到内核中的。将那些非必需的模块剔除到内核以外。 第一个是root所在的硬盘配置。 哪果您的硬盘是IDE接口,就把 ide 的选项标记下来。如果是SCSI接口,请把您的接口参数及 SCSI id 记标下来。 第二个是选择使用哪一个文件系统。 Linux的默认文件系统是是 ext2 ,那么就一定要把它标记下来。如果机器中还其它的操作系统,如win98或windows NT,您还会可能选择FAT32或NTFS的支持,不过后面你可以通过手工加载的方式来加入新的模块支持。 第三个是选择Linux所支持的可执行文件格式。这里有两种格式可供选择: elf:这是当前Linux普遍支持的可执行文件格式,必须编译到内核中 。 a.out: 这是旧版的Linux的可执行文件各函数库的格式,如果你确认肯定用不到这种格式的可执行文件,那么就可以不把它编译到内核当中。 以上这些内容,是必须要编译到内核中的。其它的内容凡是所有选项中m提示的,都选择m,这样可以通过手工的方式添加该模块。 ** Loadable module support*Enable loadable module support (CONFIG_MODULES) [Y/n/?]Set version information on all symbols for modules (CONFIG_MODVERSIONS) [N/y/?]Kernel daemon support (e.g. autoload of modules) (CONFIG_KERNELD) [Y/n/?] 分别回答 Y,N,Y 。其中 CONFIG_KERNELD 的 default 值是 N, 所以要注意选择Y。 make config 完后,仍旧是 make dep; make clean。 接下来要 make zlilo 或 make zImage。 然后 make modules ; make modules_install 。完成之后,就编译出一个没有调入多余模块的一个“干净的”内核映像文件了。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值