среда, 21 августа 2024 г.

Fobos SDR. Життя в лінукс. SDR++ та Debian 12 Bookworm.

 

    Що ж. Настав час запустити цього звіра в лінуксі. Може виникнути питання: "А чому SDR++ а не Gqrx ?" Відповідаю: "Він мені ніколи не подобався. Був змушений користуватися, тому що під лінукс і під мак особливо нічого тоді не було." Тут є певний елемент ностальгії. SDR++ дуже схожий за інтерфейсом на SDR#, що буде легше сприйматися більшістю користувачів, адже якраз ця більшість й користується шарпом.

    Це весілля буде працювати на базі Дебіана 12 Bookworm. В мене є певна частина консерватизму. Окрім того замітив таку тенденцію, що дебіан працює навіть на калькуляторах 15 річної давності. Відверто кажучи останні версії Убунту мене не вражають як решта похідних дистрибутивів Дебіана. Тому ТІКО ДЕБІАН ! Слаки і шапки мені не зайшли, тому про них не буду нічого казати.

    Все буде як завжди. Коротко і лаконічно. Під кінець читання може хтось і засне    ; - )

    А тепер погнали.

    Запустіть всіма улюблений термінал і приготуйтеся встановити всі необхідні для збирання софта бібліотеки. Без цього наш потяг нікуди не поїде. Тут справа смаку, але мені подобається повністю контролювати весь процес, тому я не встановлюю пакети скопом, а по черзі, розтягуючи при цьому задоволення.

    Не забувайте тиснути Y, коли будуть питати чи з пакетом встановлювати всі залежності, або покладіть ключик -y в команді, щоб це не робити, а просто дивитися як строчки біжать в терміналі. Так так. На біжучі строчки в терміналі можна дивитися вічно, як на вогонь.

sudo apt install git
sudo apt install libusb-1.0-0-dev
sudo apt install cmake
sudo apt install libfftw3-dev
sudo apt install libglfw3-dev
sudo apt install libvolk2-dev
sudo apt install libzstd-dev
sudo apt install librtaudio-dev
sudo apt install librtlsdr-dev
sudo apt install libairspyhf-dev
sudo apt install libhackrf-dev
sudo apt install libiio-dev
sudo apt install libad9361-dev
sudo apt install libfec-dev 

   Віднесіться до цього процесу уважно, тому що, пропустивши щось і десь, наприкінці Вам  нічого не вдасться.

     Маю надію що у всіх вийшло. І все коректно встановилося. Тому погнали далі.

    Наступне це треба зібрати дрова для радіо, щоб воно розуміло лінукса а лінукс розумів його. Все як ми любимо. Дрова уявляють собою бібліотеку під назвою libfobos. Зараз трішки з'явиться картинок. Вони будуть для перевірки чи у вас все так як в мене. 

    Скачайте з Гітхаба вихідний текст.

git clone https://github.com/rigexpert/libfobos.git


   
Перейдіть в каталог з проєктом, створіть в ньому каталог build і перейдіть в нього. В цьому каталозі і буде зібрана ця бібліотека. Нижченаведені команди дадуть Вам все це зробити.

cd libfobos
mkdir build
cd build

    А зараз буде гаряче. Починається збирання і перевірка того що зібралося на предмет працездатності. Виконайте

cmake ..

    Увага! Між cmake і .. має бути один пробіл. Зверніть будь ласка на це увагу. Результат виконання має бути такий.

    Далі виконайте 

make

    Результат має бути ось такий

    Не має бути ніяких помилок при збиранні. Якщо вони є - передивіться всі свої попередні дії. Щось раніше Ви зробили не так.

   Залишилося вже зовсім мало. Встановіть зібрану бібліотеку в систему і попросіть лінукс, але ніжно, щоб він подружився з приймачем.

sudo make install

sudo udevadm control --reload-rules
sudo udevadm trigger


    Далі потрібно приєднати приймач в один з портів USB 3.0 і перевантажити комп'ютер. Порт має бути саме USB 3.0, що безпосередньо приєднаний до путнього хаба на материнці. Інакше приймач працювати не буде. Вся справа в тому що приймач приймає смугу шириною в 25 МГц (це у випадку приймання довгих, середніх та коротких хвиль), а у випадку УКХ всі 50 МГц.

    Після перевантаження, знову запустіть термінал і виконайте команду.

cd libfobos/build

    Так, Ви знову в каталозі build. Це необхідно зараз, адже тут присутні дві фічі, що допоможуть Вам переконатися, що все вірно працює. Виконайте 

./fobos_devinfo

    І отримайте від зайчика подарунок. В терміналі має відобразитися інформація про приймач.

 А тепер тестаніть його, як він передає потік. Виконайте

./fobos_recorder

    Якщо побігли плюсики і взагалі твориться якась дичина, яка зображена нижче, то у Вас все вийшло.

 

    Попередній підсумок. Бібліотеки встановили. Приймач завели. Залишилося зібрати прогу та налаштувати її.

  ====== Початок нєжданчіка номер 1 ==========

   Може виникнути ось така цікава ситуація. Ви виконали  команду ./fobos_devinfo   а тут "нєжданчік". Система приймач побачила, але не може відкрити порт.

    Візьміть собі за правило спочатку перевіряти чи приймач приєднано до USB, а потім вмикати комп'ютер, інакше будете змушені його перевантажувати.

======== Кінець нєжданчіка номер 1  ==========

    Перейдіть в домашній каталог користувача. Виконайте

