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() def main(): shell.clear() print("""This script downloads and installs I2S microphone support. """) if not shell.is_raspberry_pi(): shell.bail("Non-Raspberry Pi board detected.") pi_model = shell.get_board_model() print("{} detected.\n".format(pi_model)) if pi_model in ("RASPBERRY_PI_ZERO", "RASPBERRY_PI_ZERO_W"): pimodel_select = 0 elif pi_model in ("RASPBERRY_PI_2B", "RASPBERRY_PI_3B", "RASPBERRY_PI_3B_PLUS", "RASPBERRY_PI_3A_PLUS"): pimodel_select = 1 elif pi_model in ("RASPBERRY_PI_4B", ): pimodel_select = 2 else: shell.bail("Unsupported Pi board detected.") auto_load = shell.prompt("Auto load module at boot?") print(""" Installing...""") # Get needed packages shell.run_command("apt-get -y install git raspberrypi-kernel-headers") # Clone the repo shell.run_command("git clone https://github.com/adafruit/Raspberry-Pi-Installer-Scripts.git") # Build and install the module shell.chdir("Raspberry-Pi-Installer-Scripts/i2s_mic_module") shell.run_command("make clean") shell.run_command("make") shell.run_command("make install") # Setup auto load at boot if selected if auto_load: shell.write_text_file( "/etc/modules-load.d/snd-i2smic-rpi.conf", "snd-i2smic-rpi" ) shell.write_text_file( "/etc/modules-load.d/snd-i2smic-rpi.conf", "options snd-i2smic-rpi rpi_platform_generation={}".format(pimodel_select) ) # Enable I2S overlay shell.run_command("sed -i -e 's/#dtparam=i2s/dtparam=i2s/g' /boot/config.txt") # Done print("""DONE. Settings take effect on next boot. """) if not shell.prompt("REBOOT NOW?", default="n"): print("Exiting without reboot.") shell.exit() print("Reboot started...") shell.reboot() shell.exit() # Main function if __name__ == "__main__": shell.require_root() main()