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 / user-294952

sktpin's questions

Martin Hope
sktpin
Asked: 2021-09-10 02:03:47 +0800 CST

Existe uma opção de kernel para permitir que um aplicativo de espaço do usuário descubra dispositivos USB personalizados no host?

  • 1

Considere uma imagem Linux minimalista baseada em buildroot em algum computador de 1 PCB com uma porta de host USB.

Depois, há outro pequeno computador: um módulo de computação Raspberry Pi "CM3", a única conexão entre os dois é USB. Quando o CM3 tem um Linux rodando nele, ele atua como um dispositivo ethernet para comunicação.

Mas quando o CM3 precisa ser atualizado, um pino de entrada nele, alternado pela máquina buildroot, informa "modo de inicialização" e ele se tornará um dispositivo USB personalizado "BCM2710 Boot". O pessoal do Raspi então oferece um programa de espaço de usuário, usbboot aka rpiboot , para encontrar o dispositivo via VID e fazer upload de uma pequena imagem transformando-o em um dispositivo de armazenamento em massa.

Quando tento isso, conectando o USB CM3 a uma porta USB host "normal" do RaspberryPi, vejo isso com dmesg :

[16689.527482] usb 1-1.3: new high-speed USB device number 3 using xhci_hcd
[16689.657906] usb 1-1.3: config index 0 descriptor too short (expected 55, got 32)
[16689.658302] usb 1-1.3: New USB device found, idVendor=0a5c, idProduct=2764, bcdDevice= 0.00
[16689.658319] usb 1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[16689.658335] usb 1-1.3: Product: BCM2710 Boot
[16689.658350] usb 1-1.3: Manufacturer: Broadcom

O Rpiboot então encontra o dispositivo e envia aquela imagem especial mencionada. Então isso funciona.

Mas quando eu o conecto na minha máquina buildroot, só vejo isso:

[  597.725309] usb 3-1: new full-speed USB device number 4 using xhci-hcd
[  601.965304] usb 3-1: new high-speed USB device number 5 using xhci-hcd

Então parece ver que há alguma coisa USB nova, mas não vai mais longe. E o rpiboot espera para sempre em vez de encontrá-lo como no host Raspi. Portanto, parece que há uma ou mais opções de configuração do kernel Linux que não estão habilitadas na minha imagem buildroot, o que impede que isso funcione. Eu tive essa ideia porque, inicialmente, todas as coisas do gadget ethernet também não funcionaram e eu tive que ativar o CCETHER e algumas outras opções - mas não tenho ideia do que procurar com esse dispositivo não padrão aqui. Existem muitas opções CONFIG_USB_* não habilitadas que parecem pertencer a dispositivos específicos, mas nada como "personalizado" ou algo assim.

Qual é/são a(s) opção(ões) correspondente(s)?


Adicionado: uma visão de trechos classificados e combinados por linha (onde as mesmas opções) de ambas as configurações do kernel: eu removi tudo o que é a mesma configuração em ambos os lados, drivers de dispositivos específicos ou nada a ver com USB, para reduzir a lista em um quantidade justa. Eu passei por descrições curtas dessas opções do kernel em https://cateee.net/ , e até agora não vi nada que parecesse se encaixar na conta - mas não é dito que eu não ignorei ou interpretei mal algo ...

configRaspi4-Raspbian                           configBuildrootDevice
--------------------------------------------------------------------------------
CONFIG_HISI_HIKEY_USB is not set                
CONFIG_MEDIA_USB_SUPPORT=y                      
CONFIG_NOP_USB_XCEIV=y                          CONFIG_NOP_USB_XCEIV is not set
CONFIG_USB_ACM=m                                CONFIG_USB_ACM=y
CONFIG_USB_ADUTUX=m                             CONFIG_USB_ADUTUX is not set
CONFIG_USB_AIRSPY is not set                    
CONFIG_USB_AN2720=y                             
CONFIG_USB_ARMLINUX=y                           
CONFIG_USB_ATM=m                                
CONFIG_USB_BELKIN=y                             
CONFIG_USB_CDC_COMPOSITE=m                      CONFIG_USB_CDC_COMPOSITE is not set
CONFIG_USB_CONFIGFS_ACM=y                       CONFIG_USB_CONFIGFS_ACM is not set
CONFIG_USB_CONFIGFS_ECM_SUBSET=y                
CONFIG_USB_CONFIGFS_ECM=y                       CONFIG_USB_CONFIGFS_ECM is not set
                                                CONFIG_USB_CONFIGFS_ECM_SUBSET is not set
