systemd 시스템의 직렬 콘솔에서 커널 메시지를 얻는 방법은 무엇입니까?

systemd 시스템의 직렬 콘솔에서 커널 메시지를 얻는 방법은 무엇입니까?

나는A20-OLinuXino-LIME2헤드리스 파일 서버로서데비안 8 미러~에서이고르 페초브니크의 작품.

시스템이 부팅하는 동안 커널 메시지를 직렬 콘솔(ttyS0)에 출력하고 결국 ttyS0에 로그인 프롬프트를 표시하기를 원합니다.

기본적으로 이미지는 다음 커널 명령줄을 사용합니다.

console=tty1 root=/dev/mmcblk0p1 rootwait rootfstype=ext4 sunxi_ve_mem_reserve=0 sunxi_g2d_mem_reserve=0 sunxi_no_mali_mem_reserve sunxi_fb_mem_reserve=16 hdmi.audio=EDID:0 disp.screen0_output_mode=1920x1080p60 panic=10 consoleblank=0 enforcing=0 loglevel=1

...물론 ttyS0에는 커널 메시지가 출력되지 않습니다. Uncompressing Linux... done, booting the kernel.U-Boot의 " "와 로그인 프롬프트를 생성하는 systemd 사이에는 출력이 없습니다.

console=tty1나는 그냥 으로 바꾸겠다고 생각했지만 console=ttyS0,115200n8systemd는 직렬 콘솔을 잡고 커널을 억제하므로 부트로더 메시지를 받은 다음 systemd의 " [ OK ] Started foo." 스타일 메시지를 받고 마지막으로 로그인 프롬프트를 받습니다.

[ 0.000000] foottyS0에서 커널 메시지("")와 systemd의 출력을 모두 얻을 수 있는 방법이 있습니까 ?
아니면 부팅 실패를 디버깅해야 할 경우 커널 메시지를 볼 수 있도록 최소한 systemd를 침묵시키는 방법이 있습니까?


커널이 확실히 ttyS0에 대한 로깅을 지원한다는 점을 추가해야 합니다. 전체 커널 명령 줄을 console=ttyS0,115200n8다음으로 바꿀 때[ 0.000000] foo

답변1

systemd는 직렬 콘솔을 가져오고 커널을 억제하므로 부트로더 메시지만 받습니다.

할 수 있다? 그러나 실제로는 그렇지 않습니다. loglevel=1커널 명령줄에서는 커널에 로깅을 중지하도록 지시하는 역할을 담당합니다. 해당 문을 제거하거나 명시적으로 설정해 보세요 loglevel=7.

멈추다체계자신의 상태 메시지 기록에서 다음을 사용하세요 systemd.show_status=no(참조:시스템(1)).


추신: 여러분, 임의의 소프트웨어 버그와 systemd의 잘못된 구성을 비난하지 마세요.

관련 정보