EdgeTX / edgetx

EdgeTX is the cutting edge open source firmware for your R/C radio
https://edgetx.org
GNU General Public License v2.0
1.49k stars 316 forks source link

Linux Companion audio playback for SF Play Track not working #1435

Open pfeerick opened 2 years ago

pfeerick commented 2 years ago

2.6.0-RC3

It seems like the Linux AppImage Companionis having problems when trying to play/preview audio tracks, but a simulated model does play audio. i.e. pressing the blue play button here ...

image

... results in ...

(EdgeTx_Companion_2.6.0-fac0eed-x86_64.AppImage:1874): GStreamer-WARNING **: 21:19:48.582: Failed to load plugin '/usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstcoreelements.so': /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstcoreelements.so: undefined symbol: gst_query_parse_bitrate

(EdgeTx_Companion_2.6.0-fac0eed-x86_64.AppImage:1874): GStreamer-WARNING **: 21:19:48.583: Failed to load plugin '/usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstcoreelements.so': /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstcoreelements.so: undefined symbol: gst_query_parse_bitrate

(EdgeTx_Companion_2.6.0-fac0eed-x86_64.AppImage:1874): GLib-GObject-CRITICAL **: 21:19:48.583: g_object_set: assertion 'G_IS_OBJECT (object)' failed

(EdgeTx_Companion_2.6.0-fac0eed-x86_64.AppImage:1874): GStreamer-CRITICAL **: 21:19:48.583: gst_object_ref: assertion 'object != NULL' failed

(EdgeTx_Companion_2.6.0-fac0eed-x86_64.AppImage:1874): GStreamer-CRITICAL **: 21:19:48.583: gst_bin_add_many: assertion 'GST_IS_ELEMENT (element_1)' failed

(EdgeTx_Companion_2.6.0-fac0eed-x86_64.AppImage:1874): GStreamer-CRITICAL **: 21:19:48.583: gst_element_link_pads_full: assertion 'GST_IS_ELEMENT (src)' failed

(EdgeTx_Companion_2.6.0-fac0eed-x86_64.AppImage:1874): GStreamer-CRITICAL **: 21:19:48.583: gst_element_get_static_pad: assertion 'GST_IS_ELEMENT (element)' failed

(EdgeTx_Companion_2.6.0-fac0eed-x86_64.AppImage:1874): GStreamer-CRITICAL **: 21:19:48.583: gst_ghost_pad_new: assertion 'GST_IS_PAD (target)' failed

(EdgeTx_Companion_2.6.0-fac0eed-x86_64.AppImage:1874): GStreamer-CRITICAL **: 21:19:48.583: gst_element_add_pad: assertion 'GST_IS_PAD (pad)' failed

(EdgeTx_Companion_2.6.0-fac0eed-x86_64.AppImage:1874): GStreamer-CRITICAL **: 21:19:48.583: gst_object_unref: assertion 'object != NULL' failed

(EdgeTx_Companion_2.6.0-fac0eed-x86_64.AppImage:1874): GStreamer-WARNING **: 21:19:48.586: Failed to load plugin '/usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstopengl.so': /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstopengl.so: undefined symbol: gst_video_aggregator_get_type

(EdgeTx_Companion_2.6.0-fac0eed-x86_64.AppImage:1874): GStreamer-WARNING **: 21:19:48.588: Failed to load plugin '/usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstopengl.so': /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstopengl.so: undefined symbol: gst_video_aggregator_get_type
pfeerick commented 2 years ago

I wonder if after looking at https://github.com/intel/gstreamer-media-SDK/issues/178 and https://github.com/Stellarium/stellarium/actions/runs/1325544502/workflow if libqt5multimedia5-plugins is needed when building?

pfeerick commented 2 years ago

Ok, it seems like it might be a mismatch in gstreamer versions - the version Companion in the AppImage was built against vs the system version installed.

elecpower commented 2 years ago

Ok, it seems like it might be a mismatch in gstreamer versions - the version Companion in the AppImage was built against vs the version installed system.

Deja vu...the issue that keeps on giving

BigChinoDon commented 2 years ago

Funny the sounds play fine (2.7.1) when you simulate the model.

gagarinlg commented 1 year ago

is this still a thing?

pfeerick commented 1 year ago

