추가 읽기

추가 읽기

dmesg실시간으로 출력물을 보고 싶어하는 사람들로부터 웹상에 많은 질문이 떠돌고 있습니다 . 모든 제안과 답변에는 dmesg -w, tail, journalctl -fsystemd 및/또는 syslog 구성을 사용하여 dmesg 정보를 특정 콘솔 등에 출력하는 작업이 포함됩니다.

특이한 상황에 봉착했습니다.또한 dmesg(커널 디버깅) 출력을 실시간으로 확인해야 하지만 사용자 공간의 정지된 머신에서 확인해야 합니다.(자세한 내용은 아래 참조)

베어본 커널을 부팅하면 init=/bin/bash++ Alt는 syslog나 유사한 프로세스가 실행되고 있지 않더라도 마법의 SysRq 도움말 텍스트를 즉시 인쇄 SysRq합니다 . h이 예는 커널이 사용자 공간의 도움 없이 dmesg 메시지를 화면에 직접 인쇄할 수 있음을 보여줍니다.

불행히도 내 Arch Linux 시스템의 구성 요소는 화면에 도달하기 전에 커널에서 인쇄한 메시지를 먹고 있습니다.console=tty1 loglevel=9내 커널 명령줄 에. tty1에서 Alt++ SysRq를 눌러도 hgo Fishing을 수동으로 사용할 때까지는 아무 일도 일어나지 않는 것 같았습니다 dmesg | tail.

(편집: ) 메시지를 활성화하는 데 사용하도록 제안된 설명입니다 setterm. 나는 이것이 눈에 띄는 영향을 미치지 않는다는 사실에 놀랐습니다.

systemd의 로깅을 재구성해야 할 것 같습니다. 어디서부터 시작해야할지 모르겠습니다.


세부정보/배경:

내 노트북(오래되었지만 여전히 유용한 ThinkPad T400)은 때때로 일시 중지에서 다시 시작할 때 임의로 잠기기로 결정합니다. ACPI 깨우기가 잘 작동하고, 비디오를 다시 시작하고, 백라이트가 잘 작동하고, 키보드가 작동하고, 콘솔 간 전환(X 열기를 주의하는 한)이 작동하고, 심지어 tty가 작동하도록 스크롤하는 것도 작동하지만... 사용자 공간은 여전히 ​​멈춥니다.

수면에 대한 나의 이해는 ...

# echo mem > /sys/power/state
(...)
t400 kernel: Freezing user space processes ... (elapsed 0.047 seconds) done.
(...)
t400 kernel: smpboot: CPU 1 is now offline
<system is asleep>
<I open the lid!>
t400 kernel: ACPI: Low-level resume complete
(...)
t400 kernel: Restarting tasks ... done.
(...)
# echo ohi
ohi
# _

...상당히 많은 수의 절전->재개 프로세스의 경우 사용자 공간/작업이 정지되어 일시 중단->절전->깨우기->재개 주기를 방해하는 것이 없습니다.

답변1

시스템 systemd-sysctl.service서비스모든 "Magic SysRq" 기능을 비활성화합니다.s(동기화)를 제외하고 . 어딘가에 /etc/sysctl.d/더 높은 우선순위의 다시 쓰기 설정을 제공해야 합니다.

console=tty1반드시 활성 KVT일 필요는 없는 첫 번째 커널 가상 터미널에만 출력됩니다. 당시 무슨 일이 일어나더라도 항상 활성 KVT로 출력하려면 를 사용하십시오 console=tty0.

추가 읽기

답변2

설정 항목콘솔 로그 수준을 제어하는 ​​데 사용할 수 있습니다.

setterm -msg on -msglevel 8

메시지 먹는 사람이 시작 중에 이러한 설정을 한 번만 변경하고 일시 중지/재개 중에 다시 엉망으로 만들지 않기를 바랍니다.

관련 정보