在我运行 Linux Mint 18.3 的 HP Pavilion 笔记本电脑上,我遇到了一个问题,系统仅在一两个会话中(每个会话不超过半天)就生成了千兆字节的日志文件。
生成的大日志文件是/var/log/kern.log
和/var/log/syslog
。他们都填写了以下报告:
Feb 27 13:54:38 workstation kernel: [ 390.503777] pcieport 0000:00:1d.0: AER: Corrected error received: id=00e8
Feb 27 13:54:38 workstation kernel: [ 390.503786] pcieport 0000:00:1d.0: can't find device of ID00e8
Feb 27 13:54:38 workstation kernel: [ 390.503802] pcieport 0000:00:1d.0: AER: Multiple Corrected error received: id=00e8
Feb 27 13:54:38 workstation kernel: [ 390.504154] pcieport 0000:00:1d.0: PCIe Bus Error: severity=Corrected, type=Physical Layer, id=00e8(Receiver ID)
Feb 27 13:54:38 workstation kernel: [ 390.504158] pcieport 0000:00:1d.0: device [8086:9d1b] error status/mask=00000001/00002000
Feb 27 13:54:38 workstation kernel: [ 390.504162] pcieport 0000:00:1d.0: [ 0] Receiver Error (First)
Feb 27 13:54:38 workstation kernel: [ 390.504172] pcieport 0000:00:1d.0: AER: Corrected error received: id=00e8
Feb 27 13:54:38 workstation kernel: [ 390.504180] pcieport 0000:00:1d.0: PCIe Bus Error: severity=Corrected, type=Physical Layer, id=00e8(Receiver ID)
Feb 27 13:54:38 workstation kernel: [ 390.504185] pcieport 0000:00:1d.0: device [8086:9d1b] error status/mask=00000001/00002000
Feb 27 13:54:38 workstation kernel: [ 390.504190] pcieport 0000:00:1d.0: [ 0] Receiver Error (First)
一而再,再而三。这个错误过去常常在启动时出现,但由于启动后它似乎并没有影响我的日常工作体验,因此我通过添加到pci=nomis
然后/etc/default/grub
运行update-grub
.
然而,我显然只是抑制了这些错误消息的打印输出,因为日志现在已经充满了它们。
我还尝试使用来logrotate
限制日志文件的文件大小,但这没有任何效果,因为日志文件在一个会话中就变得那么大。
有人知道如何将这些日志文件保持在可接受的大小(最多几百MB)吗?因为现在我经常必须手动删除这些日志文件,以防止它们占用我的整个磁盘空间。
编辑:输出lspci -tv
:
-[0000:00]-+-00.0 Intel Corporation Sky Lake Host Bridge/DRAM Registers
+-02.0 Intel Corporation Sky Lake Integrated Graphics
+-04.0 Intel Corporation Skylake Processor Thermal Subsystem
+-14.0 Intel Corporation Sunrise Point-LP USB 3.0 xHCI Controller
+-14.2 Intel Corporation Sunrise Point-LP Thermal subsystem
+-16.0 Intel Corporation Sunrise Point-LP CSME HECI
+-17.0 Intel Corporation Sunrise Point-LP SATA Controller [AHCI mode]
+-1c.0-[01]----00.0 NVIDIA Corporation GM108M [GeForce 940MX]
+-1c.4-[02]----00.0 Realtek Semiconductor Co., Ltd. RTS522A PCI Express Card Reader
+-1c.5-[03]----00.0 Realtek Semiconductor Co., Ltd. RTL8101/2/6E PCI Express Fast/Gigabit Ethernet controller
+-1d.0-[04]----00.0 Realtek Semiconductor Co., Ltd. RTL8723BE PCIe Wireless Network Adapter
+-1f.0 Intel Corporation Sunrise Point-LP LPC Controller
+-1f.2 Intel Corporation Sunrise Point-LP PMC
+-1f.3 Intel Corporation Sunrise Point-LP HD Audio
\-1f.4 Intel Corporation Sunrise Point-LP SMBus
答案1
从您的日志中,我们看到 PCI 1d.0 中的设备正在生成大量日志。
pcieport 0000:00:**1d.0**
借助所请求的命令lspci -tv
,我们可以看到它是您的 realtek 设备。众所周知,它们速度慢、故障多且不可靠。
1d.0-[04]----00.0 Realtek Semiconductor Co., Ltd. RTL8723BE PCIe Wireless Network Adapter
因此,我建议作为一个短期解决方案,简单地指示rsyslog
丢弃所有这些日志/错误。
配置rsyslog
为忽略所有这些消息,如下所示:
添加作为第一行你的/etc/rsyslog.conf
:
:msg, contains, "0000:00:1d.0:" ~
添加此行后,您需要重新启动该rsyslog
服务,否则它只能在下次重新启动时起作用。
sudo service rsyslog restart
请注意,该语句位于 的顶部
rsyslog.conf
。这使得它在任何其他操作语句之前执行。因此,收到的每条消息都将根据字符串进行检查,如果找到匹配,则将其丢弃。
至于长期解决方案,请购买另一张与您的笔记本电脑品牌和型号兼容的 Wifi PCIe 卡。瑞昱的bug太多了。
有关的:使用华硕 USB-N13 适配器的 Wi-Fi 问题
补充笔记:
- 8086:9d1b 是你的 PCI 控制器;
- 我还建议作为OP的线索,但它没有解决问题,尝试将
pci=nomsi
和pci=noaer
作为内核参数。看PCIe 总线错误严重性; - 当日志文件轮换时,如果您不需要保留日志历史记录,请不要忘记删除旧日志;
- 一个可能的中期解决方案是使用 WiFi 棒并将 Realtek WiFi 模块列入黑名单;
- 我在问题中添加了 [realtek] 和 [rsyslog] 标签。