Yes, no change. Sound is still working if you simulate the model, but not if you press the blue play button in Companion:

It seems like these guys had similar issues also and ended up ditching GStreamer to get away from it (switched to miniaudio) : https://github.com/Chatterino/chatterino2/issues/2056

EdgeTx_Companion_2.9.0-x86_64.AppImage:3867): GStreamer-WARNING **: 19:20:58.059: Failed to load plugin '/usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstplayback.so': /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstplayback.so: undefined symbol: gst_type_mark_as_plugin_api

(EdgeTx_Companion_2.9.0-x86_64.AppImage:3867): GStreamer-WARNING **: 19:20:58.059: Failed to load plugin '/usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstcoreelements.so': /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstcoreelements.so: undefined symbol: gst_type_find_helper_for_data_with_extension

(EdgeTx_Companion_2.9.0-x86_64.AppImage:3867): GStreamer-WARNING **: 19:20:58.059: Failed to load plugin '/usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstcoreelements.so': /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstcoreelements.so: undefined symbol: gst_type_find_helper_for_data_with_extension

(EdgeTx_Companion_2.9.0-x86_64.AppImage:3867): GLib-GObject-CRITICAL **: 19:20:58.059: g_object_set: assertion 'G_IS_OBJECT (object)' failed

(EdgeTx_Companion_2.9.0-x86_64.AppImage:3867): GStreamer-CRITICAL **: 19:20:58.059: gst_object_ref: assertion 'object != NULL' failed

(EdgeTx_Companion_2.9.0-x86_64.AppImage:3867): GStreamer-CRITICAL **: 19:20:58.060: gst_bin_add_many: assertion 'GST_IS_ELEMENT (element_1)' failed

(EdgeTx_Companion_2.9.0-x86_64.AppImage:3867): GStreamer-CRITICAL **: 19:20:58.060: gst_element_link_pads_full: assertion 'GST_IS_ELEMENT (src)' failed

(EdgeTx_Companion_2.9.0-x86_64.AppImage:3867): GStreamer-CRITICAL **: 19:20:58.060: gst_element_get_static_pad: assertion 'GST_IS_ELEMENT (element)' failed

(EdgeTx_Companion_2.9.0-x86_64.AppImage:3867): GStreamer-CRITICAL **: 19:20:58.060: gst_ghost_pad_new: assertion 'GST_IS_PAD (target)' failed

(EdgeTx_Companion_2.9.0-x86_64.AppImage:3867): GStreamer-CRITICAL **: 19:20:58.060: gst_element_add_pad: assertion 'GST_IS_PAD (pad)' failed

(EdgeTx_Companion_2.9.0-x86_64.AppImage:3867): GStreamer-CRITICAL **: 19:20:58.060: gst_object_unref: assertion 'object != NULL' failed

(EdgeTx_Companion_2.9.0-x86_64.AppImage:3867): GStreamer-WARNING **: 19:20:58.061: Failed to load plugin '/usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstxvimagesink.so': /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstxvimagesink.so: undefined symbol: gst_video_meta_set_alignment

(EdgeTx_Companion_2.9.0-x86_64.AppImage:3867): GStreamer-WARNING **: 19:20:58.061: Failed to load plugin '/usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstximagesink.so': /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstximagesink.so: undefined symbol: gst_video_meta_set_alignment

(EdgeTx_Companion_2.9.0-x86_64.AppImage:3867): GStreamer-WARNING **: 19:20:58.062: Failed to load plugin '/usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstxvimagesink.so': /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstxvimagesink.so: undefined symbol: gst_video_meta_set_alignment

(EdgeTx_Companion_2.9.0-x86_64.AppImage:3867): GStreamer-WARNING **: 19:20:58.062: Failed to load plugin '/usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstopengl.so': /lib/x86_64-linux-gnu/libgstgl-1.0.so.0: undefined symbol: gst_video_format_info_component

(EdgeTx_Companion_2.9.0-x86_64.AppImage:3867): GStreamer-WARNING **: 19:20:58.063: Failed to load plugin '/usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstximagesink.so': /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstximagesink.so: undefined symbol: gst_video_meta_set_alignment

