Erro do compilador

Página inicial Fóruns OSPi Erro do compilador

  • Este tópico contém 4 respostas, 2 usuários e foi atualizado pela última vez ha 2 anos por www.strapetz.
A visualizar 5 artigos - de 1 a 5 (de um total de 5)
  • autor
    Artigos
  • #32193
    www.strapetz
    Participante

    Olá,

    depois de reinstalar o Raspian Buster e depois de uma atualização

    > sudo apt update && sudo apt upgrade

    depois disso

    > sudo apt raspi-config

    O i2c está ativado nas interfaces.

    Instruções de lá: https://developer-blog.net/raspberry-pi-i2c-activate/ seguido e o seguinte cmd mostra o seguinte (atenção visível apenas com 1)

    > sudo i2cdetect -y 1
    0 1 2 3 4 5 6 7 8 9 a b c d e f
    00: — — — — — — — —
    10: — — — — — — — — — — — — — — — —
    20: — — — — — — — — — — — — — — — —
    30: — — — — — — — — — — — — — — — —
    40: — — — — — — — — 48 49 — — — — — —
    50: — — — — — — — — — — — — — — — —
    60: — — — — — — — — — — — — — — — —
    70: — — — — — — — —

    infelizmente mostra

    > sudo ./updater.sh

    Compilando firmware OSPi…
    encontrado ADS1115
    /usr/bin/ld: /tmp/ccY778qj.o: na função `flow_poll()’:
    /home/wilhelm/OpenSprinkler-Firmware/main.cpp:109: referência indefinida para `digitalRead(int)’
    /usr/bin/ld: /tmp/ccGGSA5l.o: na função `OpenSprinkler::begin()’:
    /home/wilhelm/OpenSprinkler-Firmware/OpenSprinkler.cpp:944: referência indefinida para `pinMode(int, unsigned char)’
    /usr/bin/ld: /home/wilhelm/OpenSprinkler-Firmware/OpenSprinkler.cpp:946: referência indefinida para `digitalWrite(int, unsigned char)’
    /usr/bin/ld: /home/wilhelm/OpenSprinkler-Firmware/OpenSprinkler.cpp:947: referência indefinida para `pinMode(int, unsigned char)’
    /usr/bin/ld: /home/wilhelm/OpenSprinkler-Firmware/OpenSprinkler.cpp:948: referência indefinida para `digitalWrite(int, unsigned char)’
    /usr/bin/ld: /home/wilhelm/OpenSprinkler-Firmware/OpenSprinkler.cpp:950: referência indefinida para `pinMode(int, unsigned char)’
    /usr/bin/ld: /home/wilhelm/OpenSprinkler-Firmware/OpenSprinkler.cpp:959: referência indefinida para `pinMode(int, unsigned char)’
    /usr/bin/ld: /home/wilhelm/OpenSprinkler-Firmware/OpenSprinkler.cpp:977: referência indefinida para `digitalWrite(int, unsigned char)’
    /usr/bin/ld: /home/wilhelm/OpenSprinkler-Firmware/OpenSprinkler.cpp:979: referência indefinida para `pinMode(int, unsigned char)’
    /usr/bin/ld: /home/wilhelm/OpenSprinkler-Firmware/OpenSprinkler.cpp:981: referência indefinida para `pinMode(int, unsigned char)’
    /usr/bin/ld: /home/wilhelm/OpenSprinkler-Firmware/OpenSprinkler.cpp:1002: referência indefinida para `pinMode(int, unsigned char)’
    /usr/bin/ld: /home/wilhelm/OpenSprinkler-Firmware/OpenSprinkler.cpp:1003: referência indefinida para `digitalWrite(int, unsigned char)’
    /usr/bin/ld: /tmp/ccGGSA5l.o: na função `OpenSprinkler::apply_all_station_bits()’:
    /home/wilhelm/OpenSprinkler-Firmware/OpenSprinkler.cpp:1311: referência indefinida para `digitalWrite(int, unsigned char)’
    /usr/bin/ld: /home/wilhelm/OpenSprinkler-Firmware/OpenSprinkler.cpp:1323: referência indefinida para `digitalWrite(int, unsigned char)’
    /usr/bin/ld: /home/wilhelm/OpenSprinkler-Firmware/OpenSprinkler.cpp:1325: referência indefinida para `digitalWrite(int, unsigned char)’
    /usr/bin/ld: /home/wilhelm/OpenSprinkler-Firmware/OpenSprinkler.cpp:1329: referência indefinida para `digitalWrite(int, unsigned char)’
    /usr/bin/ld: /tmp/ccGGSA5l.o:/home/wilhelm/OpenSprinkler-Firmware/OpenSprinkler.cpp:1348: mais referências indefinidas a `digitalWrite(int, unsigned char)' seguem
    /usr/bin/ld: /tmp/ccGGSA5l.o: na função `OpenSprinkler::detect_binarysensor_status(unsigned long)':
    /home/wilhelm/OpenSprinkler-Firmware/OpenSprinkler.cpp:1385: referência indefinida para `pinMode(int, unsigned char)’
    /usr/bin/ld: /home/wilhelm/OpenSprinkler-Firmware/OpenSprinkler.cpp:1386: referência indefinida para `digitalRead(int)’
    /usr/bin/ld: /home/wilhelm/OpenSprinkler-Firmware/OpenSprinkler.cpp:1415: referência indefinida para `pinMode(int, unsigned char)’
    /usr/bin/ld: /home/wilhelm/OpenSprinkler-Firmware/OpenSprinkler.cpp:1416: referência indefinida para `digitalRead(int)’
    /usr/bin/ld: /tmp/ccGGSA5l.o: na função `OpenSprinkler::detect_programswitch_status(unsigned long)':
    /home/wilhelm/OpenSprinkler-Firmware/OpenSprinkler.cpp:1450: referência indefinida para `pinMode(int, unsigned char)’
    /usr/bin/ld: /home/wilhelm/OpenSprinkler-Firmware/OpenSprinkler.cpp:1451: referência indefinida para `digitalRead(int)’
    /usr/bin/ld: /home/wilhelm/OpenSprinkler-Firmware/OpenSprinkler.cpp:1462: referência indefinida para `pinMode(int, unsigned char)’
    /usr/bin/ld: /home/wilhelm/OpenSprinkler-Firmware/OpenSprinkler.cpp:1463: referência indefinida para `digitalRead(int)’
    /usr/bin/ld: /tmp/ccGGSA5l.o: na função `transmit_rfbit(unsigned long, unsigned long)':
    /home/wilhelm/OpenSprinkler-Firmware/OpenSprinkler.cpp:1859: referência indefinida para `gpio_write(int, unsigned char)’
    /usr/bin/ld: /home/wilhelm/OpenSprinkler-Firmware/OpenSprinkler.cpp:1861: referência indefinida para `gpio_write(int, unsigned char)’
    /usr/bin/ld: /tmp/ccGGSA5l.o: na função `OpenSprinkler::switch_rfstation(RFStationData*, bool)’:
    /home/wilhelm/OpenSprinkler-Firmware/OpenSprinkler.cpp:1908: referência indefinida para `gpio_fd_open(int, int)’
    /usr/bin/ld: /home/wilhelm/OpenSprinkler-Firmware/OpenSprinkler.cpp:1910: referência indefinida para `gpio_fd_close(int)’
    /usr/bin/ld: /tmp/ccGGSA5l.o: na função `OpenSprinkler::switch_gpiostation(GPIOStationData*, bool)’:
    /home/wilhelm/OpenSprinkler-Firmware/OpenSprinkler.cpp:1925: referência indefinida para `pinMode(int, unsigned char)’
    /usr/bin/ld: /home/wilhelm/OpenSprinkler-Firmware/OpenSprinkler.cpp:1927: referência indefinida para `digitalWrite(int, unsigned char)’
    /usr/bin/ld: /home/wilhelm/OpenSprinkler-Firmware/OpenSprinkler.cpp:1929: referência indefinida para `digitalWrite(int, unsigned char)’
    collect2: erro: ld retornou 1 status de saída
    Feito!
    ./updater.sh: linha 5: /etc/init.d/OpenSprinkler.sh: Arquivo ou diretório inexistente

    Existe uma solução para isso?

    Obrigado e cumprimentos de Viena

    Willy

    #32198
    Administrador
    Administrador

    Olá,

    Aqui está o procedimento recomendado:

    OpenSprinkler OSPI – Instruções

    Ou

    OSPi com novo kernel

     

    #32220
    www.strapetz
    Participante

    Olá administrador,

    Fiz isso no dia seguinte:

    • Reinstalando com Debian bookworm x32
    • Então i2c ativado
    • Fonte GitHub carregada
    • OpenSprinkler agora pode ser compilado
    • Eu respondo à pergunta se o arquivo init deve ser criado com sim

    Porém, após a primeira inicialização sempre recebo a seguinte mensagem no navegador:

    A solicitação era muito grande

    uma verificação do status sudo /etc/init.d/OpenSprinkler.sh mostra:

    ● OpenSprinkler.service – LSB: Open Sprinkler Raspberry Pi
    Carregado: carregado (/etc/init.d/OpenSprinkler.sh; gerado)
    Ativo: ativo (em execução) desde segunda-feira, 03/06/2024 às 21:13:20 CEST; 1min 45s atrás
    Documentos: man:systemd-sysv-generator(8)
    Processo: 1569 ExecStart=/etc/init.d/OpenSprinkler.sh start (código=exited, status=0/SUCCESS)
    Tarefas: 1 (limite: 1556)
    CPU: 574ms
    Grupo CG: /system.slice/OpenSprinkler.service
    └─1581 /home/wilhelm/OpenSprinkler-Firmware/OpenSprinkler

    03 de junho 21:13:20 ospi systemd [1]: Iniciando OpenSprinkler.service - LSB: Open Sprinkler Raspberry Pi…
    03 de junho 21:13:20 ospi systemd [1]: OpenSprinkler.service iniciado - LSB: Open Sprinkler Raspberry Pi.

    Reinicie apenas com sudo /etc/init.d/OpenSprinkler.sh

    O OpenSprinkler WebPortal também pode ser acessado.

    Infelizmente, após cada reinicialização recebo a mensagem do navegador: A solicitação era muito grande

    Existe uma solução para isso também?

    Obrigado e cumprimentos de Viena

    Willy

    #32230
    Administrador
    Administrador

    “A solicitação era muito grande” no navegador: Ela tenta acessar a página via https, mas não funciona. Utilize http!

    Então http://endereço IP:8080

    Onde endereço IP é o endereço do seu Raspberry Pi.

    https só funciona com um certificado válido usando um servidor web/proxy.

    Isso foi descrito aqui:
    https://OpenSprinklerShop.de/forums/topic/trick-nr-3-https-mit-ospi-und-raspberry-pi/

     

    #32290
    www.strapetz
    Participante

    Olá,

    Problema: “A solicitação era muito grande”

    resolvido da seguinte forma:

    Comece com o usuário root - isso elimina a necessidade de especificar sudo para todos os comandos!

    > sudo su

    moveu o antigo script de inicialização

    > mv /etc/init.d/OpenSprinkler.sh /home/Nome-Usuário

    Baixe/compile o software OpensSprinkler no diretório /root

    > apt-get install build essencial

    > clone do git https://github.com/OpenSprinkler/OpenSprinkler-Firmware.git

    > CD de firmware do OpenSprinkler

    > ./build.sh ospi

    -> Questione se o OpenSprinkler.sh também deve ser instalado: y

    >reiniciar

    Agora funciona 🙂

    Atenciosamente de Viena Willy

A visualizar 5 artigos - de 1 a 5 (de um total de 5)
  • Tem de iniciar sessão para responder sobre este tema.