From 03aab911cfa651a838b3d3450a19418885e6b403 Mon Sep 17 00:00:00 2001 From: Kshitij Date: Mon, 7 Oct 2024 01:17:39 +0530 Subject: [PATCH] Removed requirement for raspi-blinka.py --- blinka-test.py | 19 ------ raspi-blinka.py | 155 ------------------------------------------------ setup.sh | 30 ++++++++-- 3 files changed, 25 insertions(+), 179 deletions(-) delete mode 100644 blinka-test.py delete mode 100755 raspi-blinka.py diff --git a/blinka-test.py b/blinka-test.py deleted file mode 100644 index 0454bde..0000000 --- a/blinka-test.py +++ /dev/null @@ -1,19 +0,0 @@ -import board -import digitalio -import busio - -print("Hello, blinka!") - -# Try to create a Digital input -pin = digitalio.DigitalInOut(board.D4) -print("Digital IO ok!") - -# Try to create an I2C device -i2c = busio.I2C(board.SCL, board.SDA) -print("I2C ok!") - -# Try to create an SPI device -spi = busio.SPI(board.SCLK, board.MOSI, board.MISO) -print("SPI ok!") - -print("done!") diff --git a/raspi-blinka.py b/raspi-blinka.py deleted file mode 100755 index c216ab0..0000000 --- a/raspi-blinka.py +++ /dev/null @@ -1,155 +0,0 @@ -""" -Adafruit Raspberry Pi Blinka Setup Script -(C) Adafruit Industries, Creative Commons 3.0 - Attribution Share Alike - -Written by Melissa LeBlanc-Williams for Adafruit Industries -""" - -import os -import sys - -try: - from adafruit_shell import Shell -except ImportError: - raise RuntimeError("The library 'adafruit_shell' was not found. To install, try typing: sudo pip3 install adafruit-python-shell") - -shell = Shell() -shell.group="Blinka" -default_python = 3 -blinka_minimum_python_version = 3.7 - -def default_python_version(numeric=True): - version = shell.run_command("python -c 'import platform; print(platform.python_version())'", suppress_message=True, return_output=True) - if numeric: - try: - return float(version[0:version.rfind(".")]) - except ValueError: - return None - return version - -def get_python3_version(numeric=True): - version = shell.run_command("python3 -c 'import platform; print(platform.python_version())'", suppress_message=True, return_output=True) - if numeric: - return float(version[0:version.rfind(".")]) - return version - -def check_blinka_python_version(): - """ - Check the Python 3 version for Blinka (which may be a later version than we're running this script with) - """ - print("Making sure the required version of Python is installed") - current = get_python3_version(False) - current_major, current_minor = current.split(".")[0:2] - required_major, required_minor = str(blinka_minimum_python_version).split(".")[0:2] - - if int(current_major) >= int(required_major) and int(current_minor) >= int(required_minor): - return - - shell.bail("Blinka requires a minimum of Python version {} to install, current one is {}. Please update your OS!".format(blinka_minimum_python_version, current)) - -def sys_update(): - print("Updating System Packages") - if not shell.run_command("sudo apt-get update --allow-releaseinfo-change"): - shell.bail("Apt failed to update indexes!") - print("Upgrading packages...") - if not shell.run_command("sudo apt-get -y upgrade"): - shell.bail("Apt failed to install software!") - -def set_raspiconfig(): - """ - Enable various Raspberry Pi interfaces - """ - print("Enabling I2C") - shell.run_command("sudo raspi-config nonint do_i2c 0") - print("Enabling SPI") - shell.run_command("sudo raspi-config nonint do_spi 0") - print("Enabling Serial") - if not shell.run_command("sudo raspi-config nonint do_serial_hw 0", suppress_message=True): - shell.run_command("sudo raspi-config nonint do_serial 0") - print("Enabling SSH") - shell.run_command("sudo raspi-config nonint do_ssh 0") - print("Enabling Camera") - shell.run_command("sudo raspi-config nonint do_camera 0") - print("Disable raspi-config at Boot") - shell.run_command("sudo raspi-config nonint disable_raspi_config_at_boot 0") - -def update_python(): - print("Making sure Python 3 is the default") - if default_python < 3: - shell.run_command("sudo apt-get install -y python3 git python3-pip") - shell.run_command("sudo update-alternatives --install /usr/bin/python python $(which python2) 1") - shell.run_command("sudo update-alternatives --install /usr/bin/python python $(which python3) 2") - shell.run_command("sudo update-alternatives --skip-auto --config python") - -def update_pip(): - print("Making sure PIP and setuptools is installed") - shell.run_command("sudo apt-get install --upgrade -y python3-pip python3-setuptools") - -def install_blinka(user=False): - print("Installing latest version of Blinka locally") - shell.run_command("sudo apt-get install -y i2c-tools libgpiod-dev python3-libgpiod") - pip_command = "pip3 install --upgrade" - username = None - if user: - username = os.environ["SUDO_USER"] - shell.run_command(f"{pip_command} RPi.GPIO", run_as_user=username) - shell.run_command(f"{pip_command} adafruit-blinka", run_as_user=username) - -# Custom function to run additional commands for Pi 5 -def check_and_install_for_pi5(pi_model): - if pi_model.startswith("RASPBERRY_PI_5"): - print("Detected Raspberry Pi 5, applying additional fixes...") - os.system("sudo apt remove python3-rpi.gpio") - os.system("pip3 install rpi-lgpio") - else: - print(f"Detected {pi_model}, no additional fixes needed.") - -def main(): - global default_python - shell.clear() - # Check Raspberry Pi and Bail - pi_model = shell.get_board_model() - print("""This script configures your -Raspberry Pi and installs Blinka -""") - print("{} detected.\n".format(pi_model)) - if not shell.is_raspberry_pi(): - shell.bail("Non-Raspberry Pi board detected. This must be run on a Raspberry Pi") - os_identifier = shell.get_os() - if os_identifier != "Raspbian": - shell.bail("Sorry, the OS detected was {}. This script currently only runs on Raspberry Pi OS.".format(os_identifier)) - if not shell.is_python3(): - shell.bail("You must be running Python 3. Older versions have now been deprecated.") - shell.check_kernel_update_reboot_required() - python_version = default_python_version() - if not python_version: - shell.warn("WARNING No Default System python tied to the `python` command. It will be set to Version 3.") - default_python = 0 - if not shell.prompt("Continue?"): - shell.exit() - elif int(default_python_version()) < 3: - shell.warn("WARNING Default System python version is {}. It will be updated to Version 3.".format(default_python_version(False))) - default_python = 2 - if not shell.prompt("Continue?"): - shell.exit() - sys_update() - check_blinka_python_version() - set_raspiconfig() - update_python() - update_pip() - install_blinka(True) - - # Check and install for Pi 5 if detected - check_and_install_for_pi5(pi_model) - - # Done - print("""DONE. - -Settings take effect on next boot. -""") - shell.prompt_reboot() - -# Main function -if __name__ == "__main__": - shell.require_root() - main() diff --git a/setup.sh b/setup.sh index e0deb79..7502e80 100755 --- a/setup.sh +++ b/setup.sh @@ -64,7 +64,7 @@ PROJECT_DIR="/home/$USER/Desktop/temp-sensor" if [ ! -d "$PROJECT_DIR" ]; then echo -e "$line\nCreating 'temp-sensor' in Desktop directory for current user.\n$line\n" mkdir -p "$PROJECT_DIR" - cp "./raspi-blinka.py" "./temp-calc.py" "$PROJECT_DIR/" + cp "./temp-calc.py" "./blinka-test.py" "$PROJECT_DIR/" echo -e "$line\nCreated '$PROJECT_DIR' directory.\n$line\n" else echo -e "$line\n$PROJECT_DIR already exists. Please delete the folder before running this script.\n$line\n\nExiting..." @@ -73,17 +73,37 @@ fi # Create and activate Python virtual environment cd "$PROJECT_DIR/" -chmod ugo+x ./raspi-blinka.py ./temp-calc.py +chmod 444 ./temp-calc.py ./blinka-test.py python3 -m venv . --system-site-packages echo -e "$line\nVirtual environment created.\n$line\n" echo -e "$line\nActivating virtual environment...\n$line\n" source $PROJECT_DIR/bin/activate echo -e "$line\nInstalling dependencies...\n$line\n" -pip3 install --upgrade setuptools click adafruit-python-shell adafruit-circuitpython-dht +pip3 install --upgrade setuptools click adafruit-python-shell adafruit-circuitpython-dht RPi.GPIO adafruit-blinka libgpiod + +echo -e "$line\nSetting up raspiberry pi...\n$line\n" +sudo raspi-config nonint do_i2c 0 +sudo raspi-config nonint do_spi 0 +sudo raspi-config nonint do_serial_hw 0 +sudo raspi-config nonint do_ssh 0 +sudo raspi-config nonint do_camera 0 +sudo raspi-config nonint disable_raspi_config_at_boot 0 + +if [! dpkg -l | grep -q i2c-tools]; then + sudo apt install -y i2c-tools +fi +if [! dpkg -l | grep -q libgpiod-dev]; then + sudo apt install -y i2c-tools +fi +if [! dpkg -l | grep -q python3-libgpiod]; then + sudo apt install -y i2c-tools +fi + +python3 ./blinka-test.py +echo -e "$line\nSetup complete\n$line\n" +# sudo python3 raspi-blinka.py -echo -e "$line\nSetting up raspi-blinka...\n$line\n" -sudo python3 raspi-blinka.py echo -e "\n\n\n$line$line$line\nSetup completed.\nExecute the command 'python3 temp-calc.py' to calculate\nthe temperature.\n# DESIGNED AND ENGINEERED BY KSHITIJ.\n# END OF SCRIPT\n$line$line$line\n\n\n"