(EdgeTx_Companion_2.9.0-x86_64.AppImage:3867): GStreamer-WARNING **: 19:20:58.063: Failed to load plugin '/usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstxvimagesink.so': /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstxvimagesink.so: undefined symbol: gst_video_meta_set_alignment

(EdgeTx_Companion_2.9.0-x86_64.AppImage:3867): GStreamer-WARNING **: 19:20:58.063: Failed to load plugin '/usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstximagesink.so': /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstximagesink.so: undefined symbol: gst_video_meta_set_alignment

(EdgeTx_Companion_2.9.0-x86_64.AppImage:3867): GStreamer-WARNING **: 19:20:58.063: Failed to load plugin '/usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstxvimagesink.so': /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstxvimagesink.so: undefined symbol: gst_video_meta_set_alignment

(EdgeTx_Companion_2.9.0-x86_64.AppImage:3867): GStreamer-WARNING **: 19:20:58.064: Failed to load plugin '/usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstopengl.so': /lib/x86_64-linux-gnu/libgstgl-1.0.so.0: undefined symbol: gst_video_format_info_component

(EdgeTx_Companion_2.9.0-x86_64.AppImage:3867): GStreamer-WARNING **: 19:20:58.064: Failed to load plugin '/usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstximagesink.so': /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstximagesink.so: undefined symbol: gst_video_meta_set_alignment
elecpower commented 1 year ago

@pfeerick PR #3339 may fix this as it is using a different AppImage builder. I tested and it works for me.

elecpower commented 5 months ago

@pfeerick is this still an issue with the 2.10 AppImage?

pfeerick commented 5 months ago

