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 / 793124
Accepted
barak
barak
Asked: 2025-03-30 01:46:00 +0800 CST2025-03-30 01:46:00 +0800 CST 2025-03-30 01:46:00 +0800 CST

Falha ao fazer SSH em um DE1-SoC, embora pareça que todas as dependências foram atendidas

  • 772

Estou seguindo o guia da Altera para executar Linux na placa DE1-SoC, especificamente a seção 5.3 - Instalando o driver.

As instruções fornecidas no guia são para um host Windows, e estou em um host Linux (atualmente não tenho nenhum host Windows disponível para uso permanente). Estou seguindo as instruções, mas não consigo fazer ssh no dispositivo, e esgotei todos os meus esforços tentando solucionar o problema.

$ uname -r
5.15.0-124-generic

Para formar uma linha de base, na inicialização do host, antes mesmo de conectar a placa via USB:

$ ls -al /lib/modules/"$(uname -r)"/kernel/drivers/usb/serial/usbserial.ko
-rw-r--r-- 1 root root 116161 Sep 27  2024 /lib/modules/5.15.0-124-generic/kernel/drivers/usb/serial/usbserial.ko
$ ls -al /lib/modules/"$(uname -r)"/kernel/drivers/usb/serial/cp210x.ko
-rw-r--r-- 1 root root 79865 Sep 27  2024 /lib/modules/5.15.0-124-generic/kernel/drivers/usb/serial/cp210x.ko

$ lsmod | grep cp210x
$ sudo modprobe usbserial
$ sudo modprobe cp210x
$ lsmod | grep cp210x
cp210x                 40960  0
usbserial              57344  1 cp210x

Significa que carreguei o driver com sucesso.

$ dmesg | grep -i usb
...
[   30.186227] usb 2-3: current rate 16000 is different from the runtime rate 48000
[  124.301044] usbcore: registered new interface driver usbserial_generic
[  124.301067] usbserial: USB Serial support registered for generic
[  128.825043] usbcore: registered new interface driver cp210x
[  128.825069] usbserial: USB Serial support registered for cp210x

Correspondente às cargas de cima.

$ dmesg | grep -i tty
[    0.006788] ACPI: SSDT 0x0000000074487000 002357 (v02 ALASKA TbtTypeC 00000000 INTL 20200717)
[    0.117362] printk: console [tty0] enabled
[    0.401844] 00:01: ttyS0 at I/O 0x3f8 (irq = 4, base_baud = 115200) is a 16550A
$ lsusb
...
$ ls /dev/tty*
...

$ lsusbtraz um monte de dispositivos e $ ls /dev/tty*lista um monte de terminais. A placa não está aparecendo, é claro, ela está desconectada, pois estou formando a linha de base.

Agora conecto a placa e a ligo.

$ dmesg | grep -i usb
...
[  128.825069] usbserial: USB Serial support registered for cp210x
[  244.712211] usb 1-1: new high-speed USB device number 5 using xhci_hcd
[  244.860515] usb 1-1: New USB device found, idVendor=09fb, idProduct=6810, bcdDevice= 0.01
[  244.860527] usb 1-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0

idVendor e idProduct estão identificados corretamente.

$ dmesg | grep -i tty[    0.006788] ACPI: SSDT 0x0000000074487000 002357 (v02 ALASKA TbtTypeC 00000000 INTL 20200717)
[    0.117362] printk: console [tty0] enabled
[    0.401844] 00:01: ttyS0 at I/O 0x3f8 (irq = 4, base_baud = 115200) is a 16550A

Nada mudou.

$ lsusb
...
Bus 001 Device 005: ID 09fb:6810 Altera

Esta linha é adicionada.

$ ls /dev/tty* Exibe exatamente a mesma lista - nada mudou.

Como mencionado acima, estou sem ideias. Agradeceria qualquer tipo de ajuda, para que eu possa fazer ssh para a placa e começar a comunicação entre o núcleo ARM e o FPGA.

ssh
  • 1 1 respostas
  • 59 Views

