<p style="font-size:small;">Content-Length: 4084 | <a href="http://clevelandohioweatherforecast.com//pFad.php?u=" style="font-size:small;">pFad</a> | <a href="http://github.com/PhysicsX/QTonRaspberryPi/commit/60f4e47fbb408383f4c351a3c87c7fea6c20bcb5.patch" style="font-size:small;">http://github.com/PhysicsX/QTonRaspberryPi/commit/60f4e47fbb408383f4c351a3c87c7fea6c20bcb5.patch</a></p>FF From 60f4e47fbb408383f4c351a3c87c7fea6c20bcb5 Mon Sep 17 00:00:00 2001 From: physicsX <ulasdikme@gmail.com> Date: Wed, 7 Aug 2024 21:52:07 +0200 Subject: [PATCH] Steps for docker qemu installation for ubuntu 24 --- QtJetsonNx6.6.3/README.md | 79 ++++++++++++++++++++++----------------- 1 file changed, 45 insertions(+), 34 deletions(-) diff --git a/QtJetsonNx6.6.3/README.md b/QtJetsonNx6.6.3/README.md index 631ea9f..bb1c9f4 100644 --- a/QtJetsonNx6.6.3/README.md +++ b/QtJetsonNx6.6.3/README.md @@ -20,47 +20,39 @@ If you want to understand theory for cross complation of Qt for rasppberry pi wi # Install Docker NOTE: If you see error during installation, then search on the internet how to install docker and qemu for your os. During time this steps can be different as you expect. -I have ubuntu 22 +I have ubuntu 24 (according to ubuntu version steps can vary) ```bash ulas@ulas:~$ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu -Description: Ubuntu 22.04.3 LTS -Release: 22.04 -Codename: jammy - +Description: Ubuntu 24.04 LTS +Release: 24.04 +Codename: noble ``` -But I tested also with ubuntu 20 -```bash -ulas@ulas:~$ lsb_release -a -No LSB modules are available. -Distributor ID: Ubuntu -Description: Ubuntu 20.04.6 LTS -Release: 20.04 -Codename: focal -``` Lets install dependencies. ```bash -$ sudo apt update -$ sudo apt install apt-transport-https ca-certificates curl software-properties-common - -$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg - +# Add Docker's official GPG key: +$ sudo apt-get update +$ sudo apt-get install ca-certificates curl +$ sudo install -m 0755 -d /etc/apt/keyrings +$ sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc +$ sudo chmod a+r /etc/apt/keyrings/docker.asc ``` + Set up stable repository for docker ```bash -$ echo \ - "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \ - $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null - -$ sudo apt update +echo \ + "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \ + $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ + sudo tee /etc/apt/sources.list.d/docker.list > /dev/null +$ sudo apt-get update ``` Install related packages for Docker ```bash -sudo apt install docker-ce docker-ce-cli containerd.io +sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin ``` Verify installation with hello-world image @@ -78,24 +70,43 @@ $ sudo systemctl enable docker We also need to install QEMU, with it, it is possible to emulate/run raspbian os like it is on real raspberry pi 4 hardware ```bash -$ sudo apt-get install qemu qemu-user-static qemu-user binfmt-support -$ docker run --rm --privileged multiarch/qemu-user-static --reset -p yes +$ sudo apt install qemu-system-x86 qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virt-manager ``` -Update the config.json file to enable experimental feature. +Enable and Start Libvirt: ```bash -nano ~/.docker/config.json +$ sudo systemctl enable libvirtd +$ sudo systemctl start libvirtd +``` + +Add Your User to the Libvirt and KVM Groups: + +```bash +$ sudo usermod -aG libvirt $(whoami) +$ sudo usermod -aG kvm $(whoami) +``` + +Verify Installation: +```bash +$ virsh list --all +``` + +You should see an empty list. + +Set up QEMU for multi-architecture support +```bash +$ docker run --rm --privileged multiarch/qemu-user-static --reset -p yes ``` +Create and use a new Buildx builder instance ```bash -{ - "experimental": "enabled" -} +$ docker buildx create --use --name mybuilder +$ docker buildx inspect mybuilder --bootstrap ``` -It is a good idea to restart Docker +Verify Buildx installation ```bash -sudo systemctl restart docker +$ docker buildx ls ``` # Compile Qt 6.6.3 with Docker <!-- URL input box at the bottom --> <form method="GET" action=""> <label for="targeturl-bottom"><b>Enter URL:</b></label> <input type="text" id="targeturl-bottom" name="u" value="http://github.com/PhysicsX/QTonRaspberryPi/commit/60f4e47fbb408383f4c351a3c87c7fea6c20bcb5.patch" required><br><small> <label for="useWeserv-bottom">Disable Weserv Image Reduction:</label> <input type="checkbox" id="useWeserv-bottom" name="useWeserv" value="false"><br> <label for="stripJS-bottom">Strip JavaScript:</label> <input type="checkbox" id="stripJS-bottom" name="stripJS" value="true"><br> <label for="stripImages-bottom">Strip Images:</label> <input type="checkbox" id="stripImages-bottom" name="stripImages" value="true"><br> <label for="stripFnts-bottom">Stripout Font Forcing:</label> <input type="checkbox" id="stripFnts-bottom" name="stripFnts" value="true"><br> <label for="stripCSS-bottom">Strip CSS:</label> <input type="checkbox" id="stripCSS-bottom" name="stripCSS" value="true"><br> <label for="stripVideos-bottom">Strip Videos:</label> <input type="checkbox" id="stripVideos-bottom" name="stripVideos" value="true"><br> <label for="removeMenus-bottom">Remove Headers and Menus:</label> <input type="checkbox" id="removeMenus-bottom" name="removeMenus" value="true"><br></small> <!-- New form elements Sandwich Strip --> <label for="start"><small>Remove from after:</label> <input type="text" id="start" name="start" value="<body>"> <label for="end"><small>to before:</label> <input type="text" id="end" name="end"> <input type="checkbox" id="applySandwichStrip" name="applySandwichStrip" value="1" onclick="submitForm()"> ApplySandwichStrip<br></small> <button type="submit">Fetch</button> </form><!-- Header banner at the bottom --> <p><h1><a href="http://clevelandohioweatherforecast.com//pFad.php?u=" title="pFad">pFad - (p)hone/(F)rame/(a)nonymizer/(d)eclutterfier! <i>Saves Data!</i></a></h1><br><em>--- a PPN by Garber Painting Akron. <b> With Image Size Reduction </b>included!</em></p><p>Fetched URL: <a href="http://github.com/PhysicsX/QTonRaspberryPi/commit/60f4e47fbb408383f4c351a3c87c7fea6c20bcb5.patch" target="_blank">http://github.com/PhysicsX/QTonRaspberryPi/commit/60f4e47fbb408383f4c351a3c87c7fea6c20bcb5.patch</a></p><p>Alternative Proxies:</p><p><a href="http://clevelandohioweatherforecast.com/php-proxy/index.php?q=http://github.com/PhysicsX/QTonRaspberryPi/commit/60f4e47fbb408383f4c351a3c87c7fea6c20bcb5.patch" target="_blank">Alternative Proxy</a></p><p><a href="http://clevelandohioweatherforecast.com/pFad/index.php?u=http://github.com/PhysicsX/QTonRaspberryPi/commit/60f4e47fbb408383f4c351a3c87c7fea6c20bcb5.patch&useWeserv=true" target="_blank">pFad Proxy</a></p><p><a href="http://clevelandohioweatherforecast.com/pFad/v3index.php?u=http://github.com/PhysicsX/QTonRaspberryPi/commit/60f4e47fbb408383f4c351a3c87c7fea6c20bcb5.patch&useWeserv=true" target="_blank">pFad v3 Proxy</a></p><p><a href="http://clevelandohioweatherforecast.com/pFad/v4index.php?u=http://github.com/PhysicsX/QTonRaspberryPi/commit/60f4e47fbb408383f4c351a3c87c7fea6c20bcb5.patch&useWeserv=true" target="_blank">pFad v4 Proxy</a></p>