diff --git a/documentation/README.md b/documentation/README.md index b10941a55..bb11dd6f4 100644 --- a/documentation/README.md +++ b/documentation/README.md @@ -42,7 +42,8 @@ project check out the [documentation of Version 2](https://github.com/MiczFlor/R Version 3 has reached a mature state and will soon be the default version. However, some features may still be missing. Please check the [Feature Status](./developers/status.md), if YOUR feature is already implemented. -> ![NOTE] If version 3 has all the features you need, we recommend using Version 3. +> [!NOTE] +> If version 3 has all the features you need, we recommend using Version 3. If there is a feature missing, please open an issue. diff --git a/documentation/builders/README.md b/documentation/builders/README.md index 8ea5e0648..5909596aa 100644 --- a/documentation/builders/README.md +++ b/documentation/builders/README.md @@ -6,24 +6,28 @@ * [Update](./update.md) * [Configuring Phoniebox](./configuration.md) -## Configuration +## Features -* [Audio](./audio.md) -* [RFID](./rfid.md) +* Audio + * [Audio Output](./audio.md) + * [Bluetooth audio buttons](./bluetooth-audio-buttons.md) * [GPIO Recipes](./gpio.md) * [Card Database](./card-database.md) -* [Troubleshooting](./troubleshooting.md) + * [RFID Cards synchronisation](./components/synchronisation/rfidcards.md) +* [Auto Hotspot](./autohotspot.md) +* File Management + * [Network share / Samba](./samba.md) + +## Hardware Components -## Components * [Power](./components/power/) * [OnOff SHIM for safe power on/off](./components/power/onoff-shim.md) * [Soundcards](./components/soundcards/) * [HiFiBerry Boards](./components/soundcards/hifiberry.md) - +* [RFID Readers](./../developers/rfid/README.md) + ## Advanced - -* [Bluetooth (and audio buttons)](./bluetooth-audio-buttons.md) -* [Auto Hotspot](./autohotspot.md) +* [Troubleshooting](./troubleshooting.md) * [Concepts](./concepts.md) * [System](./system.md) * [RPC Commands](./rpc-commands.md) diff --git a/documentation/builders/rfid.md b/documentation/builders/components/synchronisation/rfidcards.md similarity index 97% rename from documentation/builders/rfid.md rename to documentation/builders/components/synchronisation/rfidcards.md index f8826f68f..a4c974b4b 100644 --- a/documentation/builders/rfid.md +++ b/documentation/builders/components/synchronisation/rfidcards.md @@ -1,6 +1,4 @@ -# RFID - -## Syncronisation RFID Cards +# Synchronisation RFID Cards This component handles the synchronisation of RFID cards (audiofolder and card database entries). @@ -15,7 +13,7 @@ RFID card to the command. For the \"RFID scan sync\" feature, activate the option in the configuration or bind a RFID card to the command for dynamic activation or deactivation. -### Synchronisation +## Synchronisation The synchronisation will be FROM a server TO the Phoniebox, overriding existing files. A local configuration will be lost after the @@ -26,7 +24,7 @@ To access the files on the server, 2 modes are supported: SSH or MOUNT. Please make sure you have the correct access rights to the source and use key-based authentication for SSH. -#### RFID scan sync +### RFID scan sync If the feature \"RFID scan sync\" is activated, there will be a check on every RFID scan against the server if a matching card entry and audiofolder is available. If so, changes will be synced. The playback @@ -40,7 +38,7 @@ deleted on remote. This is also true for changed card entries (the old audiofolder / -files will remain). To remove not existing items us a \"sync-all\". -### Configuration +## Configuration Set the corresponding setting in `shared\settings\jukebox.yaml` to activate this feature. diff --git a/documentation/builders/configuration.md b/documentation/builders/configuration.md index dba2da7dc..2e1c4ff23 100644 --- a/documentation/builders/configuration.md +++ b/documentation/builders/configuration.md @@ -7,11 +7,7 @@ The majority of configuration options is only available by editing the config fi *when the service is not running!* Don't fear (overly), they contain commentaries. -For several aspects we have [configuration tools](../developers/coreapps.md#configuration-tools) and detailed guides: - -* [Audio Configuration](./audio.md#audio-configuration) -* [RFID Reader Configuration](../developers/rfid/basics.md#reader-configuration) -* [GPIO Recipes](./gpio.md) +For several aspects we have [configuration tools](../developers/coreapps.md#configuration-tools) and [detailed guides](./README.md#features). Even after running the tools, certain aspects can only be changed by modifying the configuration files directly. diff --git a/documentation/builders/installation.md b/documentation/builders/installation.md index 7ce0e59c0..1d4b18470 100644 --- a/documentation/builders/installation.md +++ b/documentation/builders/installation.md @@ -10,7 +10,9 @@ Before you can install the Phoniebox software, you need to prepare your Raspberr 1. Connect a Micro SD card to your computer (preferable an SD card with high read throughput) 2. Download the [Raspberry Pi Imager](https://www.raspberrypi.com/software/) and run it 3. Click on "Raspberry Pi Device" and select "No filtering" -4. Select **Raspberry Pi OS Lite (32-bit)** (without desktop environment) as the operating system. `future3` does not support 64bit kernels (`aarch64`). +4. As operating system select **Raspberry Pi OS (other)** and then **Raspberry Pi OS Lite (Legacy, 32-bit)** (no desktop environment). *64-bit is currently not supported*. + * Bookworm support is partly broken, see [here](#workaround-for-network-related-features-on-bookworm). + * For Pi 4 and newer also check [this](#workaround-for-64-bit-kernels-pi-4-and-newer). 5. Select your Micro SD card (your card will be formatted) 6. After you click `Next`, a prompt will ask you if you like to customize the OS settings * Click `Edit Settings` @@ -26,12 +28,12 @@ Before you can install the Phoniebox software, you need to prepare your Raspberr 8. Confirm the next warning about erasing the SD card with `Yes` 9. Wait for the imaging process to be finished (it'll take a few minutes) + +### Pre-boot preparation
In case you forgot to customize the OS settings, follow these instructions after RPi OS has been written to the SD card. -### Pre-boot preparation - You will need a terminal, like PuTTY for Windows or the Terminal app for Mac to proceed with the next steps. 1. Open a terminal of your choice. @@ -77,6 +79,42 @@ You will need a terminal, like PuTTY for Windows or the Terminal app for Mac to
+### Pre-install preparation / workarounds + +#### Workaround for network related features on Bookworm +
+With Bookworm the network settings have changed. Now "NetworkManager" is used instead of "dhcpcd". +This breaks breaks network related features like "Static IP", "Wifi Setup" and "Autohotspot". +Before running the installation, the network config has to be changed via raspi-config, to use the "old" dhcpcd network settings. + +:warning: +If the settings are changed, your network will reset and Wifi will not be configured, so you lose ssh access via wireless connection. +So make sure you use a wired connection or perform the following steps in a local terminal with a connected monitor and keyboard. + +Change network config +* run `sudo raspi-config` +* select `6 - Advanced Options` +* select `AA - Network Config` +* select `dhcpcd` + +If you need Wifi, add the information now +* select `1 - System Options` +* select `1 - Wireless LAN` +* enter Wifi information +
+ +#### Workaround for 64-bit Kernels (Pi 4 and newer) +
+ +The installation process checks if a 32-bit OS is running, as 64-bit is currently not supported. +This check also fails if the kernel is running in 64-bit mode. This is the default for Raspberry Pi models 4 and newer. + +To be able to run the installation, you have to switch to the 32-bit mode by modifying the `config.txt` and add/change the line `arm_64bit=0`. +Up to Bullseye, the `config.txt` file is located at `/boot/`. Since Bookworm, the location changed to `/boot/firmware/` ([see here](https://www.raspberrypi.com/documentation/computers/config_txt.html)). + +Reboot before you proceed. +
+ ## Install Phoniebox software Choose a version, run the corresponding install command in your SSH terminal and follow the instructions. diff --git a/documentation/builders/samba.md b/documentation/builders/samba.md new file mode 100644 index 000000000..ac9a93bbc --- /dev/null +++ b/documentation/builders/samba.md @@ -0,0 +1,18 @@ +# Samba + +To conveniently copy files to your Phoniebox via network `samba` can be configured during the installation. The folder `./shared/` will be exposed as network share `phoniebox`, giving you access to the audio and config folders. + +## Connect + +To access the share open your OS network environment and select your Phoniebox device. +Alternatively directly access it via url with the file explorer (e.g. Windows `\\`, MacOS `smb://`). + +See also +* [MacOS](https://support.apple.com/lt-lt/guide/mac-help/mchlp1140/mac) + +## User name / Password + +As login credentials use the same username you used to run the installation with. The password is `raspberry`. +You can change the password anytime using the command `sudo smbpasswd -a ""`. + + diff --git a/documentation/builders/update.md b/documentation/builders/update.md index 94baf0a93..e84655e7c 100644 --- a/documentation/builders/update.md +++ b/documentation/builders/update.md @@ -35,7 +35,8 @@ $ ./run_rebuild.sh -u ## Migration Path from Version 2 There is no update path coming from Version 2.x of the Jukebox. -You need to do a fresh install of Version 3 on a fresh Raspian Bullseye image. +You need to do a fresh install of Version 3 on a fresh Raspberry Pi OS image. +See [Installing Phoniebox future3](./installation.md). > [!IMPORTANT] > Do start with a fresh SD card image! diff --git a/documentation/developers/README.md b/documentation/developers/README.md index f6ec65dc4..5598f34d7 100644 --- a/documentation/developers/README.md +++ b/documentation/developers/README.md @@ -9,7 +9,7 @@ * [Jukebox Apps](./coreapps.md) * [Web App](./webapp.md) -* [RFID Readers](./rfid) +* [RFID Readers](./rfid/README.md) * [Docstring API Docs (from py files)](./docstring/README.md) * [Plugin Reference](./docstring/README.md#jukeboxplugs) * [Feature Status](./status.md) diff --git a/documentation/developers/docstring/README.md b/documentation/developers/docstring/README.md index dde85b224..aa7cefecc 100644 --- a/documentation/developers/docstring/README.md +++ b/documentation/developers/docstring/README.md @@ -1245,7 +1245,7 @@ This means must also run as user process, as described in ## Misc PulseAudio may switch the sink automatically to a connecting bluetooth device depending on the loaded module -with name module-switch-on-connect. On RaspianOS Bullseye, this module is not part of the default configuration +with name module-switch-on-connect. On Raspberry Pi OS Bullseye, this module is not part of the default configuration in ``/usr/pulse/default.pa``. So, we don't need to worry about it. If the module gets loaded it conflicts with the toggle on connect and the selected primary / secondary outputs from the Jukebox. Remove it from the configuration! diff --git a/installation/includes/02_helpers.sh b/installation/includes/02_helpers.sh index f2b60313b..9cd51c824 100644 --- a/installation/includes/02_helpers.sh +++ b/installation/includes/02_helpers.sh @@ -75,7 +75,7 @@ get_architecture() { echo $arch } -is_raspian() { +is_raspbian() { if [[ $( . /etc/os-release; printf '%s\n' "$ID"; ) == *"raspbian"* ]]; then echo true else @@ -89,7 +89,7 @@ get_debian_version_number() { } get_boot_config_path() { - if [ "$(is_raspian)" = true ]; then + if [ "$(is_raspbian)" = true ]; then local debian_version_number=$(get_debian_version_number) # Bullseye and lower diff --git a/installation/install-jukebox.sh b/installation/install-jukebox.sh index 2df7ab528..1ec3f9ad5 100755 --- a/installation/install-jukebox.sh +++ b/installation/install-jukebox.sh @@ -86,9 +86,9 @@ Check install log for details:" exit 1 } -# Check if current distro is a 32 bit version -# Support for 64 bit Distros has not been checked (or precisely: is known not to work) -# All RaspianOS versions report as machine "armv6l" or "armv7l", if 32 bit (even the ARMv8 cores!) +# Check if current distro is a 32-bit version +# Support for 64-bit Distros has not been checked (or precisely: is known not to work) +# All Raspberry Pi OS versions report as machine "armv6l" or "armv7l", if 32-bit (even the ARMv8 cores!) _check_os_type() { local os_type=$(uname -m) @@ -97,8 +97,8 @@ _check_os_type() { if [[ $os_type == "armv7l" || $os_type == "armv6l" ]]; then print_lc " ... OK!\n" else - print_lc "ERROR: Only 32 bit operating systems supported. Please use a 32bit version of RaspianOS!" - print_lc "You can fix this problem for 64bit kernels: https://github.com/MiczFlor/RPi-Jukebox-RFID/issues/2041" + print_lc "ERROR: Only 32-bit operating systems are supported. Please use a 32-bit version of Raspberry Pi OS!" + print_lc "For Pi 4 models or newer running a 64-bit kernels, also see this: https://github.com/MiczFlor/RPi-Jukebox-RFID/issues/2041" exit 1 fi } diff --git a/src/jukebox/components/rfid/hardware/fake_reader_gui/requirements.txt b/src/jukebox/components/rfid/hardware/fake_reader_gui/requirements.txt index 937256e86..b539a2478 100644 --- a/src/jukebox/components/rfid/hardware/fake_reader_gui/requirements.txt +++ b/src/jukebox/components/rfid/hardware/fake_reader_gui/requirements.txt @@ -1,6 +1,6 @@ # This GUI-based mock reader also requires: tkinter # tkinter is a standard Python package and needs not be installed separately -# It is available on most Unix systems (but not on headless Raspbian RPi where running a GUI is difficult anyway) +# It is available on most Unix systems (but not on headless Raspberry Pi OS where running a GUI is difficult anyway) # You need to install these with `python -m pip install --upgrade --force-reinstall -q -r requirements.txt` ttkthemes diff --git a/src/jukebox/components/volume/__init__.py b/src/jukebox/components/volume/__init__.py index ccc4873d7..4782581ca 100644 --- a/src/jukebox/components/volume/__init__.py +++ b/src/jukebox/components/volume/__init__.py @@ -33,7 +33,7 @@ ## Misc PulseAudio may switch the sink automatically to a connecting bluetooth device depending on the loaded module -with name module-switch-on-connect. On RaspianOS Bullseye, this module is not part of the default configuration +with name module-switch-on-connect. On Raspberry Pi OS Bullseye, this module is not part of the default configuration in ``/usr/pulse/default.pa``. So, we don't need to worry about it. If the module gets loaded it conflicts with the toggle on connect and the selected primary / secondary outputs from the Jukebox. Remove it from the configuration! @@ -635,7 +635,7 @@ def finalize(): global pulse_control # Set default output and start-up volume # Note: PulseAudio may switch the sink automatically to a connecting bluetooth device depending on the loaded module - # with name module-switch-on-connect. On RaspianOS Bullseye, this module is not part of the default configuration. + # with name module-switch-on-connect. On Raspberry Pi OS Bullseye, this module is not part of the default configuration. # So, we shouldn't need to worry about it. Still, set output and startup volume close to each other # to minimize bluetooth connection in between global pulse_control