AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / unix / Perguntas / 425280
Accepted
Multisync
Multisync
Asked: 2018-02-20 13:19:24 +0800 CST2018-02-20 13:19:24 +0800 CST 2018-02-20 13:19:24 +0800 CST

O sistema falha ao inicializar ao fornecer o parâmetro de inicialização `console` para habilitar o acesso serial

  • 772

O que eu quero realizar

Gostaria de ter acesso de terminal remoto ao meu NAS (que executa o Debian Stretch) por meio de um adaptador USB-RS232. Como esta máquina deve ser sem cabeça, também gostaria de ver o processo de inicialização na linha serial.

(Ainda assim, para avaliar esse problema, há uma tela conectada na porta HDMI no momento.)

As ações que tomei

Acrescentei console=ttyUSB0à lista de argumentos do kernel. Ao inicializar, isso faz com que meu sistema congele.

As últimas linhas da saída de boot são: (Bootloader é extlinux)

Loading /vmlinuz... ok
Loading /initrd.img...ok
Probing EDD (edd=off to disable)... ok

Ao não usar o referido parâmetro do kernel, a máquina está inicializando sem problemas. A partir daí, eu poderia realizar o acesso ao terminal serial facilmente executando

systemctl enable [email protected]
systemctl start [email protected]

no servidor remoto e

screen -F /dev/ttyUSB0 9600

na minha máquina local. Portanto, os adaptadores USB-RS232 estão funcionando corretamente. O servidor é um Intel NUC 5CPYH com chipset Braswell e roda um Linux 4.9.0-4-amd64kernel debian.

Minha pergunta

Quais ações devo tomar para fazê-lo funcionar?

Editar № 1

Ao fornecer console=tty0 console=ttyUSB0,9600n8como parâmetros de inicialização, a máquina inicializa bem, mas ainda não consigo conectar à porta serial. Além disso, systemctl status [email protected]diz que o serviço é loadede inactive (dead). Eu esperava que estivesse instalado e funcionando então.

Editar № 2

Eu fiz um pouco de pesquisa e descobri que meu initramfs estava sem os módulos relevantes do kernel. Consegui entrar no shell initramfs fornecendo break=initcomo parâmetro do kernel e vi que não havia /dev/ttyUSB0dispositivo.

Eu adicionei cp210x, pl2303e depois ftdi_siode /etc/initramfs-tools/modulesrecriar o initramfs, vi que agora existe um /dev/ttyUSB0dispositivo no shell initramfs.

Ainda assim, não consegui me conectar da minha outra máquina. Então, tentei iniciar o getty nesse dispositivo manualmente:

# /sbin/getty -L 9600 /dev/ttyUSB0 vt100
getty: setsid: Operation not permitted
# su root -c "/sbin/getty -L 9600 /dev/ttyUSB0 vt100"
sh: su: not found

Então é onde estou agora.

linux debian
  • 2 2 respostas
  • 2183 Views

