在 Linux 中,dmesg 本身只是一个查看内核环形缓冲区(kernel ring buffer)日志的命令,它不会“主动刷屏”。你看到的终端一直在滚日志 / 不断输出,通常是下面几类原因之一。
并不是 dmesg 在刷屏,而是你用了实时跟踪方式:
dmesg -w
# 或
watch dmesg
# 或
tail -f /var/log/kern.log
这些命令会持续输出新内核日志,所以看起来像“刷屏”。
✅ 解决:
Ctrl + C 停止dmesg
如果 dmesg -w 一直在滚,说明内核在频繁打印日志,常见来源:
例子:
usb 1-1: device descriptor read/64, error -71
✅ 排查:
dmesg | tail -50
表现:
netfilter / iptables 日志规则printk 级别过低例子:
nf_conntrack: table full
内核日志级别过低会导致调试信息也输出。
查看当前级别:
cat /proc/sys/kernel/printk
临时提高阈值(减少刷屏):
sudo dmesg -n 3
有时你看到的“刷屏”其实是:
journalctl -f
而不是 dmesg。
dmesg -T | tail -100
dmesg | grep -i error
dmesg | grep -i usb
dmesg | grep -i eth
dmesg | grep -i <模块名>
dmesg不会自己刷屏,刷屏是因为内核在一直打日志,而你用了查看/监听方式。
如果你愿意,可以把刷屏的日志贴几行出来,我可以直接帮你判断是硬件、驱动还是配置问题。