User Tools

Site Tools


raspberry-pi:rpi3

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
raspberry-pi:rpi3 [2023/04/29 14:35] – removed - external edit (Unknown date) 127.0.0.1raspberry-pi:rpi3 [2023/05/29 11:55] (current) – external edit 127.0.0.1
Line 1: Line 1:
 +====== RPI3 download box ======
 +
 +===== Image download =====
 +
 +https://www.raspberrypi.com/documentation/computers/getting-started.html#installing-the-operating-system
 +
 +Direct image of RaspiOS Lite
 +https://downloads.raspberrypi.org/raspios_lite_armhf/images/raspios_lite_armhf-2021-11-08/2021-10-30-raspios-bullseye-armhf-lite.zip
 +
 +RPI Imager on a debian based system:
 +<code>
 +sudo apt-get install qml-module-qtquick2 qml-module-qtquick-controls2 qml-module-qtquick-layouts qml-module-qtquick-templates2 qml-module-qtquick-window2 qml-module-qtgraphicaleffects libqt5quickcontrols2-5 libqt5quicktemplates2-5
 +wget https://downloads.raspberrypi.org/imager/imager_latest_amd64.deb
 +sudo dpkg -i imager_*_amd64.deb
 +</code>
 +
 +Flash Micro-SD card using Imager selecting ROS lite (without desktop and apps) OS, press Ctrl-Shift-X for advanced menu and configure ssh, passwords, hostname.
 +
 +set static IP
 +<code>
 +sudo vi /etc/dhcpcd.conf
 +</code>
 +<code>
 +interface eth0
 +static ip_address=192.168.0.100/24
 +static routers=192.168.0.1
 +static domain_name_servers=192.168.0.1 8.8.8.8 
 +
 +interface wlan0
 +static ip_address=192.168.0.100/24
 +static routers=192.168.0.1
 +static domain_name_servers=192.168.0.1 8.8.8.8  
 +</code>
 +
 +if/when adjusting hostname in /etc/hostname, follow up and change
 +/etc/hosts with the new hostname as well:
 +<code>
 +127.0.0.1 newhostname
 +</code>
 +
 +===== Transmission =====
 +
 +<code>
 +sudo apt install transmission-daemon
 +</code>
 +then https://pimylifeup.com/raspberry-pi-transmission/
 +
 +===== Prowlarr install: =====
 +
 +https://wiki.servarr.com/prowlarr/installation
 +
 +<code>
 +cat >> ProwlarrInstall.sh << "_EOF_"
 +#!/bin/bash
 +### Description: Prowlarr Debian install
 +### Originally from the Radarr Community
 +
 +set -euo pipefail
 +
 +# Am I root?, need root!
 +if [ "$EUID" -ne 0 ]; then
 +    echo "Please run as root."
 +    exit
 +fi
 +# Const
 +### Update these variables as required for your specific instance
 +app="prowlarr"               # App Name
 +app_uid="prowlarr"           # {Update me if needed} User App will run as and the owner of it's binaries
 +app_guid="prowlarr"          # {Update me if needed} Group App will run as.
 +app_port="9696"              # Default App Port; Modify config.xml after install if needed
 +app_prereq="curl sqlite3"    # Required packages
 +app_umask="0002"             # UMask the Service will run as
 +app_bin=${app^}              # Binary Name of the app
 +installdir="/opt"            # {Update me if needed} Install Location
 +bindir="${installdir}/${app^}" # Full Path to Install Location
 +branch="develop"             # {Update me if needed} branch to install
 +datadir="/var/lib/prowlarr/" # {Update me if needed} AppData directory to use
 +
 +# Create User / Group as needed
 +if ! getent group "$app_guid" >/dev/null; then
 +    groupadd "$app_guid"
 +    echo "Group [$app_guid] created"
 +fi
 +if ! getent passwd "$app_uid" >/dev/null; then
 +    useradd --system -g "$app_guid" "$app_uid"
 +    echo "User [$app_uid] created and added to Group [$app_guid]"
 +else
 +    echo "User [$app_uid] already exists"
 +fi
 +
 +if ! getent group "$app_guid" | grep -qw "${app_uid}"; then
 +    echo "User [$app_uid] did not exist in Group [$app_guid]"
 +    usermod -a -G "$app_guid" "$app_uid"
 +    echo "Added User [$app_uid] to Group [$app_guid]"
 +else
 +    echo "User [$app_uid] already exists in Group [$app_guid]"
 +fi
 +
 +# Stop the App if running
 +if service --status-all | grep -Fq "$app"; then
 +    systemctl stop $app
 +    systemctl disable $app.service
 +fi
 +# Create Appdata Directory
 +# AppData
 +mkdir -p $datadir
 +chown -R $app_uid:$app_uid $datadir
 +chmod 775 $datadir
 +# Download and install the App
 +# prerequisite packages
 +apt install $app_prereq
 +ARCH=$(dpkg --print-architecture)
 +# get arch
 +dlbase="https://$app.servarr.com/v1/update/$branch/updatefile?os=linux&runtime=netcore"
 +case "$ARCH" in
 +"amd64") DLURL="${dlbase}&arch=x64" ;;
 +"armhf") DLURL="${dlbase}&arch=arm" ;;
 +"arm64") DLURL="${dlbase}&arch=arm64" ;;
 +*)
 +    echo_error "Arch not supported"
 +    exit 1
 +    ;;
 +esac
 +echo "Downloading..."
 +wget --content-disposition "$DLURL"
 +tar -xvzf ${app^}.*.tar.gz
 +echo "Installation files downloaded and extracted"
 +# remove existing installs
 +echo "Removing existing installation"
 +rm -rf $bindir
 +echo "Installing..."
 +mv "${app^}" $installdir
 +chown $app_uid:$app_uid -R $bindir
 +rm -rf "${app^}.*.tar.gz"
 +# Ensure we check for an update in case user installs older version or different branch
 +touch $datadir/update_required
 +chown $app_uid:$app_guid $datadir/update_required
 +echo "App Installed"
 +# Configure Autostart
 +# Remove any previous app .service
 +echo "Removing old service file"
 +rm -rf /etc/systemd/system/$app.service
 +# Create app .service with correct user startup
 +echo "Creating service file"
 +cat <<EOF | tee /etc/systemd/system/$app.service >/dev/null
 +[Unit]
 +Description=${app^} Daemon
 +After=syslog.target network.target
 +[Service]
 +User=$app_uid
 +Group=$app_guid
 +UMask=$app_umask
 +Type=simple
 +ExecStart=$bindir/$app_bin -nobrowser -data=$datadir
 +TimeoutStopSec=20
 +KillMode=process
 +Restart=on-failure
 +[Install]
 +WantedBy=multi-user.target
 +EOF
 +# Start the App
 +echo "Service file created. Attempting to start the app"
 +systemctl -q daemon-reload
 +systemctl enable --now -q "$app"
 +# Finish Update/Installation
 +host=$(hostname -I)
 +ip_local=$(grep -oP '^\S*' <<<"$host")
 +echo ""
 +echo "Install complete"
 +echo "Browse to http://$ip_local:$app_port for the ${app^} GUI"
 +# Exit
 +exit 0
 +_EOF_
 +
 +chmod 755 ProwlarrInstall.sh
 +sudo ./ProwlarrInstall.sh
 +
 +</code>
 +
 +Browse to http://IP:9696 for the Prowlarr GUI
 +
 +Prowlarr fetches updated index definitions automatically. However, custom definitions can be added.
 +Create Custom directory in either ~/.config/Prowlarr/Definitions/Custom or /var/lib/prowlarr/Definitions/Custom
 +Any custom yml files go in this directly and need to have appropriate permissions and ownership for the prowlarr user to read them.
 +Prowlarr caches the definitions, so while working with them, either wait for the cache to time out or restart Prowlarr after each change.
 +https://wiki.servarr.com/prowlarr/indexers
 +===== Sonarr install: =====
 +
 +https://sonarr.tv/#downloads-v3-linux-debian
 +
 +On RPI3, disable h265.x265,HEVC as RPI does not have hardware decoding for these:
 +settings -> profiles -> under release profiles click + , give it a name (no HEVC/265) and add under "must not contain" x265 h265 hevc separated by spaces and click save.
 +
 +To exclude 4k/raw content, go to settings -> profiles and edit the Any profile, remove all -2160p, Remux, Raw-HD and unknown entries.
 +
 +===== Radarr install: =====
 +
 +https://wiki.servarr.com/radarr/installation
 +
 +On RPI3, disable h265.x265,HEVC as RPI does not have hardware decoding for these:
 +settings -> indexers -> under restrictions profiles click + , add under "must not contain" x265 h265 hevc separated by spaces and click save.
 +
 +To exclude 4k/raw and low quality content, go to settings -> profiles and edit the Any profile, remove all -2160p, Remux, Raw-HD and BR-Disk entries as well as Telecine, Telesync, Cam, Workprint and unknown.
 +
 +===== Kodi on RPI: =====
 +
 +https://forums.raspberrypi.com/viewtopic.php?t=251645
 +
 +Kodi on the Raspberry Pi 0/1/2/3 will only function if you are using the Broadcom drivers! This is the "Original non-GL desktop driver" on raspi-config, which is currently the default on the Raspbian images for the RPi 0/1/2/3. If you select the open-source OpenGL driver, it won't work!
 +
 +Kodi on Raspbian requires a minimum of 160 MB of RAM dedicated to the GPU to function properly! This can be done by running "raspi-config" -> "Advanced Options" -> "Memory Split" -> 160.
 +If you have a RPi 2/3, the recommended is 256 MB of RAM for the GPU.
 +
 +-Kodi 18 on the Raspberry Pi 2/3 supports 10bit video files (at least h264 and h265/HEVC) but they are software decoded. The Pi 3B / 3B+ may do 720p 10bit and 1080p 10bit low bitrate only at max! For that you need at least 300MB of RAM for the GPU.
 +
 +
 +Raspbian by default, doesn't play some video codecs like VP6, VP8, MJPEG, Theora, etc, so to be able to play this codecs, you need to go to "raspi-config" -> "Interfacing Options" -> "Camera" -> Enable,
 +or just add a new line in /boot/config.txt with:
 +<code>
 +start_x=1
 +</code>
 +
 +on RPI3 add to/enable in /boot/config.txt for DRM to work:
 +<code>
 +[all]
 +dtoverlay=vc4-kms-v3d
 +</code>
 +
 +<code>
 +sudo tee -a /lib/systemd/system/kodi.service <<_EOF_
 +[Unit]
 +Description = Kodi Media Center
 +After = remote-fs.target network-online.target
 +Wants = network-online.target
 +
 +[Service]
 +User = pi
 +Group = pi
 +Type = simple
 +ExecStart = /usr/bin/kodi-standalone
 +Restart = on-abort
 +RestartSec = 5
 +
 +[Install]
 +WantedBy = multi-user.target
 +_EOF_
 +</code>
 +
 +In Kodi enable remote control with user/password kodi
 +Transmission default login user/password transmission
 +
 +===== URLs/Ports: =====
 +
 +
 +http://IP:7878   radarr
 +http://IP:8989   sonarr
 +http://IP:9091   transmission (username/password: transmission)
 +http://IP:9696    prowlarr
 +http://IP:8080    kodi (username/password: kodi)
 +