<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!&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <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>