Looks like it... get this error vomit at the console when hitting the play button for a Play Track SF (and doesn't revert back to play button - stays as stop button) :cry: I do get audio when I run the simulator up though... on Ubuntu 23.10

I see we're not using the gstreamer linuxdeploy plugin... will see if can add that in and if it makes any difference... https://github.com/linuxdeploy/linuxdeploy-plugin-gstreamer ... since the underlying issue still appears to be a mismatch between the libraries being used to build, and libraries installed on users system... which is only going to get worse and worse as times goes on...

(AppRun.wrapped:4745): GStreamer-WARNING **: 07:35:33.061: Failed to load plugin '/usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstplayback.so': /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstplayback.so: undefined symbol: gst_query_parse_selectable

(AppRun.wrapped:4745): GStreamer-WARNING **: 07:35:33.061: Failed to load plugin '/usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstcoreelements.so': /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstcoreelements.so: undefined symbol: gst_debug_log_id
[W] unknown():0 - Error: "" : "no element \"identity\""

(AppRun.wrapped:4745): GStreamer-WARNING **: 07:35:33.062: Failed to load plugin '/usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstcoreelements.so': /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstcoreelements.so: undefined symbol: gst_debug_log_id

(AppRun.wrapped:4745): GLib-GObject-CRITICAL **: 07:35:33.062: g_object_set: assertion 'G_IS_OBJECT (object)' failed

(AppRun.wrapped:4745): GStreamer-CRITICAL **: 07:35:33.062: gst_object_ref: assertion 'object != NULL' failed

(AppRun.wrapped:4745): GStreamer-CRITICAL **: 07:35:33.062: gst_bin_add_many: assertion 'GST_IS_ELEMENT (element_1)' failed

(AppRun.wrapped:4745): GStreamer-CRITICAL **: 07:35:33.062: gst_element_link_pads_full: assertion 'GST_IS_ELEMENT (src)' failed

(AppRun.wrapped:4745): GStreamer-CRITICAL **: 07:35:33.062: gst_element_get_static_pad: assertion 'GST_IS_ELEMENT (element)' failed

(AppRun.wrapped:4745): GStreamer-CRITICAL **: 07:35:33.062: gst_ghost_pad_new: assertion 'GST_IS_PAD (target)' failed

(AppRun.wrapped:4745): GStreamer-CRITICAL **: 07:35:33.062: gst_element_add_pad: assertion 'GST_IS_PAD (pad)' failed

(AppRun.wrapped:4745): GStreamer-CRITICAL **: 07:35:33.062: gst_object_unref: assertion 'object != NULL' failed

(AppRun.wrapped:4745): GStreamer-WARNING **: 07:35:33.062: Failed to load plugin '/usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstxvimagesink.so': /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstxvimagesink.so: undefined symbol: gst_navigation_event_new_touch_up

(AppRun.wrapped:4745): GStreamer-WARNING **: 07:35:33.062: Failed to load plugin '/usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstximagesink.so': /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstximagesink.so: undefined symbol: gst_navigation_event_new_touch_up

(AppRun.wrapped:4745): GStreamer-WARNING **: 07:35:33.062: Failed to load plugin '/usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstxvimagesink.so': /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstxvimagesink.so: undefined symbol: gst_navigation_event_new_touch_up

(AppRun.wrapped:4745): GStreamer-WARNING **: 07:35:33.063: Failed to load plugin '/usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstopengl.so': /tmp/.mount_EdgeTXYDcpyz/usr/bin/../lib/libudev.so.1: version `LIBUDEV_247' not found (required by /lib/x86_64-linux-gnu/libgudev-1.0.so.0)

(AppRun.wrapped:4745): GStreamer-WARNING **: 07:35:33.063: Failed to load plugin '/usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstkms.so': /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstkms.so: undefined symbol: gst_video_content_light_level_from_caps

(AppRun.wrapped:4745): GStreamer-WARNING **: 07:35:33.063: Failed to load plugin '/usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstximagesink.so': /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstximagesink.so: undefined symbol: gst_navigation_event_new_touch_up

(AppRun.wrapped:4745): GStreamer-WARNING **: 07:35:33.063: Failed to load plugin '/usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstwaylandsink.so': /lib/x86_64-linux-gnu/libgstwayland-1.0.so.0: undefined symbol: gst_video_center_rect

(AppRun.wrapped:4745): GStreamer-WARNING **: 07:35:33.063: Failed to load plugin '/usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstxvimagesink.so': /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstxvimagesink.so: undefined symbol: gst_navigation_event_new_touch_up

(AppRun.wrapped:4745): GStreamer-WARNING **: 07:35:33.064: Failed to load plugin '/usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstximagesink.so': /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstximagesink.so: undefined symbol: gst_navigation_event_new_touch_up

(AppRun.wrapped:4745): GStreamer-WARNING **: 07:35:33.064: Failed to load plugin '/usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstxvimagesink.so': /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstxvimagesink.so: undefined symbol: gst_navigation_event_new_touch_up

(AppRun.wrapped:4745): GStreamer-WARNING **: 07:35:33.064: Failed to load plugin '/usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstopengl.so': /tmp/.mount_EdgeTXYDcpyz/usr/bin/../lib/libudev.so.1: version `LIBUDEV_247' not found (required by /lib/x86_64-linux-gnu/libgudev-1.0.so.0)

(AppRun.wrapped:4745): GStreamer-WARNING **: 07:35:33.064: Failed to load plugin '/usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstkms.so': /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstkms.so: undefined symbol: gst_video_content_light_level_from_caps

(AppRun.wrapped:4745): GStreamer-WARNING **: 07:35:33.065: Failed to load plugin '/usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstximagesink.so': /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstximagesink.so: undefined symbol: gst_navigation_event_new_touch_up

(AppRun.wrapped:4745): GStreamer-WARNING **: 07:35:33.065: Failed to load plugin '/usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstwaylandsink.so': /lib/x86_64-linux-gnu/libgstwayland-1.0.so.0: undefined symbol: gst_video_center_rect

(AppRun.wrapped:4745): GStreamer-WARNING **: 07:35:33.065: Failed to load plugin '/usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstplayback.so': /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstplayback.so: undefined symbol: gst_query_parse_selectable

(AppRun.wrapped:4745): GStreamer-WARNING **: 07:35:33.065: Failed to load plugin '/usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstcoreelements.so': /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstcoreelements.so: undefined symbol: gst_debug_log_id
[W] unknown():0 - Error: "" : "no element \"identity\""

(AppRun.wrapped:4745): GStreamer-WARNING **: 07:35:33.065: Failed to load plugin '/usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstcoreelements.so': /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstcoreelements.so: undefined symbol: gst_debug_log_id

(AppRun.wrapped:4745): GLib-GObject-CRITICAL **: 07:35:33.065: g_object_set: assertion 'G_IS_OBJECT (object)' failed

(AppRun.wrapped:4745): GStreamer-CRITICAL **: 07:35:33.065: gst_object_ref: assertion 'object != NULL' failed

(AppRun.wrapped:4745): GStreamer-CRITICAL **: 07:35:33.065: gst_bin_add_many: assertion 'GST_IS_ELEMENT (element_1)' failed

(AppRun.wrapped:4745): GStreamer-CRITICAL **: 07:35:33.065: gst_element_link_pads_full: assertion 'GST_IS_ELEMENT (src)' failed

(AppRun.wrapped:4745): GStreamer-CRITICAL **: 07:35:33.065: gst_element_get_static_pad: assertion 'GST_IS_ELEMENT (element)' failed

(AppRun.wrapped:4745): GStreamer-CRITICAL **: 07:35:33.065: gst_ghost_pad_new: assertion 'GST_IS_PAD (target)' failed

(AppRun.wrapped:4745): GStreamer-CRITICAL **: 07:35:33.065: gst_element_add_pad: assertion 'GST_IS_PAD (pad)' failed

(AppRun.wrapped:4745): GStreamer-CRITICAL **: 07:35:33.065: gst_object_unref: assertion 'object != NULL' failed
elecpower commented 5 months ago

Thanks for the update. Since you mention it do remember seeing the plug-in but not sure why I did not think to include. Seems I need to revisit.

pfeerick commented 5 months ago

Made a little progress here... https://github.com/EdgeTX/edgetx/tree/cpn-gstreamer ... linuxdeploy gstreamer plugin is now being used... will require patchelf added to the edgetx build container as it's a dependency of the plugin... I'm now getting an actual error message from the GUI, and the following in the log, so just need to figure out what extra gstreamer plugins are needed now... šŸ¤ž šŸ™

/usr/lib/x86_64-linux-gnu/gio/modules/libgiognomeproxy.so: undefined symbol: g_uri_is_valid
Failed to load module: /usr/lib/x86_64-linux-gnu/gio/modules/libgiognomeproxy.so
/usr/lib/x86_64-linux-gnu/gio/modules/libgiolibproxy.so: undefined symbol: g_uri_is_valid
Failed to load module: /usr/lib/x86_64-linux-gnu/gio/modules/libgiolibproxy.so
/usr/lib/x86_64-linux-gnu/gio/modules/libgiognutls.so: undefined symbol: g_source_set_static_name
Failed to load module: /usr/lib/x86_64-linux-gnu/gio/modules/libgiognutls.so
[W] unknown():0 - GStreamer; Unable to pause - "qrc:/sounds/0.wav"
[W] unknown():0 - Error: "Your GStreamer installation is missing a plug-in."
[W] unknown():0 - Warning: "No decoder available for type 'audio/x-wav'."

hm... Seems to be GTK related on newer than Ubuntu 20.04 ... https://github.com/LizardByte/Sunshine/pull/1708 and judging from this issue and associated commit it looks like was basically expected as soon as you include gstreamer and gtk plugin needed also... šŸ¤Ŗ

later: also needed gstreamer1.0-plugins-good after the GTK plugin was added... and now I'm getting a jack not detected or similar message which is suggestive of pulseaudio... so I following this line of development is going it make it so half of the linux libraries need the be bundled just to get a simple play button working (it's already up at least 20MB already) šŸ˜† And as much as I like flatpack, I don't want to have to repackage just for that... https://github.com/mackron/miniaudio is starting to look like a very attractive option now šŸ¤Ŗ

ghost commented 4 months ago

Was surprised, that this issue is still there. Remember, when I build Companion from the source in Edge 2.6 and 2.7, I did not have that issue (play track) here under different Debian releases. I used the ubuntu building documentation and converted it to Debian. But my old Debian notes don't work anymore,

At the moment I am on Edge 2.9 and using the app.image.

Just curious, what is the situation now with Debian 12 (bookworm). To do so, I start with

https://github.com/EdgeTX/edgetx/wiki/Build-Instructions-under-Ubuntu-20.04

Setting up the build environment for EdgeTX

looks ok!

Building EdgeTX firmware for the radio

also ok!

Building Companion, Simulator and radio simulator libraries

but both stop with ERROR!

So I'll open an issue on that. Hope, there is still some interest in that. ;-)

br KH