16 апреля 2025 Linux Radio Programming Software Baofeng BF-777
Можете сразу перейти к запуску chirp из исходник или почитать какие криворкукие программисты из виндузят
Для начала необходимо установить chirp
sudo apt- install -y chirp
Это python-программа для работы с прошивками радиостанций, найти можно в: Приложения->Стандартные->CHIRP или
apt-file list chirp | grep /bin/
Запускаем /usr/bin/chirpw и видим такое окно
Затем необходимо настроить подключение радиостанции к ПК, для этого подключаем программатор и наблюдаем логи
tail -f /var/log/kern.log
usb 1-2: new full-speed USB device number 15 using xhci_hcd
usb 1-2: New USB device found, idVendor=1a86, idProduct=7523, bcdDevice= 2.64
usb 1-2: New USB device strings: Mfr=0, Product=2, SerialNumber=0
usb 1-2: Product: USB Serial ch341 1-2:1.0: ch341-uart converter detected
usb 1-2: ch341-uart converter now attached to ttyUSB0
input: BRLTTY 6.4 Linux Screen Driver Keyboard as /devices/virtual/input/input57
usb 1-2: usbfs: interface 0 claimed by ch341 while 'brltty' sets config Test
ch341-uart ttyUSB0: ch341-uart converter now disconnected from ttyUSB0
ch341 1-2:1.0: device disconnected
Если имеется сообщение что устройство отключено и в списке устройств не появилось новое /dev/ttyUSB*
ch341-uart ttyUSB0: ch341-uart converter now disconnected from ttyUSB0
то это означает, что работает служба брайля (для слепых) и она блокирует подключение
sudo systemctl stop brltty.service
sudo systemctl disable brltty.service
sudo apt remove brltty
Останавливаем, отключаем и удаляем службу brltty
Снова запускае CHIRP, в меню REDIO настраиваем подключение, указав порт, вендора и модель, жмём скачать. Радиостанция при этом мигает красным светодиодом
Если получаем сообщение об ошибке
module 'collections' has no attribute 'Callable'
то это означает, что чирп скачал данные с радиостанции, но при обработке случилась ошибка из-за проблемы с версиями питон модулей
Начинаем разбираться с кодом, ищем объект Callable в коде приложения
grep Callable -R /usr/lib/python3/dist-packages/chirp/
/usr/lib/python3/dist-packages/chirp/pyPEG.py: if isinstance(pattern, collections.Callable):
/usr/lib/python3/dist-packages/chirp/pyPEG.py: if isinstance(pattern, collections.Callable):
/usr/lib/python3/dist-packages/chirp/pyPEG.py: while isinstance(language, collections.Callable):
тут видно, что это объект используется только в файле chirp/pyPEG.py, проблема локализована! Если копаться дальше то выясниться что идущая вместе с дистрибутивом версия chirp сильно устарела и лучше установить новую из репозитариев
Запуск CHIRP из исходников
git clone https://github.com/kk7ds/chirp
cd chirp
python3.10 -m venv venv3
source venv3/bin/activate
Так как программу разрабатывают виндузята, то там всё очень криво в списке зависимостей, по этому ставим зависимости сами
pip install attrdict3==2.0.2 certifi==2025.1.31 charset-normalizer==3.4.1 idna==3.10 lark==1.2.2 numpy==2.2.4 pyserial==3.5 requests==2.32.3 six==1.17.0 suds==1.2.0 typing_extensions==4.13.2 urllib3==2.4.0 wxPython==4.2.3 yattag==1.16.1
запускаем Чирп из исходников и получаем вот такое красивое окно с переводами
./chirpwx.py