CONFIG_USB_CONFIGFS_F_FS=y                      CONFIG_USB_CONFIGFS_F_FS is not set
CONFIG_USB_CONFIGFS_F_HID=y                     CONFIG_USB_CONFIGFS_F_HID is not set
CONFIG_USB_CONFIGFS_F_LB_SS=y                   CONFIG_USB_CONFIGFS_F_LB_SS is not set
CONFIG_USB_CONFIGFS_F_UAC2=y                    
CONFIG_USB_CONFIGFS_NCM=y                       CONFIG_USB_CONFIGFS_NCM is not set
CONFIG_USB_CONFIGFS_OBEX=y                      CONFIG_USB_CONFIGFS_OBEX is not set
CONFIG_USB_CONFIGFS_RNDIS=y                     CONFIG_USB_CONFIGFS_RNDIS is not set
CONFIG_USB_CONFIGFS_SERIAL=y                    CONFIG_USB_CONFIGFS_SERIAL is not set
CONFIG_USB_CONFIGFS=m                           CONFIG_USB_CONFIGFS=y
CONFIG_USB_DEFAULT_PERSIST=y                    CONFIG_USB_DEFAULT_PERSIST is not set
CONFIG_USB_DWC2_DEBUG is not set                
CONFIG_USB_DWC2_DUAL_ROLE=y                     
CONFIG_USB_DWC2_HOST is not set                 
CONFIG_USB_DWC2_PCI is not set                  
CONFIG_USB_DWC2_PERIPHERAL is not set           
CONFIG_USB_DWC2_TRACK_MISSED_SOFS is not set    
CONFIG_USB_DWC2=m                               CONFIG_USB_DWC2 is not set
                                                CONFIG_USB_DWC3_DUAL_ROLE=y
                                                CONFIG_USB_DWC3_GADGET is not set
                                                CONFIG_USB_DWC3_HAPS=y
                                                CONFIG_USB_DWC3_HOST is not set
                                                CONFIG_USB_DWC3_OF_SIMPLE=y
                                                CONFIG_USB_DWC3_OTG is not set
