added SDRplay

This commit is contained in:
2024-08-20 08:15:45 +02:00
parent c81c0ab32b
commit 22358847f7
5 changed files with 2312 additions and 5 deletions
+20 -4
View File
@@ -51,16 +51,32 @@ RUN make -j$(nproc)
RUN make install -j$(nproc) RUN make install -j$(nproc)
RUN ldconfig RUN ldconfig
# ToDo: # SDRPlay API
# add SDRPlay API WORKDIR /tmp/sources
# ADD https://github.com/pothosware/SoapySDRPlay.git COPY bin/SDRplay_RSP_API-Linux-3.15.2.run /tmp/sources/
RUN chmod +x SDRplay_RSP_API-Linux-3.15.2.run
RUN ./SDRplay_RSP_API-Linux-3.15.2.run --noexec --target sdrplay_api
WORKDIR ./sdrplay_api
COPY bin/install_lib.patch .
RUN patch install_lib.sh install_lib.patch
RUN ./install_lib.sh
RUN rm -rf /tmp/sources # SoapySDRPlay
ADD https://github.com/pothosware/SoapySDRPlay.git /tmp/sources/SoapySDRPlay
WORKDIR /tmp/sources/SoapySDRPlay/build
RUN cmake ../
RUN make -j$(nproc)
RUN make install -j$(nproc)
RUN ldconfig
#RUN rm -rf /tmp/sources
# ---------------------------------------------------------------------------------------------------------------------------------------- # ----------------------------------------------------------------------------------------------------------------------------------------
# Add user # Add user
RUN useradd -m jens -p jens -s /usr/bin/bash RUN useradd -m jens -p jens -s /usr/bin/bash
RUN echo jens:change_me | chpasswd RUN echo jens:change_me | chpasswd
RUN echo root:root4me | chpasswd
WORKDIR /home/jens WORKDIR /home/jens
RUN touch .Xauthority RUN touch .Xauthority
+2038
View File
File diff suppressed because it is too large Load Diff
+251
View File
@@ -0,0 +1,251 @@
--- install_lib.sh 2024-05-29 01:09:30.000000000 +0200
+++ install_lib2.sh 2024-08-19 19:41:35.445222020 +0200
@@ -16,19 +16,6 @@
echo "access through the sudo program. This is required to install the daemon into"
echo "the system files."
echo " "
-
-read -p "Press RETURN to view the license agreement" ret
-more -d sdrplay_license.txt
-while true; do
- echo "Press y and RETURN to accept the license agreement and continue with"
- read -p "the installation, or press n and RETURN to exit the installer [y/n] " yn
- case $yn in
- [Yy]* ) break;;
- [Nn]* ) exit;;
- * ) echo "Please answer y or n";;
- esac
-done
-
echo " "
echo "A copy of the license agreement can be found here: ${HOME}/sdrplay_license.txt"
cp sdrplay_license.txt ${HOME}/.
@@ -69,7 +56,7 @@
echo " "
echo "Checking for root permissions. You may be prompted for your password..."
echo " "
-sudo ls >> /dev/null 2>&1
+ls >> /dev/null 2>&1
echo "The rest of the installation will continue with root permission..."
echo " "
@@ -147,7 +134,7 @@
if [ -d "/etc/udev" ]; then
echo -n "Udev directory found, adding rules..."
- sudo bash -c 'cat > /etc/udev/rules.d/66-sdrplay.rules' << EOF
+ bash -c 'cat > /etc/udev/rules.d/66-sdrplay.rules' << EOF
SUBSYSTEM=="usb",ENV{DEVTYPE}=="usb_device",ATTRS{idVendor}=="1df7",ATTRS{idProduct}=="2500",MODE:="0666"
SUBSYSTEM=="usb",ENV{DEVTYPE}=="usb_device",ATTRS{idVendor}=="1df7",ATTRS{idProduct}=="3000",MODE:="0666"
SUBSYSTEM=="usb",ENV{DEVTYPE}=="usb_device",ATTRS{idVendor}=="1df7",ATTRS{idProduct}=="3010",MODE:="0666"
@@ -156,14 +143,14 @@
SUBSYSTEM=="usb",ENV{DEVTYPE}=="usb_device",ATTRS{idVendor}=="1df7",ATTRS{idProduct}=="3050",MODE:="0666"
SUBSYSTEM=="usb",ENV{DEVTYPE}=="usb_device",ATTRS{idVendor}=="1df7",ATTRS{idProduct}=="3060",MODE:="0666"
EOF
- sudo chmod 644 /etc/udev/rules.d/66-sdrplay.rules
- sudo rm -f /etc/udev/rules.d/66-mirics.rules
+ chmod 644 /etc/udev/rules.d/66-sdrplay.rules
+ rm -f /etc/udev/rules.d/66-mirics.rules
echo "rules added"
REBOOT="y"
if [ -d "/etc/udev/hwdb.d" ]; then
echo -n "Adding SDRplay devices to the local hardware database..."
- sudo bash -c 'cat > /etc/udev/hwdb.d/20-sdrplay.hwdb' << EOF
+ bash -c 'cat > /etc/udev/hwdb.d/20-sdrplay.hwdb' << EOF
usb:v1DF7*
ID_VENDOR_FROM_DATABASE=SDRplay
@@ -188,13 +175,13 @@
usb:v1DF7p3060*
ID_MODEL_FROM_DATABASE=RSPdxR2
EOF
- sudo chmod 644 /etc/udev/hwdb.d/20-sdrplay.hwdb
- sudo systemd-hwdb update
- sudo udevadm trigger
+ chmod 644 /etc/udev/hwdb.d/20-sdrplay.hwdb
+ systemd-hwdb update
+ udevadm trigger
if [ "${SRVTYPE}" != "initd" ]; then
- sudo systemctl restart udev
+ systemctl restart udev
else
- sudo service udev restart
+ service udev restart
fi
echo "Done"
fi
@@ -203,9 +190,9 @@
echo "ERROR: udev rules directory not found, add udev support and run the"
echo "installer script again. udev support can be added by running..."
if [ "${INSTALLARCH}" == "ppc64le" ]; then
- echo "sudo ${PKG_TOOL} eudev"
+ echo "${PKG_TOOL} eudev"
else
- echo "sudo ${PKG_TOOL} libudev-dev"
+ echo "${PKG_TOOL} libudev-dev"
fi
echo " "
exit 1
@@ -217,20 +204,20 @@
if grep -q RSP1B /var/lib/usbutils/usb.ids; then
echo "RSP1B already in the local USB database, continuing..."
else
- sudo cp /var/lib/usbutils/usb.ids /var/lib/usbutils/usb.ids.bak
- sudo bash -c "awk '/^1e/ && !x {print \" 3050 RSP1B\"; x=1} 1' /var/lib/usbutils/usb.ids.bak > /var/lib/usbutils/usb.ids"
+ cp /var/lib/usbutils/usb.ids /var/lib/usbutils/usb.ids.bak
+ bash -c "awk '/^1e/ && !x {print \" 3050 RSP1B\"; x=1} 1' /var/lib/usbutils/usb.ids.bak > /var/lib/usbutils/usb.ids"
echo "Added RSP1B to USB name database"
fi
if grep -q RSPdxR2 /var/lib/usbutils/usb.ids; then
echo "RSPdxR2 already in the local USB database, continuing..."
else
- sudo cp /var/lib/usbutils/usb.ids /var/lib/usbutils/usb.ids.bak
- sudo bash -c "awk '/^1e/ && !x {print \" 3060 RSPdxR2\"; x=1} 1' /var/lib/usbutils/usb.ids.bak > /var/lib/usbutils/usb.ids"
+ cp /var/lib/usbutils/usb.ids /var/lib/usbutils/usb.ids.bak
+ bash -c "awk '/^1e/ && !x {print \" 3060 RSPdxR2\"; x=1} 1' /var/lib/usbutils/usb.ids.bak > /var/lib/usbutils/usb.ids"
echo "Added RSPdxR2 to USB name database"
fi
else
- sudo cp /var/lib/usbutils/usb.ids /var/lib/usbutils/usb.ids.bak
- sudo bash -c "awk '/^1e/ && !x {print \"1df7 SDRplay\n 2500 RSP1\n 3000 RSP1A\n 3010 RSP2/RSP2pro\n 3020 RSPduo\n 3030 RSPdx\n 3050 RSP1B\n 3060 RSPdxR2\"; x=1} 1' /var/lib/usbutils/usb.ids.bak > /var/lib/usbutils/usb.ids"
+ cp /var/lib/usbutils/usb.ids /var/lib/usbutils/usb.ids.bak
+ bash -c "awk '/^1e/ && !x {print \"1df7 SDRplay\n 2500 RSP1\n 3000 RSP1A\n 3010 RSP2/RSP2pro\n 3020 RSPduo\n 3030 RSPdx\n 3050 RSP1B\n 3060 RSPdxR2\"; x=1} 1' /var/lib/usbutils/usb.ids.bak > /var/lib/usbutils/usb.ids"
echo "SDRplay devices added to the local USB name database"
fi
else
@@ -259,16 +246,6 @@
echo " "
# 0--------1---------2---------3---------4---------5---------6---------7---------8
-while true; do
- echo "To continue the installation with these defaults press y and RETURN"
- read -p "or press n and RETURN to change them [y/n] " yn
- case $yn in
- [Yy]* ) change="n";break;;
- [Nn]* ) change="y";break;;
- * ) echo "Please answer y or n";;
- esac
-done
-
if [ "${change}" == "y" ]; then
echo "Changing default locations..."
read -p "API service location [${locservice}]: " newloc
@@ -297,42 +274,42 @@
done
fi
-sudo mkdir -p -m 755 ${locservice} >> /dev/null 2>&1
-sudo mkdir -p -m 755 ${locheader} >> /dev/null 2>&1
-sudo mkdir -p -m 755 ${loclib} >> /dev/null 2>&1
+mkdir -p -m 755 ${locservice} >> /dev/null 2>&1
+mkdir -p -m 755 ${locheader} >> /dev/null 2>&1
+mkdir -p -m 755 ${loclib} >> /dev/null 2>&1
echo -n "Cleaning old API files..."
-sudo rm -f /usr/local/lib/libsdrplay_api.so*
+rm -f /usr/local/lib/libsdrplay_api.so*
echo "Done."
echo -n "Installing ${loclib}/libsdrplay_api.so.${VERS}..."
-sudo rm -f ${loclib}/libsdrplay_api.so.${VERS}
-sudo cp -f ${INSTALLARCH}/libsdrplay_api.so.${VERS} ${loclib}/.
-sudo chmod 644 ${loclib}/libsdrplay_api.so.${VERS}
-sudo rm -f ${loclib}/libsdrplay_api.so.${MAJVERS}
-sudo ln -s ${loclib}/libsdrplay_api.so.${VERS} ${loclib}/libsdrplay_api.so.${MAJVERS}
-sudo rm -f ${loclib}/libsdrplay_api.so
-sudo ln -s ${loclib}/libsdrplay_api.so.${MAJVERS} ${loclib}/libsdrplay_api.so
+rm -f ${loclib}/libsdrplay_api.so.${VERS}
+cp -f ${INSTALLARCH}/libsdrplay_api.so.${VERS} ${loclib}/.
+chmod 644 ${loclib}/libsdrplay_api.so.${VERS}
+rm -f ${loclib}/libsdrplay_api.so.${MAJVERS}
+ln -s ${loclib}/libsdrplay_api.so.${VERS} ${loclib}/libsdrplay_api.so.${MAJVERS}
+rm -f ${loclib}/libsdrplay_api.so
+ln -s ${loclib}/libsdrplay_api.so.${MAJVERS} ${loclib}/libsdrplay_api.so
echo "Done"
echo -n "Installing header files in ${locheader}..."
-sudo cp -f inc/sdrplay_api*.h ${locheader}/.
-sudo chmod 644 ${locheader}/sdrplay_api*.h
+cp -f inc/sdrplay_api*.h ${locheader}/.
+chmod 644 ${locheader}/sdrplay_api*.h
echo "Done"
echo -n "Installing API Service in ${locservice}..."
-sudo cp -f ${INSTALLARCH}/sdrplay_apiService ${locservice}/sdrplay_apiService
-sudo chmod 755 ${locservice}/sdrplay_apiService
+cp -f ${INSTALLARCH}/sdrplay_apiService ${locservice}/sdrplay_apiService
+chmod 755 ${locservice}/sdrplay_apiService
echo "Done"
echo -n "Installing Service scripts and starting daemon..."
if [ -d "/etc/systemd/system" ]; then
SRVTYPE="systemd"
if [ -f "/etc/systemd/system/sdrplay.service" ]; then
- sudo systemctl stop sdrplay
- sudo systemctl disable sdrplay
+ systemctl stop sdrplay
+ systemctl disable sdrplay
fi
- sudo bash -c 'cat > /etc/systemd/system/sdrplay.service' << EOF
+ bash -c 'cat > /etc/systemd/system/sdrplay.service' << EOF
[Unit]
Description=SDRplay API Service
After=network.target
@@ -349,15 +326,15 @@
WantedBy=multi-user.target
EOF
- sudo chmod 644 /etc/systemd/system/sdrplay.service
- sudo systemctl enable sdrplay
- sudo systemctl start sdrplay
+ chmod 644 /etc/systemd/system/sdrplay.service
+ systemctl enable sdrplay
+ systemctl start sdrplay
else
SRVTYPE="initd"
if [ -f "/etc/init.d/sdrplayService" ]; then
- sudo service sdrplayService stop
+ service sdrplayService stop
fi
- sudo bash -c 'cat > /etc/init.d/sdrplayService' << EOF
+ bash -c 'cat > /etc/init.d/sdrplayService' << EOF
#!/bin/sh
### BEGIN INIT INFO
@@ -436,15 +413,15 @@
exit 0
EOF
- sudo chmod 755 /etc/init.d/sdrplayService
+ chmod 755 /etc/init.d/sdrplayService
UPRC=$( command -v update-rc.d )
if [ "${UPRC}" != "" ]; then
- sudo update-rc.d sdrplayService defaults
+ update-rc.d sdrplayService defaults
fi
- sudo service sdrplayService start
+ service sdrplayService start
fi
-sudo ldconfig
+ldconfig
echo "Done"
@@ -457,11 +434,11 @@
echo "To start and stop the API service, use the following commands..."
echo " "
if [ "${SRVTYPE}" != "systemd" ]; then
- echo "sudo service sdrplayService start"
- echo "sudo service sdrplayService stop"
+ echo "service sdrplayService start"
+ echo "service sdrplayService stop"
else
- echo "sudo systemctl start sdrplay"
- echo "sudo systemctl stop sdrplay"
+ echo "systemctl start sdrplay"
+ echo "systemctl stop sdrplay"
fi
echo " "
echo "If supported on your system, lsusb will now show the RSP name"
+1 -1
View File
@@ -29,7 +29,7 @@ ListenAddress 0.0.0.0
# Authentication: # Authentication:
#LoginGraceTime 2m #LoginGraceTime 2m
#PermitRootLogin prohibit-password PermitRootLogin yes
#StrictModes yes #StrictModes yes
#MaxAuthTries 6 #MaxAuthTries 6
#MaxSessions 10 #MaxSessions 10
+2
View File
@@ -2,4 +2,6 @@
set -x set -x
service ssh start service ssh start
/opt/sdrplay_api/sdrplay_apiService &
SoapySDRServer --bind="0.0.0.0:$SOAPY_REOMOTE_PORT" >>/tmp/SoapySDRServer & SoapySDRServer --bind="0.0.0.0:$SOAPY_REOMOTE_PORT" >>/tmp/SoapySDRServer &