Gnuradio

gnuradio [1] 설치 - pluto sdr 관련 gnuradio, gr-iio설치

망고토마토 2021. 11. 14. 07:00
반응형

 

Pluto sdr

Pluto SDR(Software Defined Radio)을 샀다. 

 

Pluto sdr을 사용하기 위해서 필요한 프로그램 2가지가 있다.

 

- GNU Radio : Pluto sdr 같은 SDR에서 전파신호처리를 할 수 있는 프로그램임

- gr-iio : Pluto SDR 제작사인 Analog Device사에서 제공하는 pluto sdr 관련 모듈(gr-iio)임.

 

위 두개의 프로그램을 윈도우 os에 깔아보려 했으나, gr-iio가 윈도우os에서 지원이 되지 않았음. 그래서 VM ware를 깔고 리눅스os를 설치하였음. 그리고 그 곳에 GNU Radio와 gr-iio를 설치하였음. 설치과정은 다음과 같음. 

 

 

 

1. GNU Radio 설치

 

 

https://wiki.gnuradio.org/index.php/InstallingGR

 

InstallingGR - GNU Radio

Install Quickstart(Refer to the rest of this page for more OS and installation options) Linux Install Ubuntu 20.04 (either as a VM or natively) sudo add-apt-repository ppa:gnuradio/gnuradio-releases-3.9 sudo apt-get update sudo apt-get install gnuradio pyt

wiki.gnuradio.org

 

# apt install gnuradio

 

 

2. gr-iio 설치

 

다음 사이트에서 알려주는대로 gr-iio를 설치하였음. 아날로그 디바이스사가 제공하는 사이트

https://wiki.analog.com/resources/tools-software/linux-software/gnuradio#native

 

GNU Radio and IIO Devices: gr-iio [Analog Devices Wiki]

 

wiki.analog.com

gr-iio requires a few main dependencies:

Download and build libiio

Libiio requires the following packages:

  • libxml2
  • libxml2-dev
  • bison
  • flex
  • cmake
  • git
  • libaio-dev

Install with apt:

(sudo) apt install libxml2 libxml2-dev bison flex cmake git libaio-dev libboost-all-dev

If you want the documentation for the C API you will require doxygen:

(sudo) apt install doxygen

If you want the USB backend add libusb support:

(sudo) apt install libusb-1.0-0-dev

If you want zeroconf add avahi support:

(sudo) apt install libavahi-common-dev libavahi-client-dev

Build and install libiio from source:

git clone https://github.com/analogdevicesinc/libiio.git
cd libiio
cmake .
make 
sudo make install
cd ..

Download and build libad9361-iio

Build and install libiio from source:

git clone https://github.com/analogdevicesinc/libad9361-iio.git
cd libad9361-iio
cmake .
make 
sudo make install
cd ..

 

 

GNU Radio 3.8

Since GNU Radio 3.8 is not fully mainstream across package managers 3.8+ support requires a non-master branch, specifically upgrade-3.8. To get GNU Radio 3.8+ consult the GNU Radio wiki.

gr-iio in 3.8+ requires liborc-dev

(sudo) apt install liborc-dev

Build and install gr-iio from source:

git clone -b upgrade-3.8 https://github.com/analogdevicesinc/gr-iio.git
cd gr-iio
cmake .
make 
sudo make install
cd ..
sudo ldconfig

 

For 3.8, make sure the gr-iio swig interface is on your PYTHONPATH. Otherwise, you will get import errors in python. The common command would be (depending on OS and install location):

export PYTHONPATH=$PYTHONPATH:/usr/lib/python{PYTHON VERSION}/{site or dist}-packages

The added path is the location of the newly installed iio folder.

위 환경변수를 잘 지정해야 한다.

iio 폴더가 설치된 곳을 찾아야 한다. 

내 경우, 리눅스 최상위 폴더에서 usr/local/lib/python3/dist-package 에 있었다.

export PYTHONPATH=$PYTHONPATH:/usr/local/lib/python3/dist-packages

나의 컴퓨터에서 iio 모듈이 설치된 곳의 경로를 다음과 같이 환경변수로 입력하였다.

 

# export PYTHONPATH=$PYTHONPATH:/usr/local/lib/python3/dist-packages

 

 

리눅스 terminal 창에

# gnuradio-companion

라고 쳐서 gnuradio를 실행

 

* 매번 GNU radio에서 Pluto sdr 관련 예제를 돌리기 위해서는 환경 변수를 설정하고 #gnuradio-companion 으로 gnu radio를 실행해야 예제가 문제없이 돌아간다.

* 왜 우분투 리눅스 환경에서 gnu radio 아이콘으로 실행하면 예제가 돌아가질 않고, 꼭 환경변수 설정과, 터미널에 #gnuradio-companion를 써야 예제가 돌아간다. 그 이유는 아직 잘모르겠음. 

 

 

* 환경변수를 지정하지 않으면

gnuradio 에서 no module 'iio...~~ 란 에러메시가 떴음. iio 모듈의 위치를 알려주지 않았기 때문임. 

 

 

반응형