viktorgino / headunit-desktop

HeadUnit Desktop is a car PC software built with Qt 5 and QML
https://github.com/viktorgino/headunit-desktop/wiki
GNU General Public License v3.0
292 stars 64 forks source link

Build Guide still needed #50

Closed modemlamer closed 2 years ago

modemlamer commented 4 years ago

is there any working build guide/script out there today??

i tried many ways nothing ended with a running binary than i mixed them fixing here an there compiler errors but nothing worked really

i need some help

the only thing which is working is the complete but outdated image from the website

but the image from 2018-08 is more a showreel than a full working system

greetings from germany

viktorgino commented 4 years ago

Hi there @modemlamer

The current build steps can be found in the Wiki here : https://github.com/viktorgino/headunit-desktop/wiki/Building-Headunit-Desktop

You can get a fully working image using these steps. The steps for building qtpim are currently not there but you will be able to build it without.

Please reopen this issue if the build steps are not working.

modemlamer commented 4 years ago

apt-get install qt5-default qml-module-qtquick2 qtdeclarative5-dev qtmultimedia5-dev libqt5multimedia5-plugins qml-module-qtquick* qml-module-qtmultimedia qml-module-qt-labs-settings qml-module-qt-labs-folderlistmodel libqt5xmlpatterns5-dev libqt5bluetooth5 qtconnectivity5-dev qml-module-qtbluetooth libqt5charts5 qml-module-qtcharts

apt-get install build-essential protobuf-compiler libusb-1.0-0-dev libssl-dev openssl libglib2.0-dev libboost-dev libudev-dev libtag1-dev libprotobuf-dev libgstreamer1.0-dev gstreamer1.0-plugins-base-apps gstreamer1.0-plugins-bad gstreamer1.0-libav gstreamer1.0-alsa libgstreamer-plugins-base1.0-dev gstreamer1.0-pulseaudio libfaad-dev libfftw3-dev librtlsdr-dev libusb-1.0-0-dev mesa-common-dev libglu1-mesa-dev zlib1g-dev portaudio19-dev libsndfile1-dev libsamplerate0-dev ofono ofono-dev ofono-phonesim pulseaudio bluez bluez-obexd pulseaudio-module-bluetooth qtconnectivity5-dev qml-module-qtbluetooth libkf5bluezqt-dev qml-module-org-kde-bluezqt qtbase5-private-dev libcanberra-dev libgconf2-dev libpulse-dev libmp3lame-dev libsoapysdr-dev libmpg123-dev

protoc --proto_path=modules/android-auto/headunit/hu/ --cpp_out=modules/android-auto/h

This step isn't working because there isnt any code on your harddisk without git clone --your url here--

so i did that

git clone https://github.com/viktorgino/headunit-desktop.git

but

ls headunit-desktop/modules/android-auto/headunit/

this folder is empty so i did

git clone --recursive --depth 1 https://github.com/viktorgino/headunit-desktop.git && cd headunit-desktop

wich i found here:

http://headunit.viktorgino.me/#build-targets

than

protoc

is OK and i finally can build that with this compilererror

/usr/include/x86_64-linux-gnu/qt5/QtCharts/chartsnamespace.h:36:1: error: ‘QtCharts’ is not a namespace-name QT_CHARTS_USE_NAMESPACE ^ /usr/include/x86_64-linux-gnu/qt5/QtCharts/chartsnamespace.h:36:1: error: expected namespace-name before ‘;’ token QT_CHARTS_USE_NAMESPACE ^ In file included from ../../../modules/welle-io/welleio.h:11:0, from ../../../modules/welle-io/welleio.cpp:1: ../../../modules/welle-io/welle.io/src/welle-gui/gui_helper.h:61:45: error: ‘QAbstractSeries’ has not been declared Q_INVOKABLE void registerSpectrumSeries(QAbstractSeries series); ^~~~~~~ ../../../modules/welle-io/welle.io/src/welle-gui/gui_helper.h:63:51: error: ‘QAbstractSeries’ has not been declared Q_INVOKABLE void registerImpulseResonseSeries(QAbstractSeries series); ^~~~~~~ ../../../modules/welle-io/welle.io/src/welle-gui/gui_helper.h:65:47: error: ‘QAbstractSeries’ has not been declared Q_INVOKABLE void registerNullSymbolSeries(QAbstractSeries series); ^~~~~~~ ../../../modules/welle-io/welle.io/src/welle-gui/gui_helper.h:67:50: error: ‘QAbstractSeries’ has not been declared Q_INVOKABLE void registerConstellationSeries(QAbstractSeries series); ^~~~~~~ ../../../modules/welle-io/welle.io/src/welle-gui/gui_helper.h:95:5: error: ‘QXYSeries’ does not name a type QXYSeries spectrumSeries; ^~~~~ g++ -c -pipe -O2 -std=gnu++11 -Wall -W -D_REENTRANT -fPIC -DQT_DEPRECATED_WARNINGS -DQT_NO_DEBUG -DQT_PLUGIN -DQT_QUICK_LIB -DQT_GUI_LIB -DQT_QML_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I../../../modules/usbconnectionlistener -I. -I../../../includes -isystem /usr/include/libusb-1.0 -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtQuick -isystem /usr/include/x86_64-linux-gnu/qt5/QtGui -isystem /usr/include/x86_64-linux-gnu/qt5/QtQml -isystem /usr/include/x86_64-linux-gnu/qt5/QtNetwork -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -I. -isystem /usr/include/libdrm -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -o moc_usbconnectionlistener.o moc_usbconnectionlistener.cpp ../../../modules/welle-io/welle.io/src/welle-gui/gui_helper.h:98:5: error: ‘QXYSeries’ does not name a type QXYSeries impulseResponseSeries; ^~~~~ ../../../modules/welle-io/welle.io/src/welle-gui/gui_helper.h:101:5: error: ‘QXYSeries’ does not name a type QXYSeries nullSymbolSeries; ^~~~~ ../../../modules/welle-io/welle.io/src/welle-gui/gui_helper.h:104:5: error: ‘QXYSeries’ does not name a type QXYSeries constellationSeries; ^~~~~ In file included from ../../../modules/welle-io/welleio.h:13:0, from ../../../modules/welle-io/welleio.cpp:1: ../../../modules/welle-io/welle.io/src/welle-gui/waterfallitem.h:40:5: error: ‘QLineSeries’ does not name a type; did you mean ‘QLineEdit’? QLineSeries dataSeries; ^~~ QLineEdit ../../../modules/welle-io/welle.io/src/welle-gui/waterfallitem.h:51:5: error: ‘QLineSeries’ does not name a type; did you mean ‘QLineEdit’? QLineSeries* getDataSeries(); ^~~ QLineEdit

