# Upgrade Jetson AGX Orin to Ubuntu 24.04 # *** READ BEFORE UPGRADE *** ### Official Support is coming H1 2026 ***This is under testing. I'm only playing with the Hardware. You can find issues maybe with GPU. Kernel from 5.15 and to 6.12 it is compatible. Maybe I show how to compile them.*** ***Canonical now is partner from Nvidia, so they distribute packages for tegra and SBSA. MANDATORY READ --->*** https://discourse.ubuntu.com/t/changes-to-ubuntu-for-tegra-kernel-metapackages-on-jetson-and-igx/48807 ### Nvidia distribute packages for cuda-tegra ubuntu 24.04 https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/arm64/ #### Exists dristributions of drivers but are only compatible with Jetson Thor Download all files (https://launchpad.net/ubuntu/noble/+source/linux-nvidia-tegra): # *** TUTORIAL AGX ORIN *** Check and it should show on the result "Prompt=never": (This block distro ugprades) ```bash grep 'lts' /etc/update-manager/release-upgrades cat /etc/update-manager/release-upgrades ``` #### 1. Ensure the Prompt line in /etc/update-manager/release-upgrades is set to ‘lts‘ using the “grep” or “cat” ![image](https://hackmd.io/_uploads/rk-EVKLleg.png) ### 2. Upgrade Ubuntu with everything to Yes but *not reboot* ```bash sudo apt update sudo apt full-upgrade sudo do-release-upgrade -d sudo apt full-upgrade sudo apt install --fix-broken ``` ### 3. Reboot ### 4. Add Ubuntu 24.04 packages ```bash wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/arm64/cuda-keyring_1.1-1_all.deb sudo dpkg -i cuda-keyring_1.1-1_all.deb sudo apt update sudo apt-get install -y nvidia-container-toolkit ``` ### 5. MANDATORY: Add again Jetpack 6 URLs ```bash echo "deb https://repo.download.nvidia.com/jetson/common r36.4 main" | sudo tee -a /etc/apt/sources.list.d/nvidia-l4t-apt-source.list echo "deb https://repo.download.nvidia.com/jetson/t234 r36.4 main" | sudo tee -a /etc/apt/sources.list.d/nvidia-l4t-apt-source.list sudo apt update sudo apt install --reinstall nvidia-l4t-core sudo apt install --reinstall \ nvidia-l4t-bootloader \ nvidia-l4t-camera \ nvidia-l4t-configs \ nvidia-l4t-cuda \ nvidia-l4t-cuda-utils \ nvidia-l4t-firmware \ nvidia-l4t-3d-core \ nvidia-l4t-gbm \ nvidia-l4t-display-kernel ``` # 6. FIX DOCKER to use JETSON-CONTAINERS ```bash sudo apt update sudo apt install -y iptables iptables-legacy sudo update-alternatives --set iptables /usr/sbin/iptables-legacy ``` # 7. Install jtop ```bash sudo python3 -m pip install -U jetson-stats --break-system-packages ``` # *** THOR PACKAGES *** **Jetpack 7 URLs:** ```bash echo "deb https://repo.download.nvidia.com/jetson/common r38.1 main" | sudo tee -a /etc/apt/sources.list.d/nvidia-l4t-apt-source.list echo "deb https://repo.download.nvidia.com/jetson/t234 r38.1 main" | sudo tee -a /etc/apt/sources.list.d/nvidia-l4t-apt-source.list ``` ### Download ```bash wget https://us.ports.ubuntu.com/pool/main/l/linux-nvidia-tegra/linux-buildinfo-6.8.0-1004-nvidia-tegra_6.8.0-1004.4_arm64.deb wget https://us.ports.ubuntu.com/pool/main/l/linux-nvidia-tegra/linux-headers-6.8.0-1004-nvidia-tegra_6.8.0-1004.4_arm64.deb wget https://us.ports.ubuntu.com/ubuntu-ports/pool/main/l/linux-signed-nvidia-tegra/linux-image-6.8.0-1004-nvidia-tegra_6.8.0-1004.4_arm64.deb wget https://us.ports.ubuntu.com/pool/main/l/linux-nvidia-tegra/linux-modules-6.8.0-1004-nvidia-tegra_6.8.0-1004.4_arm64.deb wget https://us.ports.ubuntu.com/pool/main/l/linux-nvidia-tegra/linux-modules-extra-6.8.0-1004-nvidia-tegra_6.8.0-1004.4_arm64.deb wget https://us.ports.ubuntu.com/pool/main/l/linux-nvidia-tegra/linux-nvidia-tegra-headers-6.8.0-1004_6.8.0-1004.4_all.deb wget https://us.ports.ubuntu.com/pool/main/l/linux-nvidia-tegra/linux-nvidia-tegra-tools-6.8.0-1004_6.8.0-1004.4_arm64.deb wget https://us.ports.ubuntu.com/pool/main/l/linux-nvidia-tegra/linux-tools-6.8.0-1004-nvidia-tegra_6.8.0-1004.4_arm64.deb wget https://us.ports.ubuntu.com/ubuntu-ports/pool/main/l/linux-nvidia-tegra-modules-signed/linux-modules-tegra-oot-jetson-devel-6.8.0-1004-nvidia-tegra_6.8.0-1004.4_arm64.deb wget https://us.ports.ubuntu.com/ubuntu-ports/pool/main/l/linux-nvidia-tegra-modules-signed/linux-modules-tegra-igpu-jetson-devel-6.8.0-1004-nvidia-tegra_6.8.0-1004.4_arm64.deb wget https://us.ports.ubuntu.com/ubuntu-ports/pool/main/l/linux-nvidia-tegra-modules-signed/linux-modules-tegra-igpu-jetson-devel-nvidia-tegra_6.8.0-1004.4_arm64.deb wget https://us.ports.ubuntu.com/ubuntu-ports/pool/main/l/linux-nvidia-tegra-modules-signed/linux-nvidia-tegra-tegra-igpu-jetson-devel-defaults_6.8.0-1004.4_all.deb ``` List ```bash linux-buildinfo-6.8.0-1004-nvidia-tegra_6.8.0-1004.4_arm64.deb linux-headers-6.8.0-1004-nvidia-tegra_6.8.0-1004.4_arm64.deb linux-image-6.8.0-1004-nvidia-tegra_6.8.0-1004.4_arm64.deb linux-modules-6.8.0-1004-nvidia-tegra_6.8.0-1004.4_arm64.deb linux-modules-extra-6.8.0-1004-nvidia-tegra_6.8.0-1004.4_arm64.deb linux-nvidia-tegra-headers-6.8.0-1004_6.8.0-1004.4_all.deb linux-nvidia-tegra-tools-6.8.0-1004_6.8.0-1004.4_arm64.deb linux-tools-6.8.0-1004-nvidia-tegra_6.8.0-1004.4_arm64.deb linux-modules-tegra-oot-jetson-devel-6.8.0-1004-nvidia-tegra_6.8.0-1004.4_arm64.deb linux-modules-tegra-igpu-jetson-devel-nvidia-tegra_6.8.0-1004.4_arm64.deb linux-nvidia-tegra-tegra-igpu-jetson-devel-defaults_6.8.0-1004.4_all.deb ``` # Decompress Image ```bash sudo zcat /boot/vmlinuz-6.8.0-1004-nvidia-tegra | sudo tee /boot/Image-6.8.0-1004-nvidia-tegra > /dev/null ls -lh /boot/Image-6.8.0-1004-nvidia-tegra ``` # Change boot menu ```bash sudo cp /boot/extlinux/extlinux.conf /boot/extlinux/extlinux.conf.bak sudo nano /boot/extlinux/extlinux.conf ``` ``` TIMEOUT 30 DEFAULT newkernel MENU TITLE L4T boot options LABEL newkernel MENU LABEL Ubuntu 24.04 (Kernel 6.8.0-1004-tegra) LINUX /boot/Image-6.8.0-1004-nvidia-tegra INITRD /boot/initrd.img-6.8.0-1004-nvidia-tegra APPEND ${cbootargs} root=/dev/nvme0n1p1 rw rootwait rootfstype=ext4 mminit_loglevel=4 console=ttyTCU0,115200 console=ttyAMA0,115200 firmware_class.path=/etc/firmware fbcon=map:0 nospectre_bhb video=efifb:off console=tty0 LABEL primary MENU LABEL Ubuntu 24.04 (Kernel 5.15.148-tegra) LINUX /boot/Image INITRD /boot/initrd APPEND ${cbootargs} root=/dev/nvme0n1p1 rw rootwait rootfstype=ext4 mminit_loglevel=4 console=ttyTCU0,115200 console=ttyAMA0,115200 firmware_class.path=/etc/firmware fbcon=map:0 nospectre_bhb video=efifb:off console=tty0 # When testing a custom kernel, it is recommended that you create a backup of # the original kernel and add a new entry to this file so that the device can # fallback to the original kernel. To do this: # # 1, Make a backup of the original kernel # sudo cp /boot/Image /boot/Image.backup # # 2, Copy your custom kernel into /boot/Image # # 3, Uncomment below menu setting lines for the original kernel # # 4, Reboot # LABEL backup # MENU LABEL backup kernel # LINUX /boot/Image.backup # INITRD /boot/initrd # APPEND ${cbootargs} ```