CONFIG_USB_DWC3 is not set                      CONFIG_USB_DWC3=y
CONFIG_USB_DWCOTG=y                             
CONFIG_USB_ETH_EEM is not set                   CONFIG_USB_ETH_EEM=y
CONFIG_USB_ETH=m                                CONFIG_USB_ETH=y
CONFIG_USB_EZUSB_FX2=m                          CONFIG_USB_EZUSB_FX2 is not set
CONFIG_USB_F_ACM=m                              
CONFIG_USB_F_ECM=m                              CONFIG_USB_F_ECM=y
CONFIG_USB_F_EEM=m                              CONFIG_USB_F_EEM=y
CONFIG_USB_F_FS=m                               
CONFIG_USB_F_HID=m                              
CONFIG_USB_F_MASS_STORAGE=m                     CONFIG_USB_F_MASS_STORAGE=y
CONFIG_USB_F_NCM=m                              
CONFIG_USB_F_OBEX=m                             
CONFIG_USB_F_RNDIS=m                            CONFIG_USB_F_RNDIS=y
CONFIG_USB_F_SERIAL=m                           
CONFIG_USB_F_SS_LB=m                            
CONFIG_USB_F_SUBSET=m                           CONFIG_USB_F_SUBSET=y
CONFIG_USB_F_UAC2=m                             
CONFIG_USB_FEW_INIT_RETRIES is not set          
CONFIG_USB_G_ACM_MS=m                           CONFIG_USB_G_ACM_MS is not set
CONFIG_USB_G_HID=m                              CONFIG_USB_G_HID is not set
CONFIG_USB_G_MULTI_CDC is not set               
CONFIG_USB_G_MULTI_RNDIS=y                      
CONFIG_USB_G_MULTI=m                            CONFIG_USB_G_MULTI is not set
CONFIG_USB_G_SERIAL=m                           CONFIG_USB_G_SERIAL is not set
CONFIG_USB_GADGETFS=m                           CONFIG_USB_GADGETFS is not set
CONFIG_USB_GSPCA=m                              
CONFIG_USB_HIDDEV=y                             CONFIG_USB_HIDDEV is not set
CONFIG_USB_HSO=m                                
CONFIG_USB_LD=m                                 CONFIG_USB_LD is not set
CONFIG_USB_LIBCOMPOSITE=m                       CONFIG_USB_LIBCOMPOSITE=y
CONFIG_USB_MASS_STORAGE=m                       CONFIG_USB_MASS_STORAGE is not set
CONFIG_USB_MON=m                                CONFIG_USB_MON is not set
CONFIG_USB_NET_CDC_EEM=m                        CONFIG_USB_NET_CDC_EEM=y
CONFIG_USB_NET_CDC_MBIM=m                       CONFIG_USB_NET_CDC_MBIM is not set
CONFIG_USB_NET_CDC_NCM=m                        CONFIG_USB_NET_CDC_NCM is not set
CONFIG_USB_NET_CDC_SUBSET_ENABLE=m              
CONFIG_USB_NET_CDC_SUBSET=m                     CONFIG_USB_NET_CDC_SUBSET is not set
CONFIG_USB_NET_CDCETHER=m                       CONFIG_USB_NET_CDCETHER=y
CONFIG_USB_NET_RNDIS_HOST=m                     CONFIG_USB_NET_RNDIS_HOST is not set
CONFIG_USB_NET_RNDIS_WLAN=m                     
                                                CONFIG_USB_OTG_BLACKLIST_HUB is not set
                                                CONFIG_USB_OTG_FSM=y
                                                CONFIG_USB_OTG_WHITELIST is not set
CONFIG_USB_OTG is not set                       CONFIG_USB_OTG=y
CONFIG_USB_OTG_DISABLE_EXTERNAL_HUB is not set  
CONFIG_USB_OTG_PRODUCTLIST is not set           
CONFIG_USB_PWC=m                                
CONFIG_USB_RAW_GADGET is not set                
CONFIG_USB_ROLE_SWITCH=m                        CONFIG_USB_ROLE_SWITCH is not set
CONFIG_USB_SERIAL=m                             CONFIG_USB_SERIAL is not set
CONFIG_USB_SEVSEG=m                             CONFIG_USB_SEVSEG is not set
CONFIG_USB_TEST=m                               CONFIG_USB_TEST is not set
CONFIG_USB_TMC=m                                CONFIG_USB_TMC is not set
CONFIG_USB_U_ETHER=m                            CONFIG_USB_U_ETHER=y
CONFIG_USB_U_SERIAL=m                           
                                                CONFIG_USB_WUSB_CBAF is not set
CONFIG_USB_ZERO=m                               CONFIG_USB_ZERO is not set
linux linux-kernel
  • 1 respostas
  • 96 Views
Martin Hope
sktpin
Asked: 2019-01-24 04:43:46 +0800 CST

Como manter o IP estático funcionando

  • 0

Encontrei este site: clique em Primeiro tentei usar a forma não permanente via "adicionar endereço ip". Mas o endereço estático que eu atribuí não estaria mais acessível depois de um minuto ou mais, e isso é repetível. Então eu tentei a abordagem permanente descrita lá para o Ubuntu. Estou executando o "Ubuntu 14.04.5 LTS", embora uma versão reduzida e provavelmente um pouco modificada em uma placa Tegra TK1, executando um derivado do kernel NVIDIA L4T.

