среда, 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


понедельник, 19 августа 2024 г.

Fobos SDR. Чіпляємо до кватирок дядька Білла. Слухаємо та дивимося що робиться в етері.

      

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

    Сьогодні я вам розповім про те, як вірно встановити приймач на Windows (тобто кватирки). А коли вдасться все зробити до діла, то покрутимо його в SDR++. А якщо жорстий диск Гугла зможе ще трішки розтягнутися і не лопнути, можливо і про uSDR поговоримо.

    Перед встановленням драйверів та підключенням приймача потрібно запустити диспетчер пристроїв і глянути чи всі пристрої коректно працюють в системі. Для цього, натисніть клавішу Win + R  

    Відкриється вікно. В ньому впишіть devmgmt.msc і на клавіатурі натисніть Enter, або мишею на ОК .

    Над моніторі з'явиться всім відомий диспетчер пристроїв. 

    Як видно з малюнка, все гаразд, всі пристрої працюють коректно. Тепер настав час приєднати приймач до порта USB 3.0  

Наголошую !  Порт має бути саме USB 3.0 та безпосередньо приєднаний до хаба материнської плати без всіляких подовжувачів, перехідників та інших проміжних пристроїв. Інакше якісна робота приймача не гарантується !

    Коли приймач буде приєднано, в диспетчері пристроїв він з'явиться. Якщо ні - або шнур або порт несправні. В моєму випадку все гаразд. Картинка виглядає ось так.

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

    Тобто драйвер не встановлювали, а система це зробила для нас. Звісно ми їй вдячні, але цей драйвер потрібно видалити з системи і встановити інший - наш. Для цього натисніть правою кнопкою миші по пристрою і виберіть в меню "Видалити пристрій".

    Звісно за віконечком інше віконечко і так продовжується нескінченно, адже система так і перекладається - Вікна, або як я її мило називаю Кватирки дядька Білла.

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

    Перепідключіть приймач в порті. 

    Тепер потрібно скачати Zadig або з сайту розробника, що знаходиться за адресою https://zadig.akeo.ie або тикнути тут , щоб далеко не ходити.

    Якщо надумаєте скачати з офіційного сайту, то сайт виглядає ось так


    Прокручуєте до чарівного слова Download і натискаєте на Zadig 2.9

   Коли скачається, запустіть її з правами адміністратора.

    При першому запуску Zadig запитає чи періодично перевіряти на предмет оновлення версії. Тут як Вам захочеться. Я тикаю в No. Я за вдумливу автоматизацію процесу, тобто за ручну. Оновлюю коли не працює або перестало працювати.

     У вікні запущеного Задіга, виберіть Fobos SDR та WinUSB(v6.1.7600.16385)

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


    Чарівна фраза The driver was installed succesfully каже що в системі вже стоїть потрібний драйвер. Чудово.

    Не забувайте знову глянути в диспетчер пристроїв, чи все гаразд.

    Тепер точно все гаразд.

    Залишилося лише встановити програму, якою слухати етер з допомогою такого потужного радіва. На даний момент їх є декілька. Це SDR# v.1716, HDSDR v. 2.8, SDR++ та uSDR.

    Швидко про користування приймачем в них. Для смуги огляду в 50 МГц стара версія Шарпа та HDSDR - такоє собі юзабіліті. З іншого боку сердитися на розробників програм та заліза не варто. Програми ще були написані за царя Тимка, а залізяка свіжа - літо 2024 року. Якихось два місяці проги живуть із залізякою разом. І тут варіант сови та глобуса. Особисто для себе доки все не утрясеться, використовую SDR++ та uSDR.

    Для самих розумних та нарваних на Гітхабі викладені всі вихідні файли. Розбирайся, збирай, модифікуй та використовуй. Як на мене - прекрасний підхід, як в оупенсорсі. 

    Анонсом скажу, що SDR++ буду збирати з вихідних файлів під Дебіан 12. Не того що розумний або нарваний, а тому що готового пакета в репозиторії не існує. Тому хто живе в Лінуксі я відкрию як це зробити.

    А для тих, хто живе у Windows, щоб далеко і довго не шукати програм, дам клікабельні посилання на всі проги з вбудованою підтримкою Фобоса, щоб Вам полегшити життя. Лише скачали, розпакували і запустили.

SDR++ для Windows

uSDR 

SDR# v.1716

HDSDR v. 2.8

    Тепер про головне. Так як входи HF1 та HF2 - це пряма оцифровка, або direct sampling (використовується для прийому сигналів від 100 кГц до 25 МГц), семплрейт або смуга прийому має бути встановлена на 50 МГц. Ось така картинка налаштування контроллера приймача.


    Ви можете сказати що це дуже навантажить комп'ютер. Я би так не сказав. Ось як виглядає навантаження при цій смузі прийому і використання програми SDR++

    Погодьтеся - не дуже свіжа техніка, або дуже несвіжа ;-)  І дуже добре справляється. 

    Розробники приймача дуже плідно попрацювали. За це їм велика УВАЖУХА !

  Так як uSDR дуже нова програма, можливо з часом, як я її засвою, напишу коротеньку доку по її використанню.

    Наступного разу я разом з вами прикрутю Fobos SDR до Дебіана 12 Bookworm.

А зараз залишилося лише 73 ! de UT2YR