원하지 않는 콘솔 텍스트

원하지 않는 콘솔 텍스트

어떤 이유에서인지 USB 장치를 연결할 때마다 많은 메시지가 터미널에 덤프됩니다. (기기ID, 버퍼링 모드 등을 알려주세요.)

이런 일이 발생하지 않도록 하려면 어떻게 해야 합니까?


고쳐 쓰다:

몇몇 사람들이 나에게 몇 가지 질문을 했습니다. 따라서 관련성이 있을 수 있는 지금까지 제가 수집한 정보를 요약해 보겠습니다.

  • 현재 보고 있는 가상 터미널이 무엇이든 흩어져 있는 텍스트가 나타납니다. 각 줄에는 시스템 가동 시간처럼 보이는 숫자가 앞에 붙습니다.

  • quiet매개변수는 이미 커널 명령줄에 있습니다.

  • 현재 printk로 설정되어 있습니다 6 4 1 7.

  • 내가 아는 한, syslog패키지가 설치되지도 않았습니다. (또는 rsyslog.) 물론 /etc.

  • init 이어야 합니다 systemd.

  • /etc/sysctl.d비었다. /etc/sysctl.conf댓글만 포함됩니다.

답변1

시작 방법:

quiet loglevel=3

정보를 위해:

quiet       [KNL] Disable most log messages

loglevel=   All Kernel Messages with a loglevel smaller than the
        console loglevel will be printed to the console. It can
        also be changed with klogd or other programs. The
        loglevels are defined as follows:

        0 (KERN_EMERG)      system is unusable
        1 (KERN_ALERT)      action must be taken immediately
        2 (KERN_CRIT)       critical conditions
        3 (KERN_ERR)        error conditions
        4 (KERN_WARNING)    warning conditions
        5 (KERN_NOTICE)     normal but significant condition
        6 (KERN_INFO)       informational
        7 (KERN_DEBUG)      debug-level messages

확인을 시작한 후(보고된 첫 번째 숫자로 3을 보고 싶습니다):

$ sysctl kernel.printk
kernel.printk = 3       4       1       4

kernel.printk자세한 내용은 다음을 참조하세요.kernel.printk 값에 대한 설명.

printk나중에 부팅 프로세스 중에 덮어쓸 수 있으며 sysctl일반적으로 한 번 처리되거나 (배포 및 부팅 프로세스에 따라) 처리 /etc/sysctl.conf됩니다 ./etc/sysctl.d/*

그런 다음 로깅 데몬에 따라 추가 조정이 필요할 수도 있습니다. 왜냐하면 systemd당신이 그것을 확인할 수도 있기 때문입니다 /etc/systemd/journald.conf.

답변2

메시지 앞에 숫자가 오면 Linux 커널에 의해 생성됩니다. (이 숫자는 시스템이 시작된 이후의 시간(초)을 나타냅니다.) 이러한 메시지를 중지하려면 이 quiet매개변수를 커널 명령줄에 추가합니다. /boot 파티션의 파일을 편집하거나 부트로더에서 제공하는 구성 도구(예: GRUB)를 사용하여 이를 수행할 수 있습니다. 또한 시스템이 시작될 때 메시지가 표시되지 않습니다.

답변3

만약에커널에 대한 Miroslav Koskar의 제안은 loglevel도움이 되지 않습니다(IMO에서는 3 대신 2 또는 1을 사용할 수도 있음). /etc/syslog.conf(또는 rsyslog.conf)에 /dev/console.아마도커널이 이 작업을 직접 수행하지 않으면 이런 일이 발생할 수 있습니다.

라인이 다음과 같은 경우:

*.warn       /dev/console

또는 *.warn으로 변경 하거나 주석 처리하세요. 자세한 내용은 시스템 로그 설명서를 참조하세요.*.crit*.emerg


loglevel작동하지 않고 분명히 syslogd가 없기 때문에 (나쁜 생각, btw) printk 설정이 6 4 1 7인 것이 문제일 수 있습니다. 첫 번째는 콘솔 로그 수준입니다. 이를 변경해야 합니다. 다음 두 가지 방법 중 하나로 루트로 이 작업을 수행할 수 있습니다.

sysctl kernel.printk="2 4 1 7"
   - or -
echo "2 4 1 7" > /proc/sys/kernel/printk

sysctl kernel.printk그런 다음 이를 사용하거나 검사 할 수 있습니다 cat /proc/sys/kernel/printk. USB 메시지는 중요한 메시지일 가능성이 낮으며(로그 레벨 2), 우선순위 없이 어떤 모듈에서든 제출되면 4개의 printk 값(이 경우 4) 중 두 번째인 기본값을 사용합니다.

이것이 효과가 있다면 파일을 추가하고 /etc/sysctl.d/다음 줄을 추가해야 합니다:

kernel.printk = 2 4 1 7

거기에는 인용이 필요하지 않다고 생각합니다. 디렉터리가 존재하지 않으면 디렉터리에 줄을 추가 /etc/sysctl.conf하고 필요한 경우 만듭니다. 자세한 내용은 을 참조하십시오 man sysctl.conf.

답변4

결국 시작 스크립트 중 하나에 다음 명령을 추가하여 이 문제를 해결할 수 있었습니다.

klogconsole -l 3

시스템이 종료되는 것 같습니다. (적어도 명령을 실행한 후에는 가능합니다.)

관련 정보