这是在上下文中:
[ 0.507474] i8042: PNP: No PS/2 controller found.
[ 0.507568] mousedev: PS/2 mouse device common for all mice
[ 0.507683] device-mapper: uevent: version 1.0.3
[ 0.507809] device-mapper: ioctl: 4.39.0-ioctl (2018-04-03) initialised: [email protected]
[ 0.508081] hidraw: raw HID events driver (C) Jiri Kosina
[ 0.508169] usbcore: registered new interface driver usbhid
[ 0.508186] usbhid: USB HID core driver
[ 0.508401] drop_monitor: Initializing network drop monitor service
[ 0.510160] Initializing XFRM netlink socket
[ 0.510252] NET: Registered protocol family 10
[ 0.513721] Segment Routing with IPv6
[ 0.513769] mip6: Mobile IPv6
[ 0.513822] NET: Registered protocol family 17
[ 0.516773] RAS: Correctable Errors collector initialized.
[ 0.516822] AVX2 version of gcm_enc/dec engaged.
[ 0.516832] AES CTR mode by8 optimization enabled
[ 0.535396] sched_clock: Marking stable (535392296, 0)->(356708768710, -356173376414)
[ 0.541048] registered taskstats version 1
[ 0.541070] Loading compiled-in X.509 certificates
[ 0.549865] Key type big_key registered
[ 0.553967] Key type encrypted registered
[ 0.553984] ima: No TPM chip found, activating TPM-bypass! (rc=-19)
[ 0.553999] ima: Allocated hash algorithm: sha1
[ 0.554183] xenbus_probe_frontend: Device with no driver: device/vbd/51712
[ 0.554195] xenbus_probe_frontend: Device with no driver: device/vbd/51728
[ 0.554205] xenbus_probe_frontend: Device with no driver: device/vbd/51744
[ 0.554216] xenbus_probe_frontend: Device with no driver: device/vbd/51760
[ 0.554227] xenbus_probe_frontend: Device with no driver: device/vif/0
[ 0.554241] Magic number: 1:252:3141
[ 0.554301] hctosys: unable to open rtc device (rtc0)
[ 0.556156] Freeing unused kernel image memory: 2172K
[ 0.841038] Write protecting the kernel read-only data: 20480k
[ 0.843299] Freeing unused kernel image memory: 2024K
[ 0.843560] Freeing unused kernel image memory: 152K
[ 0.843700] rodata_test: all tests were successful
[ 0.985918] blkfront: xvda: flush diskcache: enabled; persistent grants: enabled; indirect descriptors: enabled;
[ 0.993816] xvda: xvda1 xvda2 xvda3
[ 1.001625] blkfront: xvdb: flush diskcache: enabled; persistent grants: enabled; indirect descriptors: enabled;
[ 1.019880] blkfront: xvdc: flush diskcache: enabled; persistent grants: enabled; indirect descriptors: enabled;
[ 1.031687] blkfront: xvdd: flush diskcache: enabled; persistent grants: enabled; indirect descriptors: enabled;
[ 1.105659] xvdc: xvdc1
[ 1.152834] EXT4-fs (xvda3): mounted filesystem with ordered data mode. Opts: (null)
[ 1.161403] EXT4-fs (xvdd): mounting ext3 file system using the ext4 subsystem
[ 1.164350] EXT4-fs (xvdd): mounted filesystem with ordered data mode. Opts: (null)
[ 1.173317] EXT4-fs (xvda3): re-mounted. Opts: (null)
[ 1.184075] clocksource: tsc: mask: 0xffffffffffffffff max_cycles: 0x6a8f3c48a1e, max_idle_ns: 881591127766 ns
[ 1.207129] EXT4-fs (xvda3): re-mounted. Opts: (null)
它位于 Qubes OS 4.0 下的 VM(虚拟机)内,即所谓的 AppVM,运行带有内核 4.18.5(手动编译)的 Fedora 28。
消息( Magic number: 1:252:3141
) 消失了如果我合并全部这些顶部的选项这些基础的。
为什么我需要知道这个?我将内核减少.config
到只需要所需的内容,因此我正在比较dmesg
日志以查找丢失的内容和我可能仍然需要的内容。
lspci
注意:该虚拟机内部或内部没有输出lsusb
(我不知道为什么),也许这就是 xen 下虚拟机的工作原理?所以我无法测试这些数字是否与任何东西相关——而且它本身没有其他任何意义dmesg
。
编辑:我仅使用CONFIG_HID_MAGICMOUSE=y
(更改自# CONFIG_HID_MAGICMOUSE is not set
)重新编译了内核,并且该消息没有出现!所以我的结论是 这不是选项,或者我还关闭了一些之前打开的调试消息?
CONFIG_HID_MAGICMOUSE:
Support for the Apple Magic Mouse/Trackpad multi-touch.
Say Y here if you want support for the multi-touch features of the
Apple Wireless "Magic" Mouse and the Apple Wireless "Magic" Trackpad.
Symbol: HID_MAGICMOUSE [=n]
Type : tristate
Prompt: Apple Magic Mouse/Trackpad multi-touch support
Location:
-> Device Drivers
-> HID support
-> HID bus support (HID [=y])
-> Special HID drivers
Defined at drivers/hid/Kconfig:561
Depends on: INPUT [=y] && HID [=y]
答案1
Magic number: 1:252:3141
仅当内核.config
选项如下时才会出现该消息CONFIG_PM_TRACE_RTC=y
:
CONFIG_PM_TRACE_RTC:
This enables some cheesy code to save the last PM event point in the
RTC across reboots, so that you can debug a machine that just hangs
during suspend (or more commonly, during resume).
To use this debugging feature you should attempt to suspend the
machine, reboot it and then run
dmesg -s 1000000 | grep 'hash matches'
CAUTION: this option will cause your machine's real-time clock to be
set to an invalid time after a resume.
Symbol: PM_TRACE_RTC [=y]
Type : bool
Prompt: Suspend/resume event tracing
Location:
-> Power management and ACPI options
Defined at kernel/power/Kconfig:218
Depends on: PM_SLEEP_DEBUG [=y] && X86 [=y]
Selects: PM_TRACE [=y]
文档提到Magic number:
:https://www.kernel.org/doc/Documentation/power/s2ram.txt
引用文件中的以下内容(驱动程序/base/power/trace.c)其代码负责该Magic number: 1:252:3141
消息:
/*
* drivers/base/power/trace.c
*
* Copyright (C) 2006 Linus Torvalds
*
* Trace facility for suspend/resume problems, when none of the
* devices may be working.
*/
...
/*
* Horrid, horrid, horrid.
*
* It turns out that the _only_ piece of hardware that actually
* keeps its value across a hard boot (and, more importantly, the
* POST init sequence) is literally the realtime clock.
*
* Never mind that an RTC chip has 114 bytes (and often a whole
* other bank of an additional 128 bytes) of nice SRAM that is
* _designed_ to keep data - the POST will clear it. So we literally
* can just use the few bytes of actual time data, which means that
* we're really limited.
*
* It means, for example, that we can't use the seconds at all
* (since the time between the hang and the boot might be more
* than a minute), and we'd better not depend on the low bits of
* the minutes either.
*
* There are the wday fields etc, but I wouldn't guarantee those
* are dependable either. And if the date isn't valid, either the
* hw or POST will do strange things.
*
* So we're left with:
* - year: 0-99
* - month: 0-11
* - day-of-month: 1-28
* - hour: 0-23
* - min: (0-30)*2
*
* Giving us a total range of 0-16128000 (0xf61800), ie less
* than 24 bits of actual data we can save across reboots.
*
* And if your box can't boot in less than three minutes,
* you're screwed.
*
* Now, almost 24 bits of data is pitifully small, so we need
* to be pretty dense if we want to use it for anything nice.
* What we do is that instead of saving off nice readable info,
* we save off _hashes_ of information that we can hopefully
* regenerate after the reboot.
*
* In particular, this means that we might be unlucky, and hit
* a case where we have a hash collision, and we end up not
* being able to tell for certain exactly which case happened.
* But that's hopefully unlikely.
*
* What we do is to take the bits we can fit, and split them
* into three parts (16*997*1009 = 16095568), and use the values
* for:
* - 0-15: user-settable
* - 0-996: file + line number
* - 0-1008: device
*/