이건 아직도 나와 관련이 있어어제의 주제, 그래서 경고가 있거나 내 터미널에 로그가 표시될 수도 있습니다 /dev/tty1
. 물론 이것은 내 bash 프롬프트에 표시되기 때문에 짜증나므로 무언가를 입력하려고 할 때마다 내 입력이 해당 출력으로 덮어쓰여집니다. 정기적으로 약 3 second
. 그러면 그게 얼마나 짜증나는지 알 수 있지
내 터미널은 다음과 같습니다.
root@LFS:# echo "Hey get out of there"clocksource: timekeeping watchdog on CPU0: acpi_pm wd-wd readback delay of 643744ns
clocksource: wd-tsc-wd read-back delay of 182144ns, clock-skew test skipped!
clocksource: timekeeping watchdog on CPU0: acpi_pm wd-wd readback delay of 643744ns
clocksource: wd-tsc-wd read-back delay of 182144ns, clock-skew test skipped!
clocksource: timekeeping watchdog on CPU0: acpi_pm wd-wd readback delay of 643744ns
clocksource: wd-tsc-wd read-back delay of 182144ns, clock-skew test skipped!
...
나는 그것이 원인이 아니라 clocksource
결과라고 dmesg
생각합니다. 왜냐면 내가 지시할 때 dmesg
. 그것은 같은 것을 보여줍니다. 하지만 사용할 때마다 /dev/pts
LFS 시스템에 SSH로 연결하면서 테스트했는데 귀찮은 출력이나 주기적 경고가 발생하지 않았습니다.
그렇다면 dmesg 로그가 표시되지 않도록 하는 방법은 다음과 같습니다./dev/tty1
업데이트: 내부/proc/cmdline
root@LFS:~# cat /proc/cmdline
BOOT_IMAGE=/boot/vmlinuz-5.16.9-lfs-11.1 root=/dev/sda1 ro
답변1
콘솔 로그 수준을 낮추면 콘솔 출력을 비활성화할 수 있습니다. 예를 들어 콘솔 로그 수준을 0으로 낮춰 모든 출력을 비활성화하려면 다음을 수행합니다.
# sysctl kernel.printk='0 4 0 5'
kernel.printk
네 가지 매개변수가 있습니다:
- 콘솔에 표시될 메시지를 제어하는 콘솔 로그 수준(가장 관심 있는 메시지)
- 로그 수준이 설정되지 않은 모든 메시지에 대한 기본 메시지 로그 수준입니다.
- 최소 콘솔 로그 수준이 허용되며 콘솔 로그 수준을 최소값으로 제한합니다.
- 기본 콘솔 로그 수준(현재 코드에서 사용되지 않음)
/etc/sysctl.conf
또는 에 그대로 둘 수 있습니다 /etc/sysctl.d/
.
dmesg를 사용하여 이 작업을 수행할 수도 있습니다 dmesg
.
# dmesg -n1
에서 man dmesg
:
-n, --console 수준등급: 메시지가 콘솔에 기록되는 수준을 설정합니다. 레벨은 레벨 번호 또는 레벨 이름의 약어입니다. 예를 들어 -n 1 또는 -nalert는 긴급(긴급) 메시지를 제외한 모든 메시지가 콘솔에 표시되지 않도록 합니다. 모든 수준의 메시지는 여전히 /proc/kmsg에 기록되므로 syslogd(8)는 커널 메시지가 나타나는 위치를 정확히 제어할 수 있습니다. -n 옵션을 사용할 때 dmesg는 커널 링 버퍼를 인쇄하거나 지우지 않습니다. 지원되는 모든 수준은 --help 출력을 참조하세요.
loglevel=N
또한 전달하여 커널 명령줄에서 이를 조정할 수도 있습니다 Documentation/admin-guide/kernel-parameters.txt
. 를 참조하십시오. 이 옵션도 사용할 수 있습니다. 이 옵션이 설정하는 실제 레벨은 quiet
컴파일 타임에 설정된 값에 따라 달라집니다.CONFIG_CONSOLE_LOGLEVEL_QUIET
콘솔당 로그 수준
그런데 나 다음엔각 콘솔의 콘솔 로그 레벨을 설정하는 패치커널에 병합되면 전체 시스템에 영향을 주기 위해 sysfs의 컨트롤을 사용하는 대신 특정 콘솔 범주에 대한 로그 수준을 직접 줄이거나 늘릴 수 있습니다.
% ls -l /sys/class/console/ttyS/
total 0
lrwxrwxrwx 1 root root 0 May 20 14:40 subsystem -> ../../../../class/console/
-r--r--r-- 1 root root 4096 May 20 14:41 effective_loglevel
-r--r--r-- 1 root root 4096 May 20 14:41 effective_loglevel_source
-r--r--r-- 1 root root 4096 May 20 14:41 enabled
-rw-r--r-- 1 root root 4096 May 20 14:41 loglevel
-rw-r--r-- 1 root root 4096 May 20 14:40 uevent
형식에는 여전히 일부 변경 사항이 있지만 다음 몇 가지 커널 버전에 병합되면 아마도 이와 유사하게 보일 것입니다. kernel.printk
더 미세한 제어를 위해 더 이상 사용되지 않을 수도 있습니다.
Documentation/admin-guide/per-console-loglevel.rst
보다반점더 많은 정보를 알고 싶습니다.