Texto do console indesejado

0

Por alguma razão, toda vez que eu conecto um dispositivo USB, um monte de mensagens é despejado no terminal. (Dizendo algo sobre IDs de dispositivos, modos de buffer, etc.)

Como posso evitar que isso aconteça?

Atualização:

Várias pessoas me perguntaram coisas, então deixe-me resumir as informações potencialmente relevantes que coletei até agora:

  • O texto perdido aparece em qualquer terminal virtual que eu esteja olhando no momento. Cada linha é prefixada com o que parece ser o tempo de atividade do sistema.

  • O parâmetro quiet já está na linha de comando do kernel.

  • A configuração atual para printk é 6 4 1 7 .

  • Pelo que sei, o pacote syslog nem está instalado. (Nor rsyslog .) Certamente não há arquivos de configuração para ele em /etc .

  • A inicialização é definitivamente systemd .

  • /etc/sysctl.d está vazio. /etc/sysctl.conf contém apenas comentários.

por MathematicalOrchid 14.04.2014 / 18:54

4 respostas

3

Inicialize com:

quiet loglevel=3

Para informações:

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

Após a verificação de inicialização (você deseja ver 3 como um primeiro número relatado):

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

Para mais informações sobre kernel.printk , consulte Descrição dos valores do kernel.printk .

printk pode ser substituído mais tarde no processo de inicialização por sysctl , geralmente após o processamento /etc/sysctl.conf ou /etc/sysctl.d/* (dependendo da sua distribuição e processo de inicialização).

Em seguida, dependendo do seu daemon de log, você pode precisar de mais ajustes. Por systemd você pode procurar em /etc/systemd/journald.conf .

    
por 14.04.2014 / 20:28
1

Se as mensagens tiverem números antes delas, estas são mensagens produzidas pelo Kernel do Linux. (O número significa o número de segundos desde que o sistema foi inicializado.) Para parar essas mensagens, inclua o parâmetro quiet em sua linha de comando do kernel. Você pode fazer isso editando um arquivo na partição / boot ou usando uma ferramenta de configuração fornecida pelo seu gerenciador de inicialização, por exemplo, GRUB. Isso também interromperá as mensagens quando o sistema for iniciado.

    
por 14.04.2014 / 20:00
1

Se a sugestão de Miroslav Koskar em relação ao kernel loglevel não ajudar (você pode usar 2 ou 1 em vez de 3, IMO), dê uma olhada em seu /etc/syslog.conf (ou rsyslog.conf ) para uma linha contendo /dev/console . Isso indica o nível de mensagens que são passadas para o console pelo registrador do sistema, o que talvez acontece se o kernel não estiver fazendo isso diretamente.

Se a linha estiver assim:

*.warn       /dev/console

Altere *.warn para *.crit ou *.emerg ou simplesmente comente. Para mais informações, consulte a documentação do seu syslog.

Como loglevel não funcionou e aparentemente você não tem syslogd (má idéia, BTW), o problema é presumivelmente que as configurações do printk são 6 4 1 7. O primeiro é o nível de log do console, e é isso que você precisa mudar. Você pode fazer isso como root de duas maneiras:

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

Você pode verificá-los com sysctl kernel.printk ou cat /proc/sys/kernel/printk . É muito improvável que as mensagens USB sejam CRITICAL (nível de log 2) e, se forem enviadas sem prioridade de qualquer módulo, elas usarão o padrão, que é o segundo dos quatro valores printk (neste caso, 4). / p>

Se isso funcionar para você, adicione um arquivo a /etc/sysctl.d/ com uma linha:

kernel.printk = 2 4 1 7

Eu não acho que você precisa de citações lá. Se esse diretório não existir, adicione uma linha a /etc/sysctl.conf , criando-a, se necessário. Para mais informações, consulte man sysctl.conf .

    
por 14.04.2014 / 22:25
0

Eu consegui resolver isso adicionando o seguinte comando a um dos meus scripts de inicialização:

klogconsole -l 3

Isso parece fazer o sistema calar a boca. (Pelo menos, depois do ponto em que o comando é executado.)

    
por 15.04.2014 / 13:18