Skip to content
Snippets Groups Projects
Commit cf6e7b97 authored by Gonzalo Belcredi's avatar Gonzalo Belcredi
Browse files
parents 4e75a3d6 f2b3873a
Branches master
No related tags found
No related merge requests found
......@@ -26,7 +26,7 @@ RUN echo 'gnuradio:gnuradio' | chpasswd
# I create a dir at home which I'll use to persist after the container is closed (need to change it's ownership)
RUN mkdir /home/gnuradio/persistent && chown gnuradio /home/gnuradio/persistent
RUN sudo apt-get install -y cmake libusb-1.0 libusb-1.0-0-dev swig
RUN apt-get install -y cmake libusb-1.0 libusb-1.0-0-dev swig
#RUN sudo apt-get install -y rtl-sdr
......@@ -41,12 +41,12 @@ RUN apt-get install -y git
# Install rtl-sdr
RUN sudo apt-get install -y git cmake libusb-1.0 libusb-1.0-0-dev swig pkg-config
RUN apt-get install -y git cmake libusb-1.0 libusb-1.0-0-dev swig pkg-config
RUN git clone git://git.osmocom.org/rtl-sdr.git /home/gnuradio/rtl-sdr/ && cd /home/gnuradio/rtl-sdr/ && mkdir build && cd build && cmake ../ -DINSTALL_UDEV_RULES=ON -DDETACH_KERNEL_DRIVER=ON && make && sudo make install && sudo ldconfig
# Install hackrf
RUN sudo apt-get install -y libhackrf-dev
RUN apt-get install -y libhackrf-dev
# Install bladerf
......@@ -57,10 +57,9 @@ RUN apt-get install -y libbladerf-dev
RUN apt-get install -y python3.9 gnuradio
# Install gr-osmosdr
RUN sudo apt install liborc-0.4-0 liborc-0.4-dev
RUN git clone https://github.com/osmocom/gr-osmosdr.git /home/gnuradio/gr-osmosdr/
RUN cd /home/gnuradio/gr-osmosdr/ && git checkout gr3.8 && mkdir build && cd build/ && cmake -DCMAKE_INSTALL_PREFIX=/usr ../ && make && sudo make install && sudo ldconfig
RUN apt install liborc-0.4-0 liborc-0.4-dev
RUN git clone --branch gr3.8 https://github.com/osmocom/gr-osmosdr.git /home/gnuradio/gr-osmosdr/
RUN cd /home/gnuradio/gr-osmosdr/ && mkdir build && cd build/ && cmake -DCMAKE_INSTALL_PREFIX=/usr ../ && make && make install && sudo ldconfig
# installing other packages needed for downloading and installing OOT modules
RUN apt-get install -y gnuradio-dev cmake git libboost-all-dev libcppunit-dev liblog4cpp5-dev swig liborc-dev libgsl-dev
......@@ -81,7 +80,7 @@ RUN apt remove -y soapysdr0.7-module-remote
RUN apt-get install -y libxml2 libxml2-dev bison flex libaio-dev libavahi-common-dev libavahi-client-dev liborc-dev
RUN git clone https://github.com/analogdevicesinc/libiio.git /home/gnuradio/libiio
RUN cd /home/gnuradio/libiio && mkdir build && cd build && cmake .. -DPYTHON_BINDINGS=ON && make && sudo make install
RUN cd /home/gnuradio/libiio && git checkout v0.24 && mkdir build && cd build && cmake .. -DPYTHON_BINDINGS=ON && make && sudo make install
RUN git clone https://github.com/analogdevicesinc/libad9361-iio.git /home/gnuradio/libad9361-iio
RUN cd /home/gnuradio/libad9361-iio && mkdir build && cd build && cmake .. -DPYTHON_BINDINGS=ON && make && sudo make install
......
......@@ -9,6 +9,10 @@
El contenedor Docker nos da un entorno Ubuntu 20.04 con GnuRadio 3.8 y los drivers instalados de RTL-SDR, PLUTO-SDR y NUAND BLADE-RF.
Requisitos previos:
- Docker: ![https://docs.docker.com/engine/install/](https://docs.docker.com/engine/install/)
- Asegurarse también de seguir los pasos de post-instalación en ![https://docs.docker.com/engine/install/](https://docs.docker.com/engine/install/linux-postinstall/ )
### Build
En el directorio raíz hacer:
......
options:
parameters:
author: ''
category: Custom
cmake_opt: ''
comment: ''
copyright: ''
description: ''
gen_cmake: 'On'
gen_linking: dynamic
generate_options: qt_gui
hier_block_src_path: '.:'
id: top_block
max_nouts: '0'
output_language: python
placement: (0,0)
qt_qss_theme: ''
realtime_scheduling: ''
run: 'True'
run_command: '{python} -u {filename}'
run_options: prompt
sizing_mode: fixed
thread_safe_setters: ''
title: ''
window_size: 1280, 1024
states:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [10, 10]
rotation: 0
state: enabled
blocks:
- name: alfa
id: variable
parameters:
comment: ''
value: '0.350'
states:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [424, 4]
rotation: 0
state: enabled
- name: amp
id: variable_qtgui_range
parameters:
comment: ''
gui_hint: ''
label: ''
min_len: '200'
orient: Qt.Horizontal
rangeType: float
start: '.001'
step: '.1'
stop: '10'
value: '.15'
widget: counter_slider
states:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [288, 4]
rotation: 0
state: enabled
- name: bits_per_sym
id: variable
parameters:
comment: ''
value: '1'
states:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [536, 68]
rotation: 0
state: enabled
- name: enc_ccsds
id: variable_ccsds_encoder_def
parameters:
comment: ''
dim1: '1'
dim2: '4'
framebits: frame_size*8
mode: fec.CC_STREAMING
ndim: '0'
state_start: '0'
states:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [1224, 4.0]
rotation: 0
state: enabled
- name: len_sym_srrc
id: variable
parameters:
comment: ''
value: '11'
states:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [512, 4]
rotation: 0
state: enabled
- name: pulso
id: variable
parameters:
comment: ''
value: firdes.root_raised_cosine(samp_per_sym, sym_rate*samp_per_sym, sym_rate,
alfa, samp_per_sym*len_sym_srrc)
states:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [616, 4]
rotation: 0
state: enabled
- name: samp_per_sym
id: variable
parameters:
comment: ''
value: '3'
states:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [424, 68]
rotation: 0
state: enabled
- name: samp_rate
id: variable
parameters:
comment: ''
value: sym_rate*samp_per_sym
states:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [728, 68]
rotation: 0
state: enabled
- name: samp_rate_sdr
id: variable
parameters:
comment: ''
value: int(2.048e6)
states:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [896, 4]
rotation: 0
state: enabled
- name: sym_rate
id: variable
parameters:
comment: ''
value: 300e03*2
states:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [640, 68]
rotation: 0
state: enabled
- name: blocks_file_source_0
id: blocks_file_source
parameters:
affinity: ''
alias: ''
begin_tag: pmt.PMT_NIL
comment: Imagen
file: /home/gnuradio/persistent/dat/imagen_bin.dat
length: '0'
maxoutbuf: '0'
minoutbuf: '0'
offset: '0'
repeat: 'True'
type: byte
vlen: '1'
states:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [16, 316.0]
rotation: 0
state: enabled
- name: blocks_multiply_const_vxx_1
id: blocks_multiply_const_vxx
parameters:
affinity: ''
alias: ''
comment: ''
const: amp
maxoutbuf: '0'
minoutbuf: '0'
type: complex
vlen: '1'
states:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [1328, 364.0]
rotation: 0
state: enabled
- name: blocks_unpack_k_bits_bb_0
id: blocks_unpack_k_bits_bb
parameters:
affinity: ''
alias: ''
comment: ''
k: '8'
maxoutbuf: '0'
minoutbuf: '0'
states:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [264, 348.0]
rotation: 0
state: true
- name: digital_chunks_to_symbols_xx_0
id: digital_chunks_to_symbols_xx
parameters:
affinity: ''
alias: ''
comment: ''
dimension: '1'
in_type: byte
maxoutbuf: '0'
minoutbuf: '0'
num_ports: '1'
out_type: complex
symbol_table: '[-1,1]'
states:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [936, 352.0]
rotation: 0
state: enabled
- name: digital_diff_encoder_bb_0
id: digital_diff_encoder_bb
parameters:
affinity: ''
alias: ''
comment: ''
maxoutbuf: '0'
minoutbuf: '0'
modulus: 2**bits_per_sym
states:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [632, 348.0]
rotation: 0
state: enabled
- name: fec_extended_encoder_1
id: fec_extended_encoder
parameters:
affinity: ''
alias: ''
comment: ''
encoder_list: enc_ccsds
maxoutbuf: '0'
minoutbuf: '0'
puncpat: puncpat
threadtype: ordinary
states:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [400, 236.0]
rotation: 0
state: enabled
- name: frame_size
id: parameter
parameters:
alias: ''
comment: ''
hide: none
label: Frame Size
short_id: ''
type: intx
value: 830*549
states:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [1112, 4.0]
rotation: 0
state: enabled
- name: iio_pluto_sink_0
id: iio_pluto_sink
parameters:
affinity: ''
alias: ''
attenuation1: '10'
auto_filter: 'True'
bandwidth: '20000000'
buffer_size: '32768'
comment: ''
cyclic: 'False'
filter: ''
frequency: '258000000'
samplerate: samp_rate_sdr
uri: ip:192.168.2.1
states:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [1800, 300.0]
rotation: 0
state: true
- name: import_0
id: import
parameters:
alias: ''
comment: ''
imports: from gnuradio.filter import firdes
states:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [176, 60]
rotation: 0
state: enabled
- name: import_1
id: import
parameters:
alias: ''
comment: ''
imports: import math
states:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [176, 12]
rotation: 0
state: enabled
- name: pfb_interpolator_ccf_0
id: pfb_interpolator_ccf
parameters:
affinity: ''
alias: ''
atten: '100'
comment: ''
interp: samp_per_sym
maxoutbuf: '0'
minoutbuf: '0'
samp_delay: '0'
taps: pulso
states:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [1112, 268.0]
rotation: 0
state: enabled
- name: puncpat
id: parameter
parameters:
alias: ''
comment: ''
hide: none
label: ''
short_id: ''
type: ''
value: '''11'''
states:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [1024, 4.0]
rotation: 0
state: enabled
- name: qtgui_freq_sink_x_0
id: qtgui_freq_sink_x
parameters:
affinity: ''
alias: ''
alpha1: '1.0'
alpha10: '1.0'
alpha2: '1.0'
alpha3: '1.0'
alpha4: '1.0'
alpha5: '1.0'
alpha6: '1.0'
alpha7: '1.0'
alpha8: '1.0'
alpha9: '1.0'
autoscale: 'False'
average: '1.0'
axislabels: 'True'
bw: samp_rate
color1: '"blue"'
color10: '"dark blue"'
color2: '"red"'
color3: '"green"'
color4: '"black"'
color5: '"cyan"'
color6: '"magenta"'
color7: '"yellow"'
color8: '"dark red"'
color9: '"dark green"'
comment: ''
ctrlpanel: 'False'
fc: '0'
fftsize: '1024'
freqhalf: 'True'
grid: 'False'
gui_hint: ''
label: Relative Gain
label1: ''
label10: ''
label2: ''
label3: ''
label4: ''
label5: ''
label6: ''
label7: ''
label8: ''
label9: ''
legend: 'True'
maxoutbuf: '0'
minoutbuf: '0'
name: '""'
nconnections: '1'
showports: 'True'
tr_chan: '0'
tr_level: '0.0'
tr_mode: qtgui.TRIG_MODE_FREE
tr_tag: '""'
type: complex
units: dB
update_time: '0.10'
width1: '1'
width10: '1'
width2: '1'
width3: '1'
width4: '1'
width5: '1'
width6: '1'
width7: '1'
width8: '1'
width9: '1'
wintype: firdes.WIN_BLACKMAN_hARRIS
ymax: '10'
ymin: '-140'
states:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [1560, 144.0]
rotation: 0
state: enabled
- name: qtgui_time_sink_x_0
id: qtgui_time_sink_x
parameters:
affinity: ''
alias: ''
alpha1: '1.0'
alpha10: '1.0'
alpha2: '1.0'
alpha3: '1.0'
alpha4: '1.0'
alpha5: '1.0'
alpha6: '1.0'
alpha7: '1.0'
alpha8: '1.0'
alpha9: '1.0'
autoscale: 'False'
axislabels: 'True'
color1: blue
color10: dark blue
color2: red
color3: green
color4: black
color5: cyan
color6: magenta
color7: yellow
color8: dark red
color9: dark green
comment: ''
ctrlpanel: 'False'
entags: 'True'
grid: 'False'
gui_hint: ''
label1: ''
label10: ''
label2: ''
label3: ''
label4: ''
label5: ''
label6: ''
label7: ''
label8: ''
label9: ''
legend: 'True'
marker1: '-1'
marker10: '-1'
marker2: '-1'
marker3: '-1'
marker4: '-1'
marker5: '-1'
marker6: '-1'
marker7: '-1'
marker8: '-1'
marker9: '-1'
name: '""'
nconnections: '1'
size: '1024'
srate: samp_rate
stemplot: 'False'
style1: '1'
style10: '1'
style2: '1'
style3: '1'
style4: '1'
style5: '1'
style6: '1'
style7: '1'
style8: '1'
style9: '1'
tr_chan: '0'
tr_delay: '0'
tr_level: '0.0'
tr_mode: qtgui.TRIG_MODE_FREE
tr_slope: qtgui.TRIG_SLOPE_POS
tr_tag: '""'
type: complex
update_time: '0.10'
width1: '1'
width10: '1'
width2: '1'
width3: '1'
width4: '1'
width5: '1'
width6: '1'
width7: '1'
width8: '1'
width9: '1'
ylabel: Amplitude
ymax: '1'
ymin: '-1'
yunit: '""'
states:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [1560, 252.0]
rotation: 0
state: enabled
- name: rational_resampler_xxx_0
id: rational_resampler_xxx
parameters:
affinity: ''
alias: ''
comment: ''
decim: int(samp_rate)
fbw: '0.4'
interp: int(samp_rate_sdr)
maxoutbuf: '0'
minoutbuf: '0'
taps: ''
type: ccc
states:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [1560, 340.0]
rotation: 0
state: enabled
- name: video_sdl_sink_0
id: video_sdl_sink
parameters:
affinity: ''
alias: ''
comment: ''
display_height: '549'
display_width: '830'
fps: '0'
height: '549'
num_channels: '1'
type: byte
width: '830'
states:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [208, 468.0]
rotation: 0
state: true
connections:
- [blocks_file_source_0, '0', blocks_unpack_k_bits_bb_0, '0']
- [blocks_file_source_0, '0', video_sdl_sink_0, '0']
- [blocks_multiply_const_vxx_1, '0', qtgui_freq_sink_x_0, '0']
- [blocks_multiply_const_vxx_1, '0', qtgui_time_sink_x_0, '0']
- [blocks_multiply_const_vxx_1, '0', rational_resampler_xxx_0, '0']
- [blocks_unpack_k_bits_bb_0, '0', fec_extended_encoder_1, '0']
- [digital_chunks_to_symbols_xx_0, '0', pfb_interpolator_ccf_0, '0']
- [digital_diff_encoder_bb_0, '0', digital_chunks_to_symbols_xx_0, '0']
- [fec_extended_encoder_1, '0', digital_diff_encoder_bb_0, '0']
- [pfb_interpolator_ccf_0, '0', blocks_multiply_const_vxx_1, '0']
- [rational_resampler_xxx_0, '0', iio_pluto_sink_0, '0']
metadata:
file_format: 1
docker run --runtime=runc --net=host --env="DISPLAY" -v $HOME/:/opt/root --volume="$HOME/.Xauthority:/root/.Xauthority:rw" --privileged --device /dev/snd --device /dev/dri -v /dev/bus/usb/:/dev/bus/usb/ -v /var/run/avahi-daemon/socket:/var/run/avahi-daemon/socket --privileged -v $PWD/:/home/gnuradio/persistent/ --group-add=audio -it ubuntu:comina bash
docker run --runtime=runc --net=host --env="DISPLAY" --volume="$HOME/.Xauthority:/root/.Xauthority:rw" --privileged --device /dev/snd --device /dev/dri -v /dev/bus/usb/:/dev/bus/usb/ -v /var/run/avahi-daemon/socket:/var/run/avahi-daemon/socket --privileged -v $PWD/:/home/gnuradio/persistent/ --group-add=audio -it ubuntu:comina bash
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment