我在我的系统日志中发现了这一点:
[ 14.845195] **********************************************************
[ 14.845196] ** NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE **
[ 14.845196] ** **
[ 14.845196] ** trace_printk() being used. Allocating extra memory. **
[ 14.845197] ** **
[ 14.845197] ** This means that this is a DEBUG kernel and it is **
[ 14.845197] ** unsafe for production use. **
[ 14.845197] ** **
[ 14.845198] ** If you see this message and you are not debugging **
[ 14.845198] ** the kernel, report this immediately to your vendor! **
[ 14.845198] ** **
[ 14.845198] ** NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE **
[ 14.845199] **********************************************************
它被标记为“生产不安全。”
但是我从 LTS 存储库获取了内核:
$ uname -a
Linux ubuntupc 4.15.0-66-generic #75-Ubuntu SMP Tue Oct 1 05:24:09 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
它来自Linux-映像-4.15.0-66-通用(4.15.0-66.75)
为什么调试内核最终会出现在 Ubuntu 的存储库中?
操作系统:Ubuntu 18.04.3 LTS
视频驱动程序:nvidia-驱动程序-440
答案1
因此,trace_printk()不在内核中本身,而是在(专有)模块。
就我而言,sep5.ko模块负责这个内核通知,这个模块是英特尔 VTune 放大器套房。
vtune 软件已嵌套在其中/etc/rc0.d/K01sep5
,/etc/rc0.d/K01sep4_1
删除它们后,内核通知就消失了。