diff --git a/build_raspOVOS.sh b/build_raspOVOS.sh index eca29b81..17143817 100644 --- a/build_raspOVOS.sh +++ b/build_raspOVOS.sh @@ -11,6 +11,9 @@ apt-get update apt-get install -y --no-install-recommends git curl i2c-tools swig libssl-dev libfann-dev portaudio19-dev libpulse-dev build-essential python3-dev python3-pip +echo "Installing Pipewire..." +bash /mounted-github-repo/setup_pipewire.sh + # Create virtual environment for ovos echo "Creating virtual environment..." mkdir -p ~/.venvs @@ -37,20 +40,18 @@ cp -v /mounted-github-repo/ovos-messagebus.service /home/pi/.config/systemd/user cp -v /mounted-github-repo/ovos-audio.service /home/pi/.config/systemd/user/ cp -v /mounted-github-repo/ovos-dinkum-listener.service /home/pi/.config/systemd/user/ cp -v /mounted-github-repo/ovos-phal.service /home/pi/.config/systemd/user/ +cp -v /mounted-github-repo/ovos-ggwave.service /home/pi/.config/systemd/user/ cp -v /mounted-github-repo/ovos-admin-phal.service /etc/systemd/system/ -systemctl --user daemon-reload -systemctl daemon-reload - systemctl --user enable ovos systemctl --user enable ovos-messagebus systemctl --user enable ovos-dinkum-listener systemctl --user enable ovos-audio systemctl --user enable ovos-skills +systemctl --user enable ovos-ggwave systemctl --user enable ovos-phal systemctl enable ovos-admin-phal - # setup ovos-i2csound echo "Installing ovos-i2csound..." git clone https://github.com/OpenVoiceOS/ovos-i2csound /tmp/ovos-i2csound @@ -68,10 +69,10 @@ systemctl enable i2csound.service echo "Tuning base system..." -bash /mounted-github-repo/setup_zram.sh -bash /mounted-github-repo/setup_cpugovernor.sh -bash /mounted-github-repo/setup_wlan0power.sh -bash /mounted-github-repo/setup_fstab.sh -bash /mounted-github-repo/setup_sysctl.sh -bash /mounted-github-repo/setup_udev.sh -bash /mounted-github-repo/setup_kernel_modules.sh \ No newline at end of file +#bash /mounted-github-repo/setup_zram.sh +#bash /mounted-github-repo/setup_cpugovernor.sh +#bash /mounted-github-repo/setup_wlan0power.sh +#bash /mounted-github-repo/setup_fstab.sh +#bash /mounted-github-repo/setup_sysctl.sh +#bash /mounted-github-repo/setup_udev.sh +#bash /mounted-github-repo/setup_kernel_modules.sh \ No newline at end of file diff --git a/ovos-ggwave.service b/ovos-ggwave.service new file mode 100644 index 00000000..4b729166 --- /dev/null +++ b/ovos-ggwave.service @@ -0,0 +1,17 @@ +[Unit] +Documentation=https://github.com/OpenVoiceOS/ovos-audio-transformer-plugin-ggwave +Description=Open Voice OS - ggwave listener +PartOf=ovos.service +Requires=ovos.service ovos-messagebus.service + +[Service] +WorkingDirectory=/home/pi/.venvs/ovos +ExecStart=/home/pi/.venvs/ovos/bin/ovos-ggwave-listener +ExecReload=/usr/bin/kill -s HUP $MAINPID +ExecStop=/usr/bin/kill -s KILL $MAINPID +Restart=on-failure +RestartSec=5s +StartLimitBurst=0 + +[Install] +WantedBy=ovos.service \ No newline at end of file diff --git a/setup_pipewire.sh b/setup_pipewire.sh new file mode 100644 index 00000000..e81b1bf8 --- /dev/null +++ b/setup_pipewire.sh @@ -0,0 +1,31 @@ +#!/bin/bash +# Exit on error +# If something goes wrong just stop. +# it allows the user to see issues at once rather than having +# scroll back and figure out what went wrong. +set -e + +apt install -y pipewire pipewire-alsa alsa-utils + +# Replace 'your_user' with the actual username +USER="pi" +SOUND_SERVER="pipewire" + + +# Add user to audio group +sudo usermod -aG audio $USER + +# Add user to rtkit group if it exists +if getent group rtkit > /dev/null 2>&1; then + sudo usermod -aG rtkit $USER +fi + +# Add user to pipewire group +sudo usermod -aG pipewire $USER + +# Enable lingering for the user +sudo loginctl enable-linger $USER + +echo -e "pcm.!default $SOUND_SERVER\nctl.!default $SOUND_SERVER" > /home/$USER/.asoundrc +sudo chown $USER:$USER /home/$USER/.asoundrc +echo ".asoundrc file generated for $USER"