Hi ulas I've created an virtual enviroment with vmware. I've created an ubuntu 24.04 image. I've follow step by step of github, even watching the video at the same time. All the steps works properly and its check too, but when I try to run the command docker buildx build --platform linux/arm64 --load -f DockerFileRasp -t raspimage . I got the follow error ERROR:failed to solved: failed to read dockerfile: open DockerFileRasp: no such file or directory. I've tested it on two differents computers. One of them directly on hard disk with a ubuntu 22.04.and the other virtualizing an image of ubuntu 24.04 in other laptop I follow the steps point by point. I don't jump any point, not put anything new. But it still doesn't work
@ulasdikme73077 күн бұрын
@carlosgallego1076 Hi Carlos, in which step wmware is created? There is another video could you please check it too? you simply run the command in the wrong path. Just yesterday another guy compiled for 32 bit github.com/PhysicsX/QTonRaspberryPi/issues/21 you can see from here. You still copy files from repo to somewhere? if not just checkout the repo and cd QTonRaspberryPi then run the commands This is previous video kzbin.info/www/bejne/a4nZgpKcgdp1jpI
@carlosgallego10767 күн бұрын
I told you that I've not changed anything. Only your steps.
@ulasdikme73077 күн бұрын
@carlosgallego1076 share "history" command lets see together.
@carlosgallego10767 күн бұрын
I will try to record a video
@carlosgallego10766 күн бұрын
Have you seen the video that I sent you?
@OrazioArcidiacono8 күн бұрын
I need for Rapsberry Pi 3... can you help?
@ulasdikme73078 күн бұрын
it will work for rasp 3 too as long as you use same image. check the channel and the github page there is a new video and instructions
@carlosgallego107611 күн бұрын
Hi I've got install all the step in a ubuntu 22.04. But when I try to run the command (docker build -t qtcrossbuild .) I get the follow errors error 5/14 COPY rasp.tar.gz /build/rasp.tar.gz error 7/14 COPY toolchain.cmake /build/ error 13/14 COPY project /build/project I've put the files DockerFileRasp and Dockerfile in /docker/qt6 to sort all things created in the docker folder What can I do?
@ulasdikme730711 күн бұрын
@@carlosgallego1076 Why do you change the folder structure? I just tested yesterday and everything is fine. Just go to repostirory QTonRapberrypi then execute commands. when you have a successful build you can change whatever you like probably you need to put rasp.tar.gz and other files under your directory, but still just follow the steps for the first time. 😊
@carlosgallego107611 күн бұрын
I've followed the steps but it doesn't really say where to install it. I go to the root and put the file in the DockerFileRasp and DockerFile files there??
@ulasdikme730711 күн бұрын
@@carlosgallego1076 it doesnt say copy somewhere? just follow the video. go to folder of repositoty and that is it.
@ulasdikme730711 күн бұрын
@@carlosgallego1076 it is not sth you will install it somewhere, there will be docker images at the end not kind of program installation.
@ulasdikme730711 күн бұрын
@@carlosgallego1076 does it says move these files? I dont see it.
@carlosgallego107615 күн бұрын
Hi Thanks for the video I have seen the video 3 times and I do not have it very clear. I have a raspberry Pi4 4gb, already have installed docker I created a folder in /docker/qt6, within the folder qt6 I created the DockerFileRasp file and copied everything from the github DockerFileRasp file. What command do I use to create the image? What command do I use to compile the file?
@ulasdikme730715 күн бұрын
@@carlosgallego1076 Hi, have you compiled the qt? you can follow instructions in the github page also. which step are you strugling now?
@carlosgallego107614 күн бұрын
I don't understand. I don't want to install it on ubuntu. I dón't want to emulate the raspberry. I've a raspberry and I want to compile a application created with Qt6 in Windows for working on the raspberry.
@ulasdikme730714 күн бұрын
@@carlosgallego1076 So, this content explains cross development. Your windows running on x86, rasp is arm. They are different architectures. It is not possible to run simply same applicaiton (compiled) on these two hardwares. When you want to compile the qt, you need sysroot of the target(rasp). There are two ways to get it, you can emulate on your host, or you can copy files from rasp via ftp, sftp then try to build qt. ( ofcourse if you need specific version). If it is simple application just install it on rasp then compile. But in this case the qt version can be old. Working on windows is not smart if target is linux based. For docker part, you can do exactly what I did in widnwos, I never tried. YOu need to install docker and qemu to windows. Otherwise as I explained above. Qt is a combination of libraries which can have hardware dependency. It is not easy to compile your application if someone provides everyhing ready for you. You can find ready image on qt website as I explained in the beginning of the video but in this case it will limit your development. You need to decide what you want to do.
@carlosgallego107614 күн бұрын
Then you advise me to install qt6 in the raspberry, and make applications from the raspberry? Can you install Qt6 in the raspberry, do you have any video? Is there much difference between Qt5 and Qt6, to work with applications widgets, or for raspberry with Qt5 I will have enough?
@ulasdikme730714 күн бұрын
@@carlosgallego1076 Yes there is huge difference between qt5 and qt6, it depends what you want to do. I recommend to use latest version of the Qt. Developing on target is slow , generally it is not recommended. Safe way is to compile the qt and create a working environment for cross development :) but ofcourse it is up to you.
@samedsucuk19 күн бұрын
Truly rare and excellent content. Thanks for guide. Teşekkürler :) 💯
@sarveshkumarnasare142023 күн бұрын
For those who are searching for the source code, I got the above source code from his previous (part-1) video's description
@sarveshkumarnasare142023 күн бұрын
this is the first tutorial that I regret to end so early🥲, the decision of not including namespace to shorten the syntax was great, the viewer will be able to debug their mistakes more easily Subscribed ❤👍🏻
@mokshmangal9308Ай бұрын
at 24:25 i am getting this kind of error => The WebSocket handshake Connection field is missing the upgrade token can anyone tell me why this is happening, and how to resolve it. any help appreciated.
@reverseilaАй бұрын
I like the tutorials that start with sth simple and then improve it later on the video. Also one of the best explanations on both gtest and cmake. Thanks man!
@afalsaytАй бұрын
Hello! I think something has changed in raspberry firmware repo. There is no opt folder anymore
@ulasdikme7307Ай бұрын
@@afalsayt yes, you are right, they moved opengl libraries into standard file system. I will check it.
@ulasdikme7307Ай бұрын
I removed the firmware repository. Nothing is needed more. As I see, maybe it is not needed to build gcc anymore. I will check it later, it can save extra time. Thanks for heads up.
@fablapp2 ай бұрын
auch I got stuck at the gstreamer with PI.... using the 5 and not been able to address to the correct camera still very confusing these pipelines....
@yusufbulbul71002 ай бұрын
great video for training. thanks for sharing Ulas. :)
@afalsayt2 ай бұрын
Hello! I receive this error. > [22/22] RUN { cd project && /build/qt6/pi/bin/qt-cmake && cmake --build .; }: 0.154 /bin/sh: 1: /build/qt6/pi/bin/qt-cmake: not found Any idea why? I didnt find a way to see the logs. Reading comments i think it is the same error as @samedsucuk
@ulasdikme73072 ай бұрын
@@afalsaytHi, Did you change anything in the dockerfile? As I see qt is compiled successfully? but the example is not compiled. I am going to try to build now, but if you change anything in the script let me know.
@afalsayt2 ай бұрын
@@ulasdikme7307 Hello! Yes, i've added qtwebsockets in the same way you did with shadertools etc FROM ubuntu:24.04 # Avoid interactive prompts during package installation ENV DEBIAN_FRONTEND=noninteractive # Update and install some necessary packages RUN { \ set -e && \ apt-get update && apt-get install -y \ wget \ git \ build-essential \ make \ cmake \ rsync \ sed \ libclang-dev \ ninja-build \ gcc \ bison \ python3 \ gperf \ pkg-config \ libfontconfig1-dev \ libfreetype6-dev \ libx11-dev \ libx11-xcb-dev \ libxext-dev \ libxfixes-dev \ libxi-dev \ libxrender-dev \ libxcb1-dev \ libxcb-glx0-dev \ libxcb-keysyms1-dev \ libxcb-image0-dev \ libxcb-shm0-dev \ libxcb-icccm4-dev \ libxcb-sync-dev \ libxcb-xfixes0-dev \ libxcb-shape0-dev \ libxcb-randr0-dev \ libxcb-render-util0-dev \ libxcb-util-dev \ libxcb-xinerama0-dev \ libxcb-xkb-dev \ libxkbcommon-dev \ libxkbcommon-x11-dev \ libatspi2.0-dev \ libgl1-mesa-dev \ libglu1-mesa-dev \ freeglut3-dev \ libssl-dev \ libgmp-dev \ libmpfr-dev \ libmpc-dev \ flex \ gawk \ texinfo \ libisl-dev \ zlib1g-dev \ libtool \ autoconf \ automake \ libgdbm-dev \ libdb-dev \ libbz2-dev \ libreadline-dev \ libexpat1-dev \ liblzma-dev \ libffi-dev \ libsqlite3-dev \ libbsd-dev \ perl \ patch \ m4 \ libncurses5-dev \ gettext && \ apt-get clean && \ rm -rf /var/lib/apt/lists/*; \ } 2>&1 | tee -a /build.log # Set the working directory to /build WORKDIR /build # Create a directory for the tools and change into it RUN mkdir crossTools && cd crossTools 2>&1 | tee -a /build.log # Download the necessary tar files # check version on raspberry pi - according to version build process can vary # gcc --version gcc version # ld --version binutils version # ldd --version glibc version RUN cd crossTools && \ wget mirror.lyrahosting.com/gnu/binutils/binutils-2.40.tar.gz && \ wget ftp.nluug.nl/pub/gnu/glibc/glibc-2.36.tar.gz && \ wget ftp.nluug.nl/pub/gnu/gcc/gcc-12.2.0/gcc-12.2.0.tar.gz && \ git clone --depth=1 github.com/raspberrypi/linux 2>&1 | tee -a /build.log # Extract the tar files RUN cd crossTools && \ tar xf binutils-2.40.tar.gz && \ tar xf glibc-2.36.tar.gz && \ tar xf gcc-12.2.0.tar.gz 2>&1 | tee -a /build.log RUN mkdir -p /opt/cross-pi-gcc 2>&1 | tee -a /build.log # Set the PATH environment variable ENV PATH=/opt/cross-pi-gcc/bin:$PATH # Compile toolchain - Reference docs.slackware.com/howtos:hardware:arm:gcc-10.x_aarch64_cross-compiler RUN { \ set -e && \ cd /build/crossTools/linux/ && \ KERNEL=kernel8 && \ make ARCH=arm64 INSTALL_HDR_PATH=/opt/cross-pi-gcc/aarch64-linux-gnu headers_install && \ cd ../ && \ mkdir build-binutils && cd build-binutils && \ ../binutils-2.40/configure --prefix=/opt/cross-pi-gcc --target=aarch64-linux-gnu --with-arch=armv8 --disable-multilib && \ make -j4 && \ make install && \ echo "Binutils done" && \ cd ../ && \ sed -i '66a #ifndef PATH_MAX #define PATH_MAX 4096 #endif' /build/crossTools/gcc-12.2.0/libsanitizer/asan/asan_linux.cpp && \ mkdir build-gcc && cd build-gcc && \ ../gcc-12.2.0/configure --prefix=/opt/cross-pi-gcc --target=aarch64-linux-gnu --enable-languages=c,c++ --disable-multilib && \ make -j4 all-gcc && \ make install-gcc && \ echo "Compile glibc partly" && \ cd ../ && \ mkdir build-glibc && cd build-glibc && \ ../glibc-2.36/configure \ --prefix=/opt/cross-pi-gcc/aarch64-linux-gnu \ --build=$MACHTYPE \ --host=aarch64-linux-gnu \ --target=aarch64-linux-gnu \ --with-headers=/opt/cross-pi-gcc/aarch64-linux-gnu/include \ --disable-multilib \ libc_cv_forced_unwind=yes && \ make install-bootstrap-headers=yes install-headers && \ make -j4 csu/subdir_lib && \ install csu/crt1.o csu/crti.o csu/crtn.o /opt/cross-pi-gcc/aarch64-linux-gnu/lib && \ aarch64-linux-gnu-gcc -nostdlib -nostartfiles -shared -x c /dev/null -o /opt/cross-pi-gcc/aarch64-linux-gnu/lib/libc.so && \ touch /opt/cross-pi-gcc/aarch64-linux-gnu/include/gnu/stubs.h && \ echo "Build gcc partly" && \ cd ../build-gcc/ && \ make -j4 all-target-libgcc && \ make install-target-libgcc && \ echo "build complete glibc" && \ cd ../build-glibc/ && \ make -j4 && \ make install && \ echo "build complete gcc" && \ cd ../build-gcc/ && \ make -j4 && \ make install && \ echo "Is finished"; \ } 2>&1 | tee -a /build.log RUN mkdir sysroot sysroot/usr sysroot/opt COPY rasp.tar.gz /build/rasp.tar.gz RUN tar xvfz /build/rasp.tar.gz -C /build/sysroot # Clone the Raspberry Pi firmware repository RUN git clone --depth=1 github.com/raspberrypi/firmware firmware 2>&1 | tee -a /build.log # Copy the opt directory from the cloned repository to sysroot/opt RUN cp -r firmware/opt sysroot/opt 2>&1 | tee -a /build.log COPY toolchain.cmake /build/ RUN { \ echo "Cmake build" && \ mkdir cmakeBuild && \ cd cmakeBuild && \ git clone github.com/Kitware/CMake.git && \ cd CMake && \ ./bootstrap && make -j8 && make install && \ echo "Cmake build is finished"; \ } 2>&1 | tee -a /build.log RUN { \ set -e && \ echo "Fix symbollic link" && \ wget raw.githubusercontent.com/riscv/riscv-poky/master/scripts/sysroot-relativelinks.py && \ chmod +x sysroot-relativelinks.py && \ python3 sysroot-relativelinks.py /build/sysroot && \ mkdir -p qt6 qt6/host qt6/pi qt6/host-build qt6/pi-build qt6/src && \ cd qt6/src && \ wget download.qt.io/official_releases/qt/6.8/6.8.0/submodules/qtbase-everywhere-src-6.8.0.tar.xz && \ wget download.qt.io/official_releases/qt/6.8/6.8.0/submodules/qtshadertools-everywhere-src-6.8.0.tar.xz && \ wget download.qt.io/official_releases/qt/6.8/6.8.0/submodules/qtdeclarative-everywhere-src-6.8.0.tar.xz && \ wget download.qt.io/official_releases/qt/6.8/6.8.0/submodules/qtwebsockets-everywhere-src-6.8.0.tar.xz && \ cd ../host-build && \ tar xf ../src/qtbase-everywhere-src-6.8.0.tar.xz && \ tar xf ../src/qtshadertools-everywhere-src-6.8.0.tar.xz && \ tar xf ../src/qtdeclarative-everywhere-src-6.8.0.tar.xz && \ tar xf ../src/qtwebsockets-everywhere-src-6.8.0.tar.xz && \ echo "Compile qtbase for host" && \ cd qtbase-everywhere-src-6.8.0 && \ cmake -GNinja -DCMAKE_BUILD_TYPE=Release \ -DQT_BUILD_EXAMPLES=OFF \ -DQT_BUILD_TESTS=OFF \ -DCMAKE_INSTALL_PREFIX=/build/qt6/host && \ cmake --build . --parallel 4 && \ cmake --install . && \ echo "Compile shader for host" && \ cd ../qtshadertools-everywhere-src-6.8.0 && \ /build/qt6/host/bin/qt-configure-module . && \ cmake --build . --parallel 4 && \ cmake --install . && \ echo "Compile declerative for host" && \ cd ../qtdeclarative-everywhere-src-6.8.0 && \ /build/qt6/host/bin/qt-configure-module . && \ cmake --build . --parallel 4 && \ cmake --install . && \ cd ../../pi-build && \ # a echo "Compile websockets for host" && \ cd ../qtwebsockets-everywhere-src-6.8.0 && \ /build/qt6/host/bin/qt-configure-module . && \ cmake --build . --parallel 4 && \ cmake --install . && \ cd ../../pi-build && \ # tar xf ../src/qtbase-everywhere-src-6.8.0.tar.xz && \ tar xf ../src/qtshadertools-everywhere-src-6.8.0.tar.xz && \ tar xf ../src/qtdeclarative-everywhere-src-6.8.0.tar.xz && \ tar xf ../src/qtwebsockets-everywhere-src-6.8.0.tar.xz && \ echo "Compile qtbase for rasp" && \ cd qtbase-everywhere-src-6.8.0 && \ cmake -GNinja -DCMAKE_BUILD_TYPE=Release -DINPUT_opengl=es2 \ -DQT_BUILD_EXAMPLES=OFF -DQT_BUILD_TESTS=OFF \ -DQT_HOST_PATH=/build/qt6/host \ -DCMAKE_STAGING_PREFIX=/build/qt6/pi \ -DCMAKE_INSTALL_PREFIX=/usr/local/qt6 \ -DCMAKE_TOOLCHAIN_FILE=/build/toolchain.cmake \ -DQT_FEATURE_xcb=ON -DFEATURE_xcb_xlib=ON \ -DQT_FEATURE_xlib=ON && \ cmake --build . --parallel 4 && \ cmake --install . && \ echo "Compile shader for rasp" && \ cd ../qtshadertools-everywhere-src-6.8.0 && \ /build/qt6/pi/bin/qt-configure-module . && \ cmake --build . --parallel 4 && \ cmake --install . && \ echo "Compile declerative for rasp" && \ cd ../qtdeclarative-everywhere-src-6.8.0 && \ /build/qt6/pi/bin/qt-configure-module . && \ cmake --build . --parallel 4 && \ cmake --install . && \ # echo "Compile websockets for rasp" && \ cd ../qtwebsockets-everywhere-src-6.8.0 && \ /build/qt6/pi/bin/qt-configure-module . && \ cmake --build . --parallel 4 && \ cmake --install . && \ # echo "Compilation is finished"; \ } 2>&1 | tee -a /build.log RUN tar -czvf cross-pi-gcc.tar.gz -C /opt/cross-pi-gcc . RUN tar -czvf qt-host-binaries.tar.gz -C /build/qt6/host . RUN tar -czvf qt-pi-binaries.tar.gz -C /build/qt6/pi . RUN mkdir /build/project COPY project /build/project RUN { \ cd project && \ /build/qt6/pi/bin/qt-cmake && \ cmake --build .; \ }
@afalsayt2 ай бұрын
@@ulasdikme7307 @ulasdikme7307 Yes! I've added qtwebsockets module in the docker file following the same steps you did with the shaders module
@ulasdikme73072 ай бұрын
@@afalsayt Yeah this can break something. I didnt try websocket module
@ulasdikme73072 ай бұрын
I think you can remove failed part from dockerfile, then create the container, get the log file and check the error
@nicolasRas3 ай бұрын
Hi Ulas. Thanks for your tutorial. Question, why do you use the architecture 32 bits in your toolchain ? The Raspberry pi 4 has a 64bit architecture. It's because of the OS 32bit? And why use 32 bit OS and not the 64 bits OS ? Thanks
@RobertAllen-k4q3 ай бұрын
Walker Helen White David Walker Jeffrey
@selcuk574 ай бұрын
For rsync fault : Your Raspberry Pi's pi user must either be granted root privileges, or you can set a root password and then configure the sshd_config file by setting PermitRootLogin yes.
@Bmsaydogru4 ай бұрын
İngilizce konuşuyorsun ama sanki Türkçe gibi, Türkçe vurgularla çok hoşuma gitti..
@c-b51kellerkind4 ай бұрын
did u tested it on a debian 12 machine? now i found my mistake, i have to mount a new volume to the container in debian 12 first, i think.
@rydinorwin4 ай бұрын
Love this. Getting CRC error...(?) Help apprreciated, unless I can work it out... ??
5 ай бұрын
Hi bro, can you help me to finish my homework PLEASE?
@mayssaknani5 ай бұрын
i can't find the /opt/vc/ directory in my raspberry, and i couldnt also build it from source, what should i do ?
@zek_de_ed63895 ай бұрын
Ulaş bey iyi çalışmalar, Windows veya linux tarafında opencv içeren C++ kodları yazıp, bunu Beaglebone'a uygun şekilde derlemek istiyorum. Sanıyorum ki opencv buna göre make yapılmalı önce. -D CMAKE_TOOLCHAIN_FILE= ? bunu nasıl eldeceğimi anlayamadım. Aklıma gelen diğer seçenek make işlemini Beaglebone'da yapıp ordan geliştirme yapacağım bilgisayara aktarmak ve Beaglebone toolchain'e göre derlemek. QT creator kullanmak istmeiştim fakat toolchainin işaret edileceği yeri göremedim. Bu konu hakkında ne söyleyebilirsiniz?
@ulasdikme73075 ай бұрын
Iyi calismalar, direk beaglebone uzerinde de derleyebilirsin. Fakat cross development yapmak istiyorsan, benim onerim sanal makina yada docker gibi katmanlari kullanmadir. Bu sekilde isletim sisteminden bagimsiz bir sekilde derlersin. Windowsda direk cross derleyip linux uzerinde calistirmak gereksiz olabilir. Senin yerinde olsam en son paylastigim docker ile cross derleme videosuna bakardim. Ordaki docker dosylarini modifiye eder gerekli sonuca ulasirdim. Qt icin cozumu benim yaptigim icerikten ulasirsin gibi duruyor bir kac deneme ile. beaglebone zaten debian based olmasi lazim cok bir fark yok. Opencv icin ise, ilk basit bir kac opencv ornegini cross olarak derle cmake ile sonra beagleboneda calistigini gor. Ardindan zaten docker yada sanal makina kullanarak qt ile olan adimlari birlestirirsin. CMAKE_TOOLCHAIN_FILE dosyasi toolchain ile alakali katmanlari icermeli sanki, opencv cmakelists.txt de cagirilabilir. Opencv yi qt gibi dusun, sadece so(shared object) dosyalari var ve onlari cmake ile bind etmen lazim. (bide header lar tabi) :)
@zek_de_ed63895 ай бұрын
@@ulasdikme7307 Buna bakacağım, C++ tarafı ikinci uygulamam olacakta , şu anda spyder idesinde pythonda yazdığım logitech kamerasına ulaşan opencv kodu, beaglebone'da çalıştıramıyorum :). Gstreamer hatası alıyorum ayrıca kamera verisi alamdığından timeout oluşuyor ama kameraya ulaşıyor ledin yanmasından anlıyorum. Önce bu tarafı halletmem önemli.
@gonzaloriverasuarez80155 ай бұрын
Hi, is the same for rpi3?
@ulasdikme73075 ай бұрын
If image is same then yes☺️
@alejomg955 ай бұрын
Hi Ulas, thanks for the great video. I got the hello world example working but once I tried doing it with my own project I got the following error: Failed to find required Qt component "Mqtt". Expected Config file at "/build/qt6/pi/lib/cmake/Qt6Mqtt/Qt6MqttConfig.cmake" does NOT exist. As you can see I intend to use MQTT in my application. I'm new to this so I don't really have a starting point. I imagine that the dockerfile needs to be slightly modified to clone the Mqtt repository and then configure, build and install it. However I'm not sure how to do this. Would you please help me?
@ulasdikme73075 ай бұрын
Hi, you need to update dockerfile to cross compile mqtt. Then it should work.
@gerardoanzora91946 ай бұрын
Hi buddy, im a beginner with QT, I don't have much idea about the subject, besides that it is a bit difficult to find information about it, could you tell me how can I cross-compile from Linux to Windows? Of a QT project using Cmake? Please
@ulasdikme73075 ай бұрын
Hi, Linux to windows? I recommend you to use virtual machine or docker instead of windows as a os. so you can compile between different hardwares with linux.
@ukaszl2487 ай бұрын
When I run ls on the raspberry, I get: "Bookshelf Desktop Documents Downloads drivers HelloQt6 Music Pictures Projekt Public qt-pi-binaries.tar.gz Templates Videos." But when I run ./HelloQt6: -bash, I have an error: "./HelloQt6: No such file or directory" I must have missed something somewhere. I'll try again later. Have you ever encountered something like this? ----- Ok. I used another raspberry and it works without problems. I think I have a different system installed on the first raspberry
@R1FighterR17 ай бұрын
Hi bro can you help me iam going crazy :D when i take a new project with Creator and take all in the project file it want to build the project gives a error with : ERROR [5/5] RUN cd /home/benz/QTonRaspberryPi/project && /build/qt6/pi/b 7.0s -------------------- ERROR: failed to solve: process "/bin/sh -c cd $repoPath$projectDir && /build/qt6/pi/bin/qt-cmake . -DCMAKE_BUILD_TYPE=Debug && cmake --build ." did not complete successfully: exit code: 1 why ?? i want make a creator project and take all in the project file or how can i do make Creator ui file and build it with docker. CAN I ONLY USE YOUr qml file ??
@ulasdikme73077 ай бұрын
Qtcreator ile yapmaya calisiyorsan olmaz video da vscode kullaniliyor, qmake deil cmake kullanman lazim. qmake icinde cmake komutu kosamazsin.
@R1FighterR17 ай бұрын
@@ulasdikme7307 eyvallah baskan bende creator la kurarken cmake ile kurdum cmake file var yani. En iyi crossfile hangisi misal creator ile kursam yapsam komple projec ti sonra bitirmek
@ulasdikme73077 ай бұрын
@@R1FighterR1 ben cmake ve vscode u oneririm, ama hizli bitirryin diyorsan debug yapmayi bosver cmake ile komut satirindan derle istedigin ide yide development olarak kullan. Videoda anlattigim gibide yapabilirsin qtcreator nie kullanmak istiyorsun?
@poryaetemady1117 ай бұрын
thank you so much. One note that need to mention is: in the end extract qt-pi-binaries.tar.gz, the correct location is usr/local/qt6 not usr/local.
@amirtaherkhani8 ай бұрын
how can build all package of qt6.6 in this way ?
@edulum13188 ай бұрын
Great video, thanks for sharing! Just subscribed! I managed to crossbuild Qt 6.5.3 (single file with all modules) by tweaking the Dockerfiles. It would be fantastic to see a series incorporating scripts for building/testing or utilizing Jenkins. Looking forward to more content like this!
@ulasdikme73078 ай бұрын
Thank you, It is kind of a magic for me too :) If you want to share the script to build whole qt do not hesitate it. I never tried whole build and I do not think that I will have enough time to try. If you share it other people can take as a reference.
@edulum13188 ай бұрын
@@ulasdikme7307Thank you for the encouragement! I've made changes to the workspace creating different folders in order to test compatibility with RPI Zero 2 and different versions of Qt. Initially, I tried RPI4 running bookworm 64 lite, using with eglfs instead of xcb. So, once the container generates the tar file, I need to manually install some additional libraries. Let me conduct a few more tests to clarify. Give me a couple of days and II'll get back to you!
@ulasdikme73078 ай бұрын
@@edulum1318 Sure take your time 👍
@Eckmuhl298 ай бұрын
When I try to take a source with a lower framerate than the camera (e.g. I try to take 30fps with a 60fps camera) I have an error, do you know why?
@ponnyao-ek6pl9 ай бұрын
I sincerely ask God for help. Thank you.I put my jetson orin through rsync and put /usr and /lib into ~/orin/sysroot under wsl ubuntu, and then cross-compile my application, and an error occurred
@ponnyao-ek6pl9 ай бұрын
orinCroosTool.cmake cmake_minimum_required(VERSION 3.10) include_guard(GLOBAL) # Set the system name and processor for cross-compilation set(CMAKE_SYSTEM_NAME Linux) set(CMAKE_SYSTEM_PROCESSOR arm) # Set the target sysroot and architecture set(TARGET_SYSROOT /home/yao/orin/sysroot) set(TARGET_ARCHITECTURE aarch64-linux-gnu) set(CMAKE_SYSROOT ${TARGET_SYSROOT}) set(CMAKE_FIND_ROOT_PATH ${TARGET_SYSROOT}) set(CMAKE_INCLUDE_PATH ${TARGET_SYSROOT}/usr/include) set(CMAKE_INCLUDE_PATH ${TARGET_SYSROOT}/usr/include/aarch64-linux-gnu) set(CMAKE_LIBRARY_PATH ${TARGET_SYSROOT}/usr/lib) # Add library directories list(APPEND CMAKE_LIBRARY_PATH "${TARGET_SYSROOT}/usr/lib") list(APPEND CMAKE_LIBRARY_PATH "${TARGET_SYSROOT}/lib/aarch64-linux-gnu") list(APPEND CMAKE_LIBRARY_PATH "${TARGET_SYSROOT}/usr/lib/aarch64-linux-gnu") set(CMAKE_INSTALL_RPATH "${TARGET_SYSROOT}/lib/aarch64-linux-gnu") list(APPEND CMAKE_RPATH_LINK_PATH "${TARGET_SYSROOT}/lib/aarch64-linux-gnu") # Add RPATH link directories list(APPEND CMAKE_RPATH_LINK_PATH "${TARGET_SYSROOT}/usr/lib") list(APPEND CMAKE_RPATH_LINK_PATH "${TARGET_SYSROOT}/usr/lib/aarch64-linux-gnu") list(APPEND CMAKE_RPATH_LINK_PATH "${TARGET_SYSROOT}/lib/aarch64-linux-gnu") # Set paths for CUDA libraries set(CUDA_INCLUDE_DIR ${TARGET_SYSROOT}/usr/local/cuda/include) set(CUDA_LIB_DIR ${TARGET_SYSROOT}/usr/local/cuda/lib64) # Configure the pkg-config environment variables set(ENV{PKG_CONFIG_PATH} "$ENV{PKG_CONFIG_PATH}:${CMAKE_SYSROOT}/usr/lib/${TARGET_ARCHITECTURE}/pkgconfig") set(ENV{PKG_CONFIG_LIBDIR} "${TARGET_SYSROOT}/usr/lib/pkgconfig:${TARGET_SYSROOT}/usr/share/pkgconfig:${CMAKE_SYSROOT}/usr/lib/${TARGET_ARCHITECTURE}/pkgconfig:${CMAKE_SYSROOT}/usr/lib/pkgconfig") set(ENV{PKG_CONFIG_SYSROOT_DIR} "${CMAKE_SYSROOT}") # Set the C and C++ compilers set(tools /home/yao/orin/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu) set(CMAKE_C_COMPILER ${tools}/bin/${TARGET_ARCHITECTURE}-gcc) set(CMAKE_CXX_COMPILER ${tools}/bin/${TARGET_ARCHITECTURE}-g++) # Define additional compiler flags set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -isystem=${TARGET_SYSROOT}/usr/include -isystem=${TARGET_SYSROOT}/usr/local/include -isystem=${TARGET_SYSROOT}/usr/include/${TARGET_ARCHITECTURE}") set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS}") # Configure CMake find root path modes set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY) # Set the install RPATH use and build RPATH set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) set(CMAKE_BUILD_RPATH ${TARGET_SYSROOT}) # Append to CMake library and prefix paths list(APPEND CMAKE_LIBRARY_PATH ${CMAKE_SYSROOT}/usr/lib/${TARGET_ARCHITECTURE}) list(APPEND CMAKE_PREFIX_PATH "${CMAKE_SYSROOT}/usr/lib/${TARGET_ARCHITECTURE}/cmake")
part 2: kzbin.info/www/bejne/qHyaXpKebbSEaK8si=wNzW36YwwgfFERuC
@samedsucuk9 ай бұрын
I am trying to add these modules: qtcharts-everywhere-src-6.6.1 qtquick3d-everywhere-src-6.6.1 qtquicktimeline-everywhere-src-6.6.1 qtquick3dphysics-everywhere-src-6.6.1 For dockerfile. I tried to add as you added in "shader" and "declarative". Then when I get the Docker build: > [22/22] RUN { cd project && /build/qt6/pi/bin/qt-cmake && cmake --build .; }: 0.208 /bin/sh: 1: /build/qt6/pi/bin/qt-cmake: not found ------ Dockerfile:286 -------------------- 285 | 286 | >>> RUN { \ 287 | >>> cd project && \ 288 | >>> /build/qt6/pi/bin/qt-cmake && \ 289 | >>> cmake --build .; \ 290 | >>> } 291 | -------------------- ERROR: failed to solve: process "/bin/sh -c { cd project && /build/qt6/pi/bin/qt-cmake && cmake --build .; }" did not complete successfully: exit code: 127 I get this error at the last stage.
@ulasdikme73079 ай бұрын
there is a build.log file in the container, you can find more info.
@jordantrajkov95499 ай бұрын
@@ulasdikme7307 how we can open that build.log for the container where we cant build the container
@ulasdikme73079 ай бұрын
@@jordantrajkov9549 docker cp tmpbuild:/build.log ./build.log it is explained in the github github.com/PhysicsX/QTonRaspberryPi?tab=readme-ov-file#debugging-of-compilation
@jordantrajkov95499 ай бұрын
@@ulasdikme7307 okay thanks mate
@cristian85539 ай бұрын
there is a way to do it more easer: do double click on the botton and write on the execution section: dispose(); //if u want to see only the new page nameoftheclass namevariable = new nameoftheclass(); namevariable.setVisible(true);
@kadirtunc466410 ай бұрын
Can you make a video for beaglebone black? I really need it. Thanks for the great tutorial.
@81MaMoo8110 ай бұрын
sakın türkçe yapma.
@ulasdikme730710 ай бұрын
hahahah 😁 Turkce de yaparim siz abone olun. Sorun yok. Bu arada yeni docker ile bir tutorial yaptim onu ornek alirsan daha iyi olur bu eski.
@81MaMoo8110 ай бұрын
@@ulasdikme7307 abone oldum. cevap vereceğini hiç düşünmemiştim :) docker de bilmiyorum ki hiç kullanmadım. şimdi ona da bulaşmayayım bu ara çok şey öğrendim-öğreniyorum kafam çorba oldu. Yani benim gibi ingilizce özürlüleri için lütfen Türkçe de yapın.
@ulasdikme730710 ай бұрын
Docker lisi daha kolay. Videoyu izle sadece komutlari kos. Tum bagimliliklari ben hallettim sadece komutlari kosarsan bir kac saat sonra qt compile olmus bir sekilde kullanima hazir olarak bulumacak. Github da komutlar var. Docker dedigim sey sanal makina yerine kucuk izolasyon yaratiyor, rasp a falan ihtiyacin yok tum derlemeyi host da yapabiliosun acayip kolaylik. Takildigin yer olursa sor cevaplarim. Github linki video nun altinda. Turkce cok izlenmiyor dedim bari ingilizce yapayim oda cok izlenmedi hos 😁 Ama dusunuyorum zamanim olursa genel bir video yapacagim turkce
@arcrobotics998210 ай бұрын
First of all thank you for your great vidoes i appriceate that you are putting effort to help others, secondly i have tired to follow kzbin.info/www/bejne/pYjToKCOnJ6soJI but it got me no where since qt6.3.0 is no where to be found plus i even tried it with qt6.5.0 still i can build and compile for the host but the pi build throws tons fo errors plus when i do the last rsync i get this error rsync: [sender] link_stat "/opt/vc" failed: No such file or directory (2) so question is should i follow the tutorial mentioned above with the latest qt and what should i do to solve the /opt/vc i am using raspberry pi 4 4GB running 32bit bullseye lite os and i am running ubuntu22.04 on vm
@ulasdikme730710 ай бұрын
Hey thanks, follow the latest one, I have been keeping this up to date.
@mayssaknani4 ай бұрын
@@ulasdikme7307 which one of them please ? im facing the same problem of "no such file or directory" (cant find the /opt/vc)
@ulasdikme73074 ай бұрын
@@mayssaknani You can try this video. There are steps in the link below the video.(github link) With docker it is easy, but you need to update docker files to compile opecnv if you need it.
@Geekforest10 ай бұрын
Hey Ulas, thanks for the tutorial. I was able to get a basic App running on an RPi 4b with this. EDIT Issue solved, see replies. One question I've got is about extending the packages that are installed in the build image. I want to compile an app that uses libmodbus. So I added "libmodbus-dev \" under the run section of the dockerfile and rebuilt, but it can't seem to find the package during the last step. [22] Is this the right way to add additional packages to the build process or are there more steps that I need to take?
@Geekforest10 ай бұрын
I may have been a bit silly and added these to the dockerfile instead of the DockerFileRasp. Will update if that fixes things.
@Geekforest10 ай бұрын
EDIT: Issue solved: Putting libmodbus-dev \ and libmodbus5 \ into the run sections of the DockerFile and DockerFileRasp seems to fix the errors in the earlier steps. I had a second error related to linking the library during the final step of making the executable the solution was to update where my custom modbus module was looking for it. I put this in the CMAKELISTS files referencing the modbus libraries, it points to where the actual library files ended up in the build image: target_link_libraries(ModbusModule PRIVATE Qt6::Qml /build/sysroot/usr/lib/aarch64-linux-gnu/libmodbus.so)
@ulasdikme730710 ай бұрын
If you add these libraries in dockerfile, then they are installed for ubuntu which is x86 probably, but you need them for rasp. I think binding will be a problem in this case.
@nikolaygorashchenko997910 ай бұрын
Hi! Could you please explain me, why you connect +5v with D22? shouldn't it be D1? Where in sketch is written start pin as 22?
@xdxdxdxdxdx-m8w10 ай бұрын
Hi, thanks for sharing this video but when i trying to build qtcrossbuild,it gives an error while downloading necessary tar files,here is the error DockerFile:90 /bin/sh :1 :wget: not found. So,how do i solve that ?
@ulasdikme730710 ай бұрын
Hi, I just tested link is working, probably you may have vpn or network configuration which does not allow you to access these links?
@xdxdxdxdxdx-m8w10 ай бұрын
i have tried with different internet connections but it doesn’t change,i think the error is about missing command of “wget” when the RUN line of tar files in DockerFile.Is there a way to fix it anyway ? Can I download manually these .tar files and implement the docker build ?
@ulasdikme730710 ай бұрын
@user-gw3wu9vq4x I just tested and it is working. You can download them in the same directory where dockerfile exists. Then using COPY command it is possible to copy them to image. But as I told you, if you have problem with internet connection, you can see another issues.
@eritongomes811010 ай бұрын
I'm with error when run: ./HelloQt6: error while loading shared libraries: libQt6Core.so.6: cannot open shared object file: No such file or directory
@ulasdikme730710 ай бұрын
Hello Eriton, I hope you are fine, If you have the HelloQt6 then you compiled the qt successfully, good! now you need to send qt-pi-binaries.tar.gz to target and extract it and you export LD_LIBRARY_PATH on the target like in the video or in the link below the video. Have you did that?
@eritongomes811010 ай бұрын
@@ulasdikme7307 Thanks for helping! But I sent qt-pi-binaries.tar.gz to target and extract it and export LD_LIBRARY_PATH. But I show this error.
@ulasdikme730710 ай бұрын
Could you please share with me output of echo $LD_LIBRARY_PATH and sudo find /usr/local -name libQt6Core.so.6 and ldd HelloQt6, lets check together
@eritongomes811010 ай бұрын
@@ulasdikme7307 Sorry, this tuturial is tar -xvf qt-pi-binaries.tar.gz -C /usr/local, I change to tar -xvf qt-pi-binaries.tar.gz -C /usr/local/qt6 Works fine now! Thanks for helping!!!
@ulasdikme730710 ай бұрын
Enjoy.. Do not forget to subscribe, share and like 😇
@eritongomes811010 ай бұрын
Do you know compile to buildroot using raspberry 4?
@eritongomes811010 ай бұрын
Hello Teacher!!! Thank for sharing!!! I like a lot your video. The Brazil loves you.
@yaspfounder10 ай бұрын
Great video thanks a lot!
@erenalks251910 ай бұрын
İngilizcen den türk olduğunu anlamıştım adına da bakınca taşlar yerine oturdu
@audiojog10 ай бұрын
wow this is great!! i have stupid question , with the cross compiled binaries of qt6 installed in raspberry pi hardware can we 1. use qt creator (remotely) from a pc 2. or can we have qt creator setup directly on raspberry pi os ? thanks
@ulasdikme730710 ай бұрын
Thanks, I have been working on vscode for debugging but It is not working as I expected. I would like to create another video for it if I address the issues. For qtcreator you need to extract syroot and cross toolchain and qt libraries(these are available in the container already as tar file), then you should give the path in qtcreator when you add new device and compiler. You need to run qtcreator on host for remote debugging. Do not forget to subscribe and share ! :)
@audiojog10 ай бұрын
@@ulasdikme7307 Sure. Thanks for the promt reply. Eagerly wait for your vs code and qt creator video. Keep up your good work , very helpful. I will try this approach this weekend. I have few follow up questions. If could clarify that would be great. Thanks kindly. 1. For raspberry pi hardware how so we match QEMU image, do you flash the same image as QEMU if yes can you please explain how ?. 2. Can i install QT creator on pi desktop directly and configure the ql libraries after they the compiled libs are sent to the raspberry pi hardware ? basically after cross compilation of qt lib for raspberry pi , can we just use only raspberry pi desktop to write applications?
@ulasdikme730710 ай бұрын
@@audiojog 1. This can be selected via dockerfile FROM --platform=linux/arm64 arm64v8/debian:bookworm as rasp. If you check the docker file for raspberry pi, then you can see bookworm type. But becareful, as I explained in the video, because of different hardware it is not possible to match exact os, there will be difference everytime. Related hardware differences(precompiled binaries) can be found directly from rasp repository. It is explained in the video. When I compiled the Qt without docker, I see some differences in the configuration from eglfs perspective with compilation using docker. it is becuase I missed some precompiled libraries probably. But it is fine for now. I will check it later. 2. I do not recommend using any ide or compilation on target device. But yes if you want, you can run it on raspberry pi. It will be slow I think. You have all libraries and related dependencies already to compile and start. Therefore it is against the nature of cross compilation. :)
@davidaliaga470811 ай бұрын
In 27.31 you tried so many things that it is confusing how did you solve the problem. I have the same problem (Internal data stream error) but somehow you jumped from that error to /dev/video0 not recognized... and I dont know what you did to do that
@maximelebreux291411 ай бұрын
Great tutorial!!
@riounathalie253911 ай бұрын
Hello Ulas, I no longer see our exchange concerning my problem. I tried docker but it is not satisfactory because the process is too long, I need to debug my windows quickly
@ulasdikme730711 ай бұрын
Hi, you can still compile it with vm, but yes docker takes muc longer time you need more ram. But it is easier than solution with vm as long as you have faster computer. Btw I did not show how to debug application with docker? I just showed how to compile? You can still build your development environment with vm using tar files which are produced by docker. If you see last lines in the dockerfile you will see 3 tar files, if you extract them in vm you will have old vm based development environment.