1 respostas

  • Voted
  1. Best Answer
    telcoM
    2025-03-30T05:09:17+08:002025-03-30T05:09:17+08:00

    Um PuTTY moderno não é apenas um cliente SSH, ele também pode funcionar como um emulador de terminal de porta serial - e as instruções que você está seguindo exigem que ele seja usado especificamente no modo de porta serial.

    Ao contrário do PuTTY, o OpenSSH não tem um modo de acesso de porta serial, então você não pode usá-lo para fazer o equivalente Linux do capítulo 5.3 do guia Altera que você vinculou : é impossível fazer com o OpenSSH. No entanto, você pode usar uma versão Linux do PuTTY, ou qualquer outra ferramenta de emulador de terminal serial disponível no Linux, como minicom, picocom, ou mesmo o old-school cu.

    Mas primeiro, você precisará usar o driver correto. A maioria dos designs de chip adaptador USB para serial (ou em outras palavras, USB UART) usam protocolos específicos do fornecedor, e cp210xo módulo de driver é para designs de chip adaptador USB para serial da Silicon Labs . O documento que você vinculou indica que o chip adaptador (ou um design de adaptador incorporado dentro de um chip maior) usado na placa DE1-SoC é da Future Technology Devices International (= ftdichip.com, ou FTDI para abreviar). O módulo para adaptadores USB para serial feito pela FTDI é ftdi_sio.

    No entanto, a maioria dos chips adaptadores USB para serial/designs incorporados permitem fácil personalização dos IDs de fornecedor e produto USB. No seu caso, o lsusbresultado indica que o adaptador foi personalizado para usar o ID de fornecedor 09fbe um ID de produto da Altera 6810.

    Se você executar, sudo modinfo ftdi_sio | grep -i 09fbobterá uma série de linhas como esta:

    alias:          usb:v09FBp602Ed*dc*dsc*dp*ic*isc*ip*in03*
    alias:          usb:v09FBp602Ed*dc*dsc*dp*ic*isc*ip*in02*
    alias:          usb:v09FBp602Ed*dc*dsc*dp*ic*isc*ip*in01*
    alias:          usb:v09FBp602Dd*dc*dsc*dp*ic*isc*ip*in02*
    alias:          usb:v09FBp602Dd*dc*dsc*dp*ic*isc*ip*in01*
    [...]
    

    Ele indica que o ftdi_siodriver está programado para reconhecer alguns IDs de produto sob o ID do fornecedor da Altera: a v09FBparte é o ID do fornecedor da Altera, e a próxima p????parte é o ID do produto, respectivamente. No entanto, o ID do produto 6810não está listado lá (ainda?), e então o módulo não será carregado automaticamente ao conectar o DE1-SoC... a menos que demos uma ajudinha ao sistema.

    No seu host Linux, crie um arquivo chamado /etc/modprobe.d/DE1-SoC.conf(ou qualquer nome de arquivo que você quiser, desde que esteja no diretório correto e o nome termine com *.conf) e escreva nele as seguintes linhas:

    alias usb:v09FBp6810* ftdi_sio
    install ftdi_sio /sbin/modprobe -i ftdi_sio && /bin/echo 09fb 6810 > /sys/bus/usb-serial/drivers/ftdi_sio/new_id
    

    A primeira linha ensinará o kernel a carregar automaticamente o ftdi_siodriver quando ele vir um dispositivo USB com a combinação de ID de fornecedor:produto 09fb:6810, e a segunda linha instruirá o ftdi_siomódulo a assumir o controle de qualquer dispositivo com essas IDs de fornecedor e produto, partindo do princípio de que o protocolo USB para serial do FTDI também deve funcionar com esses dispositivos.

    Após criar o arquivo, reinicie o sistema ou execute:

    sudo udevadm control --reload
    

    e desconecte e reconecte a conexão USB à placa DE1-SoC.

    Agora o sistema deve mostrar automaticamente um /dev/ttyUSB0dispositivo assim que o DE1-SoC for conectado e ligado. Agora você está pronto para iniciar seu programa emulador de terminal.


    Se você usa uma versão Linux do PuTTY, as instruções no guia Altera que você vinculou são aplicáveis ​​quase como estão. A única diferença é que, após selecionar Serialnos Connection Typebotões de opção, você deve digitar /dev/ttyUSB0no Serial linecampo, em vez de COM3.

    Se você é mais do tipo de pessoa que usa linha de comando, talvez queira usar picocom:

    picocom -b 115200 /dev/ttyUSB0
    

    Pressionar Control+ Xsairá de picocom.

    Outra alternativa de linha de comando seria cu:

    cu -l /dev/ttyUSB0 -s 115200
    

    Para sair cu, pause por um segundo e digite ~.(til, depois ponto final).

    minicomé algo entre PuTTY e picocom/ cuem complexidade: um programa em modo texto, mas com uma interface de menu e mais recursos do que picocomou cu. Para instruções sobre como usar minicom, veja estes links:

    https://wiki.emacinc.com/wiki/Getting_Started_With_Minicom

    https://www.cyberciti.biz/tips/connect-soekris-single-board-computer-using-minicom.html

    • 3

relate perguntas

  • Por que o utilitário ssh é considerado um pty?

  • Auto-SSH funciona manualmente, mas não em segundo plano

  • Execute o aplicativo X remotamente, execute a GUI no host remoto [fechado]

  • rsync porta 22 e 873 uso

  • Aborto repentino do SCP: tubo quebrado, código de autenticação de mensagem incorreto

Sidebar

Stats

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

    Possível firmware ausente /lib/firmware/i915/* para o módulo i915

    • 3 respostas
  • Marko Smith

    Falha ao buscar o repositório de backports jessie

    • 4 respostas
  • Marko Smith

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

    • 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

    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
    user12345 Falha ao buscar o repositório de backports jessie 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl Por que a maioria dos exemplos do systemd contém WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • 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
    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

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