grovepi/installer.sh

120 lines
No EOL
3.6 KiB
Bash

#!/bin/bash
# Stop bij fout
set -e
# Kleuren voor output
green="\e[32m"
red="\e[31m"
reset="\e[0m"
echo -e "${green}GrovePi installatiescript gestart...${reset}"
# Update systeem
echo -e "${green}Systeem bijwerken...${reset}"
sudo apt update && sudo apt upgrade -y
# Benodigde pakketten installeren
echo -e "${green}Afhankelijkheden installeren...${reset}"
sudo apt install -y git python3 python3-pip python3-smbus i2c-tools raspi-config
# I2C inschakelen
echo -e "${green}I2C inschakelen...${reset}"
sudo raspi-config nonint do_i2c 0
# Installeren van avrdude
echo -e "${green}Avrdude installeren...${reset}"
sudo apt-get install bison flex byacc -y
wget http://download.savannah.gnu.org/releases/avrdude/avrdude-7.0.tar.gz
tar xfv avrdude-7.0.tar.gz && cd avrdude-7.0/
./configure --enable-linuxgpio
make
sudo make install
# Clonen van de GrovePi repository
echo -e "${green}Clonen van GrovePi repository...${reset}"
sudo rm -rf /opt/grovepi
sudo git clone https://github.com/DexterInd/GrovePi /opt/grovepi
cd /opt/grovepi
# Installeren van Python-pakketten
echo -e "${green}Python bibliotheken installeren...${reset}"
pip3 install --upgrade setuptools --break-system-packages
pip3 install -r /opt/grovepi/Software/Python/requirements.txt --break-system-packages
# Installeren van GrovePi firmware en bibliotheken
echo -e "${green}GrovePi installeren...${reset}"
cd /opt/grovepi/Script
sudo bash install.sh
# Installeren i2c-tools
cd /opt/grovepi/Scripts/i2c-tools-3.1.0
make
sudo make install
# Installeren i2c-tools python
cd /opt/grovepi/Scripts/i2c-tools-3.1.0/py-smbus
sudo python3 setup.py build
sudo python3 setup.py install
# Installeren en aanpassen van WiringPi
cd /home/pi && git clone https://github.com/WiringPi/WiringPi
cd WiringPi && sudo rm wiringPi/wiringPiLegacy.c
cat > wiringPi/wiringPiLegacy.c <<EOL
#include <wiringPi.h>
#include "wiringPiLegacy.h"
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>
extern int wiringPiDebug;
const char* GetPiRevisionLegacy(char* line, int linelength, unsigned int* revision) {
// Verwijder de toegang tot /proc/cpuinfo
// FILE *cpuFd;
// if ((cpuFd = fopen ("/proc/cpuinfo", "r")) == NULL)
// piGpioLayoutOops ("Unable to open /proc/cpuinfo");
// In plaats van gegevens te lezen uit /proc/cpuinfo, kunnen we de revision
// altijd als een voorbeeld instellen.
// Simuleer een revision (bijvoorbeeld als een bekende waarde, zoals 0x900092)
*revision = 0x900092;
if (wiringPiDebug)
printf("GetPiRevisionLegacy: Simulated Revision: 0x%x\n", *revision);
return "Revision Simulated";
}
int piGpioLayoutLegacy(void) {
// Verwijder de toegang tot /proc/cpuinfo
// FILE *cpuFd;
// char line[120];
// if ((cpuFd = fopen("/proc/cpuinfo", "r")) == NULL)
// piGpioLayoutOops ("Unable to open /proc/cpuinfo");
// In plaats van te controleren op hardware-informatie uit /proc/cpuinfo,
// kunnen we de layout altijd een bekende waarde geven, bijvoorbeeld 2 (wat
// overeenkomt met de meeste recente Raspberry Pi-modellen zoals de B+).
int gpioLayout = 2; // Dit is een standaardwaarde
if (wiringPiDebug)
printf("piGpioLayout: Returning layout: %d\n", gpioLayout);
return gpioLayout;
}
EOL
# Installeren van WiringPi python
cd /home/pi && git clone git clone --recursive https://github.com/WiringPi/WiringPi-Python.git
cd WiringPi-Python && sudo rm -rf WiringPi && sudo cp -r /home/pi/WiringPi /home/pi/WiringPi-Python/
sudo python3 setup.py build
sudo python3 setup.py install
# Controle uitvoeren
echo -e "${green}GrovePi test uitvoeren...${reset}"
cd /opt/grovepi/Software/Python
python3 grove_led_blink.py
echo -e "${green}Installatie voltooid! Herstart je Raspberry Pi.${reset}"