From c81c0ab32bcbcf7aece365859878089df12456da Mon Sep 17 00:00:00 2001 From: Jens Ahrensfeld Date: Mon, 19 Aug 2024 17:30:08 +0200 Subject: [PATCH] build UHD and Soapy from sources --- Dockerfile | 69 ++++++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 57 insertions(+), 12 deletions(-) diff --git a/Dockerfile b/Dockerfile index 8233c62..a8334c0 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,35 +1,80 @@ # syntax=docker/dockerfile:1 FROM jayfield/debian-baseimage +# ---------------------------------------------------------------------------------------------------------------------------------------- RUN apt-get update && \ - apt-get -y install --no-install-recommends openssh-server udev soapysdr-module-all soapyremote-server soapysdr-tools uhd-host uhd-soapysdr gqrx-sdr && \ + apt-get -y install --no-install-recommends openssh-server udev \ + autoconf automake build-essential ccache cmake cpufrequtils doxygen ethtool \ + g++ git inetutils-tools libboost-all-dev libncurses5 libncurses5-dev libusb-1.0-0 libusb-1.0-0-dev \ + libusb-dev python3-dev python3-mako python3-numpy python3-requests python3-scipy python3-setuptools \ + python3-ruamel.yaml && \ rm -rf /var/lib/apt/lists/* -RUN cp /usr/libexec/uhd/utils/uhd-usrp.rules /etc/udev/rules.d/ -RUN /usr/bin/uhd_images_downloader +# ---------------------------------------------------------------------------------------------------------------------------------------- +# Build from sources +# ---------------------------------------------------------------------------------------------------------------------------------------- +# UHD +ADD https://github.com/EttusResearch/uhd.git /tmp/sources/uhd +WORKDIR /tmp/sources/uhd/host/build +RUN cmake ../ +RUN make -j$(nproc) +RUN make test +RUN make install +RUN ldconfig +RUN cp /usr/local/lib/uhd/utils/uhd-usrp.rules /etc/udev/rules.d/ +RUN /usr/local/bin/uhd_images_downloader + +# SoapySDR +ADD https://github.com/pothosware/SoapySDR.git /tmp/sources/SoapySDR +WORKDIR /tmp/sources/SoapySDR/build +RUN cmake ../ +RUN make -j$(nproc) +RUN make install -j$(nproc) +RUN ldconfig +RUN SoapySDRUtil --info + +# SoapyUHD +ADD https://github.com/pothosware/SoapyUHD.git /tmp/sources/SoapyUHD +WORKDIR /tmp/sources/SoapyUHD/build +RUN cmake ../ +RUN make -j$(nproc) +RUN make install -j$(nproc) +RUN ldconfig +ENV UHD_MODULE_PATH=/usr/local/lib/uhd/modules + +# SoapyRemote +ADD https://github.com/pothosware/SoapyRemote.git /tmp/sources/SoapyRemote +WORKDIR /tmp/sources/SoapyRemote/build +RUN cmake ../ +RUN make -j$(nproc) +RUN make install -j$(nproc) +RUN ldconfig + +# ToDo: +# add SDRPlay API +# ADD https://github.com/pothosware/SoapySDRPlay.git + +RUN rm -rf /tmp/sources + +# ---------------------------------------------------------------------------------------------------------------------------------------- +# Add user RUN useradd -m jens -p jens -s /usr/bin/bash RUN echo jens:change_me | chpasswd WORKDIR /home/jens RUN touch .Xauthority +# Copy scripts and configs ENV SCRIPTS_HOME=/opt/scripts ENV PATH=${PATH}:${SCRIPTS_HOME} - ADD scripts ${SCRIPTS_HOME} -WORKDIR /tmp/apps - -RUN rm -rf /tmp/apps -RUN cd ~ - COPY config/sshd_config /etc/ssh/ +# Ports EXPOSE 55132 EXPOSE 1900 EXPOSE 10022 +# Start server ENTRYPOINT ["/opt/scripts/server_start.sh", "/opt/scripts/server.sh"] - -# see also -# https://github.com/ich777/docker-krusader