2 respostas

  • Voted
  1. Rui F Ribeiro
    2018-02-20T13:37:42+08:002018-02-20T13:37:42+08:00

    Seu sistema não está congelando. Você acabou de direcionar TODA a sua saída para o console serial.

    Passando os argumentos do console para o kernel, você precisa incluir o console local e a interface serial.

    Veja TLDP - Remote Serial Console HOWTO - Capítulo 5. Configure o kernel do Linux

    Figura 5-2. Parâmetros de kernel recomendados, PCs com placa de vídeo

    console=tty0 console=ttyS0,9600n8
    

    As mensagens do kernel aparecerão no primeiro terminal virtual e na porta serial. As mensagens do sistema init e do logger do sistema aparecerão apenas na primeira porta serial. Isso pode ser um pouco confuso ao olhar para o monitor conectado: a máquina parecerá inicializar e, em seguida, travar. Não entre em pânico, o sistema init foi iniciado, mas agora está imprimindo mensagens para a porta serial, mas não está imprimindo nada na tela. Se um getty tiver sido configurado, um prompt de login: aparecerá eventualmente no monitor conectado.

    Para PCs sem placa de vídeo, este COMO FAZER sugere os parâmetros do kernel:

    Figura 5-3. Parâmetros de kernel recomendados, PCs sem placa de vídeo

    console=ttyS0,9600n8
    

    Esses parâmetros são passados ​​para o kernel de inicialização pelo carregador de inicialização. Em seguida, configuraremos o gerenciador de inicialização usado pela instalação do Linux para passar os parâmetros do console para o kernel.

    • 3
  2. Best Answer
    Michael
    2021-07-29T00:07:19+08:002021-07-29T00:07:19+08:00

    Atualmente, o Debian não constrói seu kernel Linux com CONFIG_USB_SERIAL_CONSOLE=y, que é necessário para que esse recurso funcione.

    O relatório de bug correspondente é https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=868352

    Depois de construir meu próprio kernel com CONFIG_USB_SERIAL_CONSOLE=y(veja https://kernel-team.pages.debian.net/kernel-handbook/ch-common-tasks.html#s-common-official ), também tive que incluir o driver serial FTDI para o meu adaptador no initrd:

    # echo ftdi_sio >> /etc/initramfs-tools/modules
    # update-initramfs -u
    

    Por fim, ajustei /etc/default/grubpara ler:

    GRUB_CMDLINE_LINUX_DEFAULT="panic=10 panic_on_oops=1 console=tty0 console=ttyUSB0,115200"
    

    … e correu update-grub.

    Depois disso, vejo com êxito as mensagens de inicialização e posso fazer login por meio do serviço serial-getty@ttyUSB0 iniciado automaticamente.

    • 1

relate perguntas

  • astyle não altera a formatação do arquivo de origem

  • Recebendo e-mail em um novo Debian fresco

  • Debian Stretch: gnome-software segfault em libgs_plugin_systemd-updates.so

  • Passe o sistema de arquivos raiz por rótulo para o kernel do Linux

  • Como digitar ü no Pinyin IME?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Como exportar uma chave privada GPG e uma chave pública para um arquivo

    • 4 respostas
  • Marko Smith

    ssh Não é possível negociar: "nenhuma cifra correspondente encontrada", está rejeitando o cbc

    • 4 respostas
  • Marko Smith

    Como podemos executar um comando armazenado em uma variável?

    • 5 respostas
  • Marko Smith

    Como configurar o systemd-resolved e o systemd-networkd para usar o servidor DNS local para resolver domínios locais e o servidor DNS remoto para domínios remotos?

    • 3 respostas
  • Marko Smith

    Como descarregar o módulo do kernel 'nvidia-drm'?

    • 13 respostas
  • Marko Smith

    apt-get update error no Kali Linux após a atualização do dist [duplicado]

    • 2 respostas
  • Marko Smith

    Como ver as últimas linhas x do log de serviço systemctl

    • 5 respostas
  • Marko Smith

    Nano - pule para o final do arquivo

    • 8 respostas
  • Marko Smith

    erro grub: você precisa carregar o kernel primeiro

    • 4 respostas
  • Marko Smith

    Como baixar o pacote não instalá-lo com o comando apt-get?

    • 7 respostas
  • Martin Hope
    rocky Como exportar uma chave privada GPG e uma chave pública para um arquivo 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Wong Jia Hau ssh-add retorna com: "Erro ao conectar ao agente: nenhum arquivo ou diretório" 2018-08-24 23:28:13 +0800 CST
  • Martin Hope
    Evan Carroll status systemctl mostra: "Estado: degradado" 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim Como podemos executar um comando armazenado em uma variável? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S Por que /dev/null é um arquivo? Por que sua função não é implementada como um programa simples? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 Como ver as últimas linhas x do log de serviço systemctl 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - pule para o final do arquivo 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla Por que verdadeiro e falso são tão grandes? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis Substitua a string em um arquivo de texto enorme (70 GB), uma linha 2017-12-30 06:58:33 +0800 CST
  • Martin Hope
    Bagas Sanjaya Por que o Linux usa LF como caractere de nova linha? 2017-12-20 05:48:21 +0800 CST

Hot tag

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve