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 / ubuntu / Perguntas / 1273700
Accepted
Stealing
Stealing
Asked: 2020-09-09 19:55:34 +0800 CST2020-09-09 19:55:34 +0800 CST 2020-09-09 19:55:34 +0800 CST

Habilite SPI e I2C no Ubuntu 20.04 Raspberry Pi

  • 772

Usando Rasbian, existe a ferramenta conveniente rasi-configpara ativar/desativar SPI e I2C em um pi de framboesa. No entanto, não existe essa ferramenta para o Ubuntu e nenhuma maneira direta de habilitá-los (tanto quanto eu posso pesquisar no Google). Existem patches como este onde alguns tiveram sucesso, mas não parece funcionar para 20.04. Estou tentando habilitar o SPI para seguir este tutorial . Quando executo o script python, sempre recebo:

Traceback (most recent call last):
  File "testwind.py", line 8, in <module>
    spi.open(0,0)
PermissionError: [Errno 13] Permission denied

Existe alguma documentação oficial para o Ubuntu Server 20.04 para raspberry pi para habilitar SPI e I2C? Desde já, obrigado.

python hardware raspberrypi 20.04
  • 3 3 respostas
  • 12888 Views

3 respostas

  • Voted
  1. Best Answer
    MvZ
    2020-09-10T11:52:45+08:002020-09-10T11:52:45+08:00

    Update, um guia passo a passo para habilitar o I2C:

    Na semana passada, minhas últimas peças chegaram, então terminei o hardware e configurei o Ubuntu 20.04. Eu estava prestes a começar a mexer no I2C, quando Thomas comentou minha resposta original, vinculando este artigo escrito por Alexander Rüedlinger . Com a peça que faltava em mãos, instalar o I2C foi muito fácil. O abaixo deve ser adaptável ao SPI também.

    1. Navegue até raspi-config em archive.raspberrypi.org. Escolha a versão mais recente.

    2. Baixe esse arquivo para /tmp e tente instalar usando o dpkg.

      wget https://archive.raspberrypi.org/debian/pool/main/r/raspi-config/raspi-config_*INSERT DATE*_all.deb -P /tmp

      sudo dpkg -i /tmp/raspi-config_*INSERT DATE*_all.deb

    3. Isso resulta em um erro, relatando dependências ausentes. Leia a saída e instale as dependências:

      sudo apt-get install *INSERT DEPENDENCIES*

      Isso estragou a instalação do alsa-utils, uma das dependências. Para corrigir, execute:

      sudo apt-get -fy

    4. Agora instale o raspi-config:

      sudo dpkg -i /tmp/raspi-config_*INSERT DATE*_all.deb

    5. Execute raspi-config, navegue até 'Opções de interface', habilite I2C.

    6. Instale pacotes relevantes. Você vai querer i2c-toolspelo menos, mas eu recomendo ficar libi2c-devbem e python3-smbusse esse for o seu idioma de escolha.

    7. Tente sondar o barramento como usuário e root:

      sudo i2cdetect -y 1(ou 0, o número do barramento I2C depende do hardware)

      Se isso fornecer uma matriz de endereços, o I2C está ativado e funcionando.

      i2cdetect -y 1(ou 0)

      Se isso gerar um erro de permissão, execute a próxima etapa. Caso contrário, pule-o.

    8. Crie um grupo de usuários I2C, aplique-o ao barramento e adicione seu usuário a este grupo:

      sudo groupadd i2c(o grupo pode já existir)

      sudo chown :i2c /dev/i2c-1(ou i2c-0)

      sudo chmod g+rw /dev/i2c-1

      sudo usermod -aG i2c *INSERT YOUR USERNAME*

      Efetue logout e login. Eu estava conectado via extensão SSH do código VS e precisava reiniciar. Em seguida, tente novamente:

      i2cdetect -y 1

    Alguns comentários:

    As instruções fornecidas por anvoice nesta questão foram essenciais, mas as dependências reais estão alguns anos desatualizadas. Portanto, sugiro que você tente a etapa 1 e leia a saída do dpkg para adaptar as dependências à sua versão do raspi-config.

    Parece que o raspi-config pode não ser necessário, mas você só precisa adicionar o dtparam=i2c_arm=onsinalizador em /boot/config.txt (veja a documentação oficial ). Eu não tentei (ainda). Se você quiser tentar, sudo nano /boot/config.txtadicione o sinalizador em uma nova linha, CTRL-X, confirme com Y e comece na etapa #6.

    Resposta original:

    Eu estive olhando para um problema semelhante nos últimos dias. Parece não haver suporte oficial, pacotes não oficiais parecem estar desatualizados.

    Instalando o raspi-config

    Dado que o RasPi OS e o Ubuntu são baseados no Debian, pode funcionar facilmente. Eu formulei a seguinte abordagem para mim mesmo, mas talvez não consiga testá-la nas próximas semanas:

    • Vou tentar a abordagem sugerida por uma voz na pergunta que você vinculou.
    • Observe que sua resposta está vinculada a este script de EmilGus no Github, especifica várias dependências.
    • Conforme sugerido por nc4pk nesta pergunta , pegarei a versão mais recente do raspi-config do repositório oficial do RasPi.
    • Acho que está nesta pasta.

    Problema de permissões

    Então, isso é o processo de instalação, que você já deve ter acertado. A partir do erro, acho que o usuário em execução testwind.pyprecisa de permissões adicionais para acessar essa interface - ou que a interface deve ser acessada de maneira diferente no Ubuntu. Espero que alguém possa entrar em contato com isso.

    Contexto

    Estou planejando um projeto que implementa SLAM em um RasPi 4 de 8GB. Estou usando dois Arduinos como GPIO adicionais e para executar loops de controle de HW: Ou seja , PID para controlar PWM , para que RPM seja aproximadamente constante mesmo que o terreno seja diferente. Usando I2C com o RasPi como mestre; não olhou para SPI ainda.

    Dado que os algoritmos SLAM têm algumas implementações mais intensivas de memória (mas menos pesadas de computação), optei pelo novo RasPi 4 de 8 GB. O limite de memória de 3 GB por processo pode atrapalhar, então executarei o Ubuntu 20.04 LTS servidor de 64 bits.

    Se eu não conseguir fazê-lo funcionar, testarei o I2C no Raspberry Pi OS. Assim que eu tiver um script de teste funcionando, voltarei para o Ubuntu.

    • 5
  2. Faiyaz Haider
    2020-10-25T21:12:37+08:002020-10-25T21:12:37+08:00

    Na minha experiência com o servidor Ubuntu 20.04 no RPI4, tanto o I2C quanto o SPI estão habilitados por padrão. Verifique o arquivo /boot/firmware/syscfg.txt e veja se você tem as seguintes linhas:

    dtparam=i2c_arm=on
    dtparam=spi=on
    

    Se não, talvez você possa anexá-los em /boot/firmware/usercfg.txt e reiniciar, e espero que funcione. Se isso não funcionar, talvez faça sudo apt update && sudo full-upgrade -ye veja se há alguma atualização de distribuição necessária.

    • 1
  3. 4ndr34
    2021-06-16T03:55:12+08:002021-06-16T03:55:12+08:00

    AFAIK e como Faiyaz Haider já afirmou que tanto o SPI quanto o I2C já estão ativos no Ubuntu Server 20.04 em um RPi 4. Seu problema parece muito mais relacionado a um problema de permissão do que um SPI desabilitado.

    Sobre SPI e permissões, verifique as permissões do spidevs:

     ls -la /dev/spidev*
    

    Se você vir esse tipo de permissão:

    crw-------
    

    então você tem que alterar suas permissões de acordo para torná-los rw para o usuário que você deseja que possa acessar o SPI. Você pode fazer desta forma:

    sudo groupadd spiuser
    sudo usermod -aG spiuser <yourusername>
    sudo chown :spiuser <put the spi device name here>
    sudo chmod g+rw <put the spi device name here>
    

    Você tem que repetir as duas últimas linhas para cada dispositivo spi, você pode obter os nomes dos dispositivos spi listando-os usando o comando ls acima. Isso deve resolver seu problema de permissão.

    • 1

relate perguntas

Sidebar

Stats

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

    Existe um comando para listar todos os usuários? Também para adicionar, excluir, modificar usuários, no terminal?

    • 9 respostas
  • Marko Smith

    Como excluir um diretório não vazio no Terminal?

    • 4 respostas
  • Marko Smith

    Como descompactar um arquivo zip do Terminal?

    • 9 respostas
  • Marko Smith

    Como instalo um arquivo .deb por meio da linha de comando?

    • 11 respostas
  • Marko Smith

    Como instalo um arquivo .tar.gz (ou .tar.bz2)?

    • 14 respostas
  • Marko Smith

    Como listar todos os pacotes instalados

    • 24 respostas
  • Martin Hope
    Flimm Como posso usar o docker sem sudo? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    led-Zepp Como faço para salvar a saída do terminal em um arquivo? 2014-02-15 11:49:07 +0800 CST
  • Martin Hope
    ubuntu-nerd Como descompactar um arquivo zip do Terminal? 2011-12-11 20:37:54 +0800 CST
  • Martin Hope
    TheXed Como instalo um arquivo .deb por meio da linha de comando? 2011-05-07 09:40:28 +0800 CST
  • Martin Hope
    Ivan Como listar todos os pacotes instalados 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    David Barry Como determino o tamanho total de um diretório (pasta) na linha de comando? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher "Os seguintes pacotes foram retidos:" Por que e como resolvo isso? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford Como os PPAs podem ser removidos? 2010-07-30 01:09:42 +0800 CST

Hot tag

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

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