Então, em /etc/network/interfaces, que antes curiosamente continha apenas 2 linhas de comentário

# interfaces(5) file used by ifup(8) and ifdown(8)
# Include files from /etc/network/interfaces.d:

e nada mais, acrescentei:

auto eth1:1
iface eth1:1 inet static
address 10.0.10.55
netmask 255.255.0.0

(o sistema tem apenas uma eth1, não eth0)

Bem, reinicie e... não há esse endereço IP mostrado no ifconfig e não consigo acessá-lo. Ele lista, no entanto, para eth1:

inet6 addr: fe80::214:2dff:fe2f:c150/64 Scope:Link

O que pode estar errado? (Eu não pedi um endereço ipv6, de onde viria agora?)

networking
  • 1 respostas
  • 46 Views
Martin Hope
sktpin
Asked: 2018-11-10 09:46:55 +0800 CST

Por que não há /var/log/kern.log?

  • 1

Eu tenho um sistema embarcado rodando uma instalação slim do Buildroot Linux com kernel 3.10.105. Aparentemente, a maioria dos comandos vem do BusyBox aqui, e parece que nem sempre implementam a funcionalidade completa das contrapartes regulares... Gostaria de saber se o registro mais presistent simplesmente não é implementado aqui, ou talvez isso possa ser configurado?

Então, se eu executar htop, vejo que syslogd e klogd estão em execução. Posso ver mensagens recentes do kernel no arquivo /var/log/messages. No entanto, não há kern.log nessa pasta de log. Tudo o que está lá é: mensagens, resolv.conf, sshd e, em seguida, pastas: dbus, subsys.

Eu gostaria de inspecionar, após a reinicialização, o kern.log (ou qualquer arquivo equivalente) para ver o que aconteceu antes do sistema travar ao usar um determinado driver.

Posso fazer isso com as ferramentas BusyBox?

EDIT : Algumas notas devido a comentários:

Configuração: quando eu digito syslogd --help, ele menciona que " esta versão do syslogd ignora /etc/syslog.conf ". E de acordo com o htop, ele é executado com a opção -n, que de acordo com esta saída de ajuda significa "executar em primeiro plano". A única opção que um parâmetro de arquivo é: -O FILE, e diz que o padrão é /var/log/messages, então é o arquivo "live".

busybox syslog
  • 1 respostas
  • 5630 Views
Martin Hope
sktpin
Asked: 2018-06-14 04:07:59 +0800 CST

Reparar uEnv.txt do terminal U-Boot?

  • 3

Eu tenho um BeagleBone Black, com Debian 8.3, Linux 4.1.15-ti-rt-r43.

EDIT : O sistema está instalado no flash interno .

Modifiquei o /boot/uEnv.txt para carregar um arquivo dtb diferente, aparentemente com nome de arquivo errado, para que ele não inicialize no Linux.

Então eu conectei via pinos J1 / UART0 -> programa terminal no meu PC. Eu vejo que o U-Boot reclama que um arquivo não foi encontrado, então ele não inicia o Linux e me dá os comandos do U-Boot. O que foi listado depois de digitar "ajuda" não parecia muito útil.

É possível e viável reparar o uEnv.txt do meu console serial com comandos U-Boot - o que funcionaria... como? Ou, qual seria a melhor abordagem?


EDIT # 2 : Encontrando alguns recados úteis neste site, que não dizem exatamente, mas levam a uma direção útil: https://www.compulab.co.il/utilite-computer/wiki/index.php/Utilite_U-Boot_User_How -Para%27s descobri que posso ver uEnv.txt digitando no console do U-Boot: "ls mmc 1 boot", o comando ls no U-Boot precisa do nome do dispositivo + num, e aparentemente meu cartão SD é mmc0, o flash interno mmc1, ordem engraçada. Infelizmente, U-Boot não tem "gato", muito menos um editor aparentemente. Como uma criança com um braço de controle remoto tentando pegar um animal de pelúcia por algumas moedas, não consegue pegar meu arquivo, e está tão perto, argh!


