Como obter mensagens do kernel no console serial em um sistema systemd?

4

Estou tentando configurar um A20-OLinuXino-LIME2 como um servidor de arquivos sem Imagem Debian 8 de Construções de Igor Pečovnik .

Eu gostaria que o sistema enviasse suas mensagens do kernel para o console serial (ttyS0) durante o processo de inicialização e terminasse com um prompt de login em ttyS0.

Por padrão, a imagem usa a seguinte linha de comando do kernel:

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

… o que, é claro, não gera nenhuma mensagem do kernel para ttyS0 - não obtenho nenhuma saída entre o " Uncompressing Linux... done, booting the kernel. " do U-Boot e o systemd gerando o prompt de login.

Imaginei que precisava substituir console=tty1 com console=ttyS0,115200n8 , mas o systemd agarra o console serial e sufoca o kernel, então eu só recebo as mensagens do bootloader, depois as mensagens " [ OK ] Started foo. " do systemd e finalmente o prompt de login.

Existe uma maneira de obter as mensagens do kernel (" [ 0.000000] foo ") e a saída do systemd em ttyS0?
Ou uma maneira de pelo menos silenciar o systemd para que eu possa ver as mensagens do kernel se eu precisar depurar uma falha de inicialização?

Devo acrescentar que o kernel definitivamente suporta logging para ttyS0: Quando eu substituo a linha de comando inteira do kernel por console=ttyS0,115200n8 , recebo as mensagens " [ 0.000000] foo " que quero, mas o kernel naturalmente entra em pânico porque não consegue encontrar seus rootfs.

    
por n.st 22.06.2015 / 21:07

1 resposta

3

systemd grabs the serial console and squelches the kernel, so I only get the bootloader messages

Faz isso? Não faz. O loglevel=1 em sua linha de comando do kernel é responsável por dizer ao kernel para parar o registro. Tente remover essa instrução (ou defini-la explicitamente como loglevel=7 ).

Para impedir que systemd registre suas próprias mensagens de status, use systemd.show_status=no (ref .: systemd (1) ).

S .: por favor, pessoal, pare de atribuir bugs e configurações incorretas ao systemd.

    
por 23.06.2015 / 16:31