and now I'm stuck the resulting binary does not run

./headunit-app QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root' Failed to create qtquick2videosink. Make sure it is installed correctly

(headunit-app:706): GLib-GObject-CRITICAL **: 18:09:42.719: g_object_set: assertion 'G_IS_OBJECT (object)' failed

(headunit-app:706): GLib-GObject-CRITICAL **: 18:09:42.719: g_object_set: assertion 'G_IS_OBJECT (object)' failed

(headunit-app:706): GLib-GObject-CRITICAL **: 18:09:42.719: g_object_set: assertion 'G_IS_OBJECT (object)' failed

(headunit-app:706): GStreamer-CRITICAL **: 18:09:42.719: gst_bin_add: assertion 'GST_IS_ELEMENT (element)' failed

(headunit-app:706): GStreamer-CRITICAL **: 18:09:42.719: gst_element_link_pads_full: assertion 'GST_IS_ELEMENT (dest)' failed Starting headunit E: ../../../modules/android-auto/headunit/hu/hu_aap.cpp:83: ihu_tra_start : Unknown transport type Stopping headunit Plugin Manager: Plugin loaded : "libandroid-auto-plugin.so" Plugin Manager: Plugin loaded : "libmedia-player-plugin.so" Settings Loader: "" : Error loading settings JSON, root type should be of "items" type Plugin Manager: Plugin loaded : "libodb-car-plugin.so" Plugin Manager: Plugin loaded : "libphone-bluetooth-plugin.so" Plugin Manager: Plugin loaded : "libusbconnectionlistener-plugin.so" Plugin Manager: Plugin loaded : "libvolume-control-plugin.so" Settings Loader: "" : Error loading settings JSON, root type should be of "items" type Loading qml plugin: "libvolume-control-qml.so" Module 'org.viktorgino.headunit.volume' does not contain a module identifier directive - it cannot be protected from external registrations. Theme Manager: Error loading plugin : "themes/default-theme/libdefault-theme.so" "Die dynamische Bibliothek konnte nicht gefunden werden." telephony: [BluezQt] bluez manager started telephony: [BluezQt] Agent registered telephony: [BluezQt] Agent set as default telephony: [BluezQt] obex service started telephony: [BluezQt] obex manager started

modemlamer commented 4 years ago

One week is gone since your last email. I still can't find any clue through this.

modemlamer commented 4 years ago

i still need some help over here wink u told me uploading a new image, but i cant find one..

robert5974 commented 4 years ago

@modemlamer I was stuck yesterday on the exact position you originally reported.

I'll try your edits, but out of curiousity did you go to the other sections to build those libraries then come back and make the headunit-desktop?

That is how I was doing it since the note when installing the libraries mentioned doing so.

viktorgino commented 4 years ago

Hi @modemlamer and @robert5974 sorry for the delay again, been busy with some other projects. Last month I sorted out packaging for HUD, which was the milestone before publishing a new image. I will need to push new packages to the apt repository before I can upload the image, but it's coming. This will make updating to new versions a lot easier. Once the image is online I'll setup automated building of the apt packages, so updates to this repo will be immediately available. Sorry again for taking so long, but I have to work on other stuff too.

modemlamer commented 4 years ago

@viktorgino thank you!

modemlamer commented 4 years ago

@viktorgino any updates here?

vvidov commented 4 years ago

plaese, update build https://github.com/viktorgino/headunit-desktop/wiki/Building-Headunit-Desktop

there is no headunit/hu/ and so on.

protoc --proto_path=headunit/hu/ --cpp_out=headunit/hu/generated.x64/ headunit/hu/hu.proto

embetrix commented 3 years ago

@viktorgino the build instruction are not working... protoc --proto_path=headunit/hu/ --cpp_out=headunit/hu/generated.x64/ headunit/hu/hu.proto headunit/hu/: warning: directory does not exist. headunit/hu/hu.proto: No such file or directory maybe you can provide a Docker container with all dependencies so that everyone can build it ?