EDIT # 3 : vi que tenho um arquivo de backup antigo de uEnv.txt em mmc1. Existe o comando U-Boot "load", para carregar um arquivo na memória, e "save", para salvar um arquivo. Você tem que especificar o endereço e tamanho. Tamanho do arquivo que você vê no comando "ls mmc 1 boot". Observando o mapa de memória na página 35 deste slide: https://www.slideshare.net/chrissimmonds/embedded-linux-quick-start-guide , a RAM começa em 0x80000000 . Supondo que, se apenas o U-Boot estiver na RAM, onde esperamos que não haja nada em, digamos, 384 Mbytes, tentei carregar o arquivo para 98000000 e salvar a partir daí, mas salvar retornou "incapaz de gravar arquivo". Que pena.

debian u-boot
  • 2 respostas
  • 4639 Views
Martin Hope
sktpin
Asked: 2018-06-12 06:12:24 +0800 CST

Por que o LXQT Autostart não faz nada?

  • 3

Eu tenho um BeagleBone Black aqui, rodando Debian 8.3, Linux 4.1.15-ti-rt-r43. A área de trabalho é LXQT.

Após a inicialização, quero executar um arquivo .sh - quando o ambiente de desktop estiver pronto, pois esse arquivo, após alterar o caminho e definir algumas variáveis, chama mono para iniciar um programa baseado em GUI.

Usando o "menu iniciar":

Preferências -> Configurações do LXQt -> Configurações de sessões -> Autostart

Eu adicionei uma entrada, primeiro em "Global Autostart", depois em "LXQt Autostart" (apenas uma das duas caixas marcadas por vez). Eu especifiquei, em "comando", o caminho para o meu script .sh, através do botão "Pesquisar...", ou seja, não é possível digitar errado. Eu tentei com ambos, "Aguardar bandeja do sistema" marcado e desmarcado. Clique em "fechar" e reinicie a máquina através do menu Iniciar a cada tentativa.

Depois que a área de trabalho é iniciada, nada mais acontece. O script funciona bem no prompt de comando ssh remote*, no entanto - o aplicativo é iniciado. Além disso, copiá-lo para a área de trabalho e clicar nele - funciona.

_* o arquivo .sh contém a linha "export DISPLAY=:0" como foi usado pela primeira vez para iniciar via ssh para iniciar um aplicativo GUI. Eu comentei para ver se isso muda alguma coisa aqui, não muda.

EDIT : Então eu criei manualmente um arquivo .desktop em ~/.config/autostart - observando os arquivos .desktop LXQt feitos nessa pasta por mim clicando na interface do usuário conforme descrito acima. No meu arquivo, especifiquei os caminhos etc. para iniciar meu script .sh e configurei uma opção extra para true: "Terminal", que especifica que o programa de inicialização automática deve ser executado em um terminal. O que isso fez foi me mostrar - sim, de fato, algoé iniciado após a inicialização / carregamento do ambiente de trabalho, porque o terminal está visível, ou seja, meu arquivo de inicialização automática não é ignorado. Mas os comandos "echo" no meu script .sh não aparecem nesse terminal, nem meu aplicativo mono é iniciado. Se eu abrir outro shell remoto e copiar e colar o caminho que dei no arquivo .desktop autostart em "Exec", ele inicia meu aplicativo como suposto - então o caminho está correto.

Então, o que está acontecendo lá? A área de trabalho do LXQt obviamente encontra meu arquivo, tenta iniciar automaticamente, mas não faz nada. Causas Possíveis? Eu pensei (sem saber como tudo isso funciona sob o capô), talvez o mono/GUI ainda não esteja pronto, mesmo que a área de trabalho tenha carregado, por algum motivo engraçado, e eu coloquei um eco "dormindo ...", sono 30s , echo "chamando aplicativo mono..." antes de chamar o aplicativo mono no meu arquivo .sh que deveria iniciar automaticamente. Nada disso é visível no terminal que agora abre na inicialização e não ajuda.

debian mono
  • 2 respostas
  • 5468 Views

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