diff --git a/install.sh b/install.sh index 9430dbd..b19535d 100755 --- a/install.sh +++ b/install.sh @@ -11,13 +11,8 @@ if [ "x${is_Raspberry}" != "xRaspberry" ] ; then exit 1 fi -ver="0.2" -card=$1 +ver="0.3" -if [ "x${card}" = "x" ] ; then - echo "Usage: ./install 2mic|4mic" - exit 1 -fi # we create a dir with this version to ensure that 'dkms remove' won't delete # the sources during kernel updates @@ -51,21 +46,25 @@ function install_module { mkdir -p /var/lib/dkms/$mod/$ver/$marker } -if [ ! -f "/boot/overlays/seeed-4mic-voicecard.dtbo" ] && [ ! -f "/lib/modules/${uname_r}/kernel/sound/soc/codecs/snd-soc-ac108.ko" ] ; then - install_module "./" "seeed-voicecard" - cp seeed-2mic-voicecard.dtbo /boot/overlays - cp seeed-4mic-voicecard.dtbo /boot/overlays - install -D ac108_plugin/libasound_module_pcm_ac108.so /usr/lib/arm-linux-gnueabihf/alsa-lib/libasound_module_pcm_ac108.so -else - echo "card driver already installed" -fi +install_module "./" "seeed-voicecard" + + +# install dtbos +cp seeed-2mic-voicecard.dtbo /boot/overlays +cp seeed-4mic-voicecard.dtbo /boot/overlays + +#install alsa plugins +install -D ac108_plugin/libasound_module_pcm_ac108.so /usr/lib/arm-linux-gnueabihf/alsa-lib/libasound_module_pcm_ac108.so + +#set kernel moduels grep -q "snd-soc-ac108" /etc/modules || \ echo "snd-soc-ac108" >> /etc/modules grep -q "snd-soc-wm8960" /etc/modules || \ echo "snd-soc-wm8960" >> /etc/modules - +#set dtoverlays +sed -i -e 's:#dtparam=i2c_arm=on:dtparam=i2c_arm=on:g' /boot/config.txt || true grep -q "dtoverlay=i2s-mmap" /boot/config.txt || \ echo "dtoverlay=i2s-mmap" >> /boot/config.txt @@ -73,36 +72,15 @@ grep -q "dtoverlay=i2s-mmap" /boot/config.txt || \ grep -q "dtparam=i2s=on" /boot/config.txt || \ echo "dtparam=i2s=on" >> /boot/config.txt -has_2mic=$(grep seeed-2mic-voicecard /boot/config.txt) -has_4mic=$(grep seeed-4mic-voicecard /boot/config.txt) -case "${card}" in - "2mic") - echo "cp wm8960_asound.state /var/lib/alsa/asound.state" - cp wm8960_asound.state /var/lib/alsa/asound.state - cp asound_2mic.conf /etc/asound.conf - if [ "x${has_4mic}" != x ] ; then - echo "has 4mic before, now remove it" - sed -i "s/dtoverlay=seeed-4mic-voicecard//g" /boot/config.txt - fi - grep -q "dtoverlay=seeed-2mic-voicecard" /boot/config.txt || \ - echo "dtoverlay=seeed-2mic-voicecard" >> /boot/config.txt - - ;; - "4mic") - echo "cp ac108_asound.state /var/lib/alsa/asound.state" - cp ac108_asound.state /var/lib/alsa/asound.state - cp asound_4mic.conf /etc/asound.conf - if [ "x${has_2mic}" != x ] ; then - echo "has 2mic before, now remove it" - sed -i "s/dtoverlay=seeed-2mic-voicecard//g" /boot/config.txt - fi - grep -q "dtoverlay=seeed-4mic-voicecard" /boot/config.txt || \ - echo "dtoverlay=seeed-4mic-voicecard" >> /boot/config.txt - ;; - *) - echo "Please use 2mic or 4mic" - ;; -esac +#install config files +mkdir /etc/voicecard || true +cp *.conf /etc/voicecard +cp *.state /etc/voicecard + + +cp seeed-voicecard /usr/bin/ +cp seeed-voicecard.service /lib/systemd/system/ +systemctl enable seeed-voicecard.service echo "------------------------------------------------------" echo "Please reboot your raspberry pi to apply all settings" diff --git a/uninstall.sh b/uninstall.sh index 1dc401c..3746923 100755 --- a/uninstall.sh +++ b/uninstall.sh @@ -12,81 +12,29 @@ if [ "x${is_Raspberry}" != "xRaspberry" ] ; then fi uname_r=$(uname -r) -card=$1 -if [ x${card} = "x" ] ; then - echo "Usage: ./uninstall 2mic|4mic" - exit 1 -fi -if [ x${card} = "x2mic" ] ; then - echo "delete dtoverlay=seeed-2mic-voicecard in /boot/config.txt" - sed -i "s/dtoverlay=seeed-2mic-voicecard//g" /boot/config.txt - if [ -f /boot/overlays/seeed-2mic-voicecard.dtbo ] ; then - echo "remove seeed-2mic-voicecard.dtbo in /boot/overlays" - rm /boot/overlays/seeed-2mic-voicecard.dtbo - fi - if [ -f /lib/modules/${uname_r}/kernel/sound/soc/codecs/snd-soc-wm8960.ko ] ; then - echo "remove snd-soc-wm8960.ko" - rm /lib/modules/${uname_r}/kernel/sound/soc/codecs/snd-soc-wm8960.ko - fi +echo "remove dtbos" +rm /boot/overlays/seeed-2mic-voicecard.dtbo || true +rm /boot/overlays/seeed-4mic-voicecard.dtbo || true +rm /boot/overlays/seeed-6mic-voicecard.dtbo || true - if [ -d /var/lib/dkms/seeed-voicecard ] ; then - echo "remove seeed-voicecard dkms" - rm -rf /var/lib/dkms/seeed-voicecard - fi +echo "remove alsa configs" +rm -rf /etc/voicecard/ || true - echo "delete snd-soc-wm8960 in /etc/modules" - sed -i "s/snd-soc-wm8960//g" /etc/modules +echo "disabled seeed-voicecard.service " +systemctl disable seeed-voicecard.service - if [ -f /var/lib/alsa/asound.state ] ; then - echo "remove wm8960_asound.state" - rm /var/lib/alsa/asound.state - fi +echo "remove seeed-vocecard" +rm /usr/bin/seeed-voicecard || true +rm /lib/systemd/system/seeed-voicecard.service || true - if [ -f /etc/asound.conf ] ; then - echo "remove asound_2mic.conf" - rm /etc/asound.conf - fi -fi +echo "remove dkms" +rm -rf /var/lib/dkms/seeed-voicecard || true -if [ x${card} = "x4mic" ] ; then - echo "delete dtoverlay=seeed-4mic-voicecard in /boot/config.txt" - sed -i "s/dtoverlay=seeed-4mic-voicecard//g" /boot/config.txt - - if [ -f /boot/overlays/seeed-4mic-voicecard.dtbo ] ; then - echo "remove seeed-4mic-voicecard.dtbo in /boot/overlays" - rm /boot/overlays/seeed-4mic-voicecard.dtbo - fi - - if [ -f /lib/modules/${uname_r}/kernel/sound/soc/codecs/snd-soc-ac108.ko ] ; then - echo "remove snd-soc-ac108.ko" - rm /lib/modules/${uname_r}/kernel/sound/soc/codecs/snd-soc-ac108.ko - fi - - if [ -d /var/lib/dkms/seeed-voicecard ] ; then - echo "remove seeed-voicecard dkms" - rm -rf /var/lib/dkms/seeed-voicecard - fi - - echo "delete snd-soc-ac108 in /etc/modules" - sed -i "s/snd-soc-ac108//g" /etc/modules - - if [ -f /var/lib/alsa/asound.state ] ; then - echo "remove ac108_asound.state" - rm /var/lib/alsa/asound.state - fi - - if [ -f /etc/asound.conf ] ; then - echo "remove asound_4mic.conf" - rm /etc/asound.conf - fi - - if [ -f /usr/lib/arm-linux-gnueabihf/alsa-lib/libasound_module_pcm_ac108.so ] ; then - echo "remove libasound_module_pcm_ac108.so in /usr/lib/arm-linux-gnueabihf/alsa-lib/ " - rm /usr/lib/arm-linux-gnueabihf/alsa-lib/libasound_module_pcm_ac108.so - fi -fi +echo "remove kernel modules" +rm /lib/modules/${uname_r}/kernel/sound/soc/codecs/snd-soc-wm8960.ko || true +rm /lib/modules/${uname_r}/kernel/sound/soc/codecs/snd-soc-ac108.ko || true echo "------------------------------------------------------" echo "Please reboot your raspberry pi to apply all settings"