cd ../..


    
Якщо Ви це не зробите, то наступний проєкт скопіюється в попередній і там така мішанина буде, що Вам у страшних снах не снилося ніколи. Тому завжди переходьте у свій домашній каталог, щоб кожен проєкт мав свій окремий каталог, свою хатку.

    Скачайте з Гітхаба вихідний текст.

 git clone https://github.com/rigexpert/SDRPlusPlus.git


    Перейдіть в каталог з проєктом, створіть в ньому каталог build і перейдіть в нього. В цьому каталозі і буде зібрана ця програма. Нижченаведені команди дадуть Вам все це зробити.

cd SDRPlusPlus
mkdir build
cd build

    Почніть збірку коду.

cmake ..

    Для перевірки викладаю два скріни процесу.


 

    Слідкуйте уважно, щоб були відсутні помилки. В мене було так, що модуль libfobos на цьому етапі видавав помилки. В такому випадку потрібно перевірити чи вірно виконані всі попередні кроки і перезапустіть збірку програми.

    Якшо все гаразд, виконайте команду 

make -j4

    Знову надаю скріни для перевірки. Зверніть увагу на четвертий скрін. На текст, що знаходиться в червоному прямокутнику.

 

 


    Далі 

sudo make install

    На скріні виконання цієї команди зверніть будь ласка увагу на присутність фрази Built target fobos_source і чи ніяких поряд повідомлень про помилки немає. Має бути ось так. Червоним виділив все що стосується фобоса.


    Якщо у Вас все саме так як в мене - ВІТАЮ ! Все буде чудово працювати.

    Останній штрих. Запустити програму та налаштувати її. Якщо у Вас в якості робочого середовища Cinnamon то шукайте SDR++ в пункті Інші.

    Або хочете, можете запустити її  /usr/bin/sdrpp прямо з терміналу. Це по бажанню.

   Коли її запустите, Вам потрібно буде в менеджері модулів додати модуль fobos_source. 

    Для цього за допомогою коліщатка миші прокрутіть меню до появи менеджера модулів.


 

    Натисніть кнопку з перевернутим трикутником і в списку виберіть fobos_source.

Далі в полі, що знаходиться ліворуч від назви модуля.

впишіть Fobos

і натисніть + з правого боку біля назви модуля 

Далі в меню Source вибираєте Fobos SDR.

В полі Rate частоту семплювання. Зазвичай 50.000000MHz

В полі Input вибираєте антенний вхід. HF1, HF2 - входи від 100 кГц до 25 МГц. RF - вхід від 25 МГц  до 6 ГГц.

А далі - Старт 

   

============= Початок нєжданчіка № 2 ===========

     Іноді при цих двіжухах може статися епік фейл. Фейл у тому, що неможливо вибрати в менеджері модулів fobos_source. Його там просто може не бути.  Все чемно та вірно зкомпілював, а тут така халепа.

     Фото журналу роботи програми.

 


    Все робив як раніше і все виходило, а тут ніяк. Не знаєш з якого боку братися, але в цьому мені допомогли розібратися розробники з RigExpert.  Зараз ви разом зі мною виконаєте ці дії і у вас все вийде. Я гарантую, що буде працювати. Лише все знову виконати акуратно. Перевірено мною неодноразово.

    Спочатку теоретично що потрібно зробити, далі розповім як це зробити легко і швидко.

Теорія.

    В файлі core.cpp що знаходиться по шляху ~/SDRPlusPlus/core/src/ потрібно вписати дві строчки, після коментаря  // Module instancess

    Ось ці строчки, а так має виглядати шматок коду.

// Module instancess

defConfig["moduleInstances"]["Fobos SDR Source"]["module"] = "fobos_source";
defConfig["moduleInstances"]["Fobos SDR Source"]["enabled"] = true;

    Для розуміння як це має бути, демонструю скрін шматка цього файлу. Тут вже все додано.

 

    Потім потрібно перекомпілювати і перевстановити SDR++

Практика.

    Я спростив всім момент редагування файлу. За цим посиланням  качаєте архів. В ньому знаходиться вже виправлений файл.  Вам буде достатньо цей архів розпакувати у відповідний каталог. Таким чином "правильний" файл замінить "неправильний".

    Після скачування, архів попаде в каталог завантажень. Там його й знайдемо і будемо робити наступні маніпуляції.

 

    Правою кнопкою миші вибираємо "Відкрити за допомогою менеджера архівів".


     В середині архіву і є цей файл. Виділяємо його та у верхньому лівому кутку вікна тиснемо гудзик "Розпакувати".


     Вибираєте місце куди його розпакувати. Це ~/SDRPlusPlus/core/src/

     Програма запитає чи замінити цей файл. Вибираєте "Замінити".

 

        Тепер стандартно 

 
    cd SDRPlusPlus/build

    cmake ..
    make -j4
    sudo make install

        Перекопіюйте бібліотеку libfobos в каталог /usr/lib/  Це позитивно вплине на роботу програми.

    sudo cp /usr/local/lib/libfobos.so /usr/lib/
 

        Перевірте чи все гаразд. Запустіть в терміналі

    sdrpp

    Прокрутіть повідомлення догори. Все працює.

========== Кінець нєжданчіка №2 =======

    Щодо використання ресурсів комп'ютера. Надаю скріншот команди htop. Міні-пк Dell Wyse 5070 з Intel Celeron J4105, 8 Гігабайт ОЗП та 128 ssd m2

    Хоча ця картинка і присутня як аватарка статті, я її повторю внизу. На це можна дивитися вічно.


    Втомив я Вас сьогодні своїми балачками, тому на сьогодні досить. Йдіть і слухайте радіо під лінуксом.

73 ! de UT2YR


Комментариев нет:

Отправить комментарий