From bbcda8be77fba7f4d24d0bc0707eae467a216a65 Mon Sep 17 00:00:00 2001 From: Fabio Date: Thu, 17 Sep 2026 00:59:36 +0200 Subject: [PATCH] 3 commit --- README.md | 286 +++++++++++++++++++++++++++--------------------------- 1 file changed, 143 insertions(+), 143 deletions(-) diff --git a/README.md b/README.md index 49d5184..dde5ea4 100644 --- a/README.md +++ b/README.md @@ -4,22 +4,22 @@ Questa procedura ripristina la configurazione GPU funzionante utilizzando esclusivamente il backup: -` +``` /root/mali-offline-backup/ -` +``` oppure una copia dello stesso backup proveniente da USB, disco esterno o altro computer. La configurazione di riferimento è: -` +``` Kernel Mali g21p0-01eac0 Firmware g21p0 Userspace Mali g24p0-00eac0 OpenCL 3.0 Vulkan 1.3.276 GPU Mali-G610 -` +``` La procedura non modifica: @@ -40,7 +40,7 @@ Non utilizzare un firmware g24 al posto del firmware g21. Il backup deve avere questa struttura: -` +``` mali-offline-backup/ ├── firmware/ │ └── mali_csffw.bin @@ -71,7 +71,7 @@ mali-offline-backup/ ├── vulkan/ │ └── mali.json └── checksums.sha256 -` +``` --- @@ -79,52 +79,52 @@ mali-offline-backup/ Se il backup è già presente: -` +``` /root/mali-offline-backup -` +``` impostare: -` +``` BACKUP=/root/mali-offline-backup -` +``` Se il backup è stato copiato da USB in un'altra posizione, modificare BACKUP di conseguenza. Esempio: -` +``` BACKUP=/media/orangepi/USB/mali-offline-backup -` +``` Controllare: -` -sudo find `$BACKUP` -type f -printf '%P\n' | sort -` +``` +sudo find ```$BACKUP``` -type f -printf '%P\n' | sort +``` --- # 3. Verificare il backup prima di installarlo -` +``` sudo bash -c ' cd "$BACKUP" && sha256sum -c checksums.sha256 ' -` +``` Tutti i file devono risultare: -` +``` OK -` +``` Se anche un solo file risulta FAILED: -` +``` STOP -` +``` Non procedere con il ripristino. @@ -134,21 +134,21 @@ Non procedere con il ripristino. Prima di modificare qualsiasi file: -` +``` uname -a -` +``` Controllare il DDK Mali: -` +``` dmesg | grep -E 'mali fb000000.gpu: (Kernel DDK|GPU identified|Probed as mali0)' -` +``` Il kernel previsto deve utilizzare: -` +``` g21p0-01eac0 -` +``` # Non procedere se il kernel utilizza un DDK incompatibile senza prima verificare la compatibilità del firmware. @@ -158,21 +158,21 @@ g21p0-01eac0 Controllare: -` +``` systemctl is-enabled set-mali-firmware.service -` +``` Deve risultare: -` +``` disabled -` +``` Se necessario: -` +``` sudo systemctl disable set-mali-firmware.service -` +``` Non avviare il servizio durante il ripristino. @@ -182,13 +182,13 @@ Non avviare il servizio durante il ripristino. Prima di sovrascrivere qualsiasi file: -` +``` sudo mkdir -p /root/mali-before-offline-restore -` +``` Salvare gli elementi principali: -` +``` sudo cp -a /etc/OpenCL/vendors \ /root/mali-before-offline-restore/ @@ -200,7 +200,7 @@ sudo cp -a /usr/share/vulkan/icd.d/mali.json \ sudo cp -L /lib/firmware/mali_csffw.bin \ /root/mali-before-offline-restore/mali_csffw.bin 2>/dev/null || true -` +``` --- @@ -208,47 +208,47 @@ sudo cp -L /lib/firmware/mali_csffw.bin \ Creare la directory: -` +``` sudo mkdir -p /lib/firmware/mali_csffw_g21p0 -` +``` Copiare il firmware: -` +``` sudo cp -a "$BACKUP/firmware/mali_csffw.bin" \ /lib/firmware/mali_csffw_g21p0/mali_csffw.bin -` +``` Creare il link attivo: -` +``` sudo ln -sfn /lib/firmware/mali_csffw_g21p0/mali_csffw.bin \ /lib/firmware/mali_csffw.bin -` +``` Verificare: -` +``` readlink -f /lib/firmware/mali_csffw.bin -` +``` Deve puntare a: -` +``` /usr/lib/firmware/mali_csffw_g21p0/mali_csffw.bin -` +``` Controllare SHA-256: -` +``` sha256sum /lib/firmware/mali_csffw.bin -` +``` Deve risultare: -` +``` 8e7c821a55ca1c345cc79f61243616dd25fc35b81f090946f302886d67712df5 -` +``` --- @@ -256,26 +256,26 @@ Deve risultare: Creare la directory: -` +``` sudo mkdir -p /usr/lib/aarch64-linux-gnu/mali -` +``` Copiare le librerie Mali: -` +``` sudo cp -a "$BACKUP/libs/mali/." \ /usr/lib/aarch64-linux-gnu/mali/ -` +``` Copiare le librerie principali: -` +``` sudo cp -a \ "$BACKUP/libs/libmali-hook-injector.a" \ "$BACKUP/libs/libmali-hook.so.1.9.0" \ "$BACKUP/libs/libmali.so.1.9.0" \ /usr/lib/aarch64-linux-gnu/ -` +``` --- @@ -283,69 +283,69 @@ sudo cp -a \ Copiare i symlink: -` +``` sudo cp -a "$BACKUP/symlinks/." \ /usr/lib/aarch64-linux-gnu/ -` +``` Controllare: -` +``` ls -l \ /usr/lib/aarch64-linux-gnu/libmali.so \ /usr/lib/aarch64-linux-gnu/libmali.so.1 \ /usr/lib/aarch64-linux-gnu/libmali-valhall-g610-g24p0-x11-wayland-gbm.so \ /usr/lib/aarch64-linux-gnu/libmali-hook.so \ /usr/lib/aarch64-linux-gnu/libmali-hook.so.1 -` +``` I collegamenti devono essere equivalenti a: -` +``` libmali.so.1 -> libmali.so.1.9.0 libmali-valhall-g610-g24p0-x11-wayland-gbm.so -> libmali.so.1 libmali-hook.so -> libmali-hook.so.1 libmali-hook.so.1 -> libmali-hook.so.1.9.0 libmali.so -> libmali.so.1 -` +``` --- # 10. Ripristinare la configurazione del linker -` +``` sudo mkdir -p /etc/ld.so.conf.d sudo cp -a \ "$BACKUP/linker/00-aarch64-mali.conf" \ /etc/ld.so.conf.d/00-aarch64-mali.conf -` +``` Controllare: -` +``` cat /etc/ld.so.conf.d/00-aarch64-mali.conf -` +``` Deve contenere: -` +``` /usr/lib/aarch64-linux-gnu/mali -` +``` --- # 11. Aggiornare il linker -` +``` sudo ldconfig -` +``` Se compare il warning: -` +``` ldconfig: /lib/librknnrt.so is not a symbolic link -` +``` il warning è indipendente da Mali. @@ -355,48 +355,48 @@ il warning è indipendente da Mali. Creare la directory: -` +``` sudo mkdir -p /etc/OpenCL/vendors -` +``` Copiare l'ICD: -` +``` sudo cp -a \ "$BACKUP/opencl/mali.icd" \ /etc/OpenCL/vendors/mali.icd -` +``` Controllare: -` +``` cat /etc/OpenCL/vendors/mali.icd -` +``` Deve contenere: -` +``` /usr/lib/aarch64-linux-gnu/mali/libMaliOpenCL.so.1 -` +``` # Importante Se esiste un vecchio ICD g13: -` +``` /etc/OpenCL/vendors/mali-arm64.icd -` +``` non deve essere attivo contemporaneamente, se si vuole riprodurre la configurazione di riferimento. Spostarlo in un backup: -` +``` if [ -f /etc/OpenCL/vendors/mali-arm64.icd ]; then sudo mv /etc/OpenCL/vendors/mali-arm64.icd \ /root/mali-before-offline-restore/mali-arm64.icd.g13 fi -` +``` --- @@ -404,73 +404,73 @@ fi Creare la directory: -` +``` sudo mkdir -p /usr/share/vulkan/icd.d -` +``` Copiare l'ICD: -` +``` sudo cp -a \ "$BACKUP/vulkan/mali.json" \ /usr/share/vulkan/icd.d/mali.json -` +``` Controllare: -` +``` cat /usr/share/vulkan/icd.d/mali.json -` +``` Deve contenere un library_path equivalente a: -` +``` libMaliVulkan.so.1 -` +``` --- # 14. Ripristinare la configurazione Mali -` +``` sudo mkdir -p /etc/profile.d sudo cp -a \ "$BACKUP/system/mali-priority.sh" \ /etc/profile.d/mali-priority.sh -` +``` Controllare: -` +``` cat /etc/profile.d/mali-priority.sh -` +``` --- # 15. Aggiornare nuovamente il linker -` +``` sudo ldconfig -` +``` --- # 16. Verifica OpenCL prima del reboot -` +``` clinfo | grep -E \ 'arm_release_ver|Number of platforms|Platform Version|Device Name' -` +``` Configurazione attesa: -` +``` arm_release_ver: g24p0-00eac0, rk_so_ver: 10 Number of platforms 1 Platform Version OpenCL 3.0 v1.g24p0-00eac0... Device Name Mali-G610 r0p0 -` +``` --- @@ -478,19 +478,19 @@ Device Name Mali-G610 r0p0 Utilizzare esplicitamente l'ICD Mali: -` +``` VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/mali.json \ vulkaninfo --summary -` +``` Devono comparire: -` +``` Mali-G610 DRIVER_ID_ARM_PROPRIETARY apiVersion = 1.3.276 driverVersion = 24.0.0 -` +``` # Nota @@ -500,19 +500,19 @@ Un semplice vulkaninfo --summary può fallire con XCB se non è disponibile un s # 18. Verifica del firmware prima del reboot -` +``` readlink -f /lib/firmware/mali_csffw.bin sha256sum /lib/firmware/mali_csffw.bin systemctl is-enabled set-mali-firmware.service -` +``` Devono risultare: -` +``` /usr/lib/firmware/mali_csffw_g21p0/mali_csffw.bin 8e7c821a55ca1c345cc79f61243616dd25fc35b81f090946f302886d67712df5 disabled -` +``` # Se il firmware non corrisponde allo SHA-256 previsto, NON riavviare. @@ -522,9 +522,9 @@ disabled Se tutti i controlli precedenti sono corretti: -` +``` sudo reboot -` +``` --- @@ -532,55 +532,55 @@ sudo reboot Controllare il kernel Mali: -` +``` dmesg | grep -E \ 'mali fb000000.gpu: (Kernel DDK|GPU identified|Probed as mali0|Loading Mali firmware|Mali firmware git_sha)' -` +``` Devono essere presenti: -` +``` Kernel DDK version g21p0-01eac0 GPU identified as 0x7 arch 10.8.6 r0p0 status 0 Probed as mali0 Mali firmware git_sha: 221d2b3e5f4cf47df6227ccb24c82c4e4baa986e -` +``` --- # 21. Verifica OpenCL dopo il reboot -` +``` clinfo | grep -E \ 'arm_release_ver|Number of platforms|Platform Version|Device Name' -` +``` Atteso: -` +``` arm_release_ver: g24p0-00eac0, rk_so_ver: 10 Number of platforms 1 Platform Version OpenCL 3.0 v1.g24p0-00eac0... Device Name Mali-G610 r0p0 -` +``` --- # 22. Verifica Vulkan dopo il reboot -` +``` VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/mali.json \ vulkaninfo --summary -` +``` Atteso: -` +``` Mali-G610 DRIVER_ID_ARM_PROPRIETARY apiVersion = 1.3.276 driverVersion = 24.0.0 -` +``` --- @@ -590,12 +590,12 @@ Il backup originale non deve essere modificato durante il ripristino. Se il backup si trova ancora nella posizione originale: -` +``` sudo bash -c ' cd "$BACKUP" && sha256sum -c checksums.sha256 ' -` +``` Tutti i file devono risultare OK. @@ -607,15 +607,15 @@ Tutti i file devono risultare OK. Controllare: -` +``` ls -l /etc/OpenCL/vendors/ -` +``` Se è presente il vecchio ICD g13: -` +``` /etc/OpenCL/vendors/mali-arm64.icd -` +``` spostarlo fuori dalla directory attiva. @@ -623,10 +623,10 @@ spostarlo fuori dalla directory attiva. Utilizzare: -` +``` VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/mali.json \ vulkaninfo --summary -` +``` # Il firmware ha SHA-256 diverso @@ -634,13 +634,13 @@ Non riavviare. Ripristinare: -` +``` sudo cp -a "$BACKUP/firmware/mali_csffw.bin" \ /lib/firmware/mali_csffw_g21p0/mali_csffw.bin sudo ln -sfn /lib/firmware/mali_csffw_g21p0/mali_csffw.bin \ /lib/firmware/mali_csffw.bin -` +``` Poi verificare nuovamente lo SHA-256. @@ -648,11 +648,11 @@ Poi verificare nuovamente lo SHA-256. Controllare: -` +``` cat /etc/OpenCL/vendors/mali.icd ls -l /usr/lib/aarch64-linux-gnu/mali/libMaliOpenCL.so.1 ldconfig -p | grep -i mali -` +``` # Non utilizzare apt autoremove @@ -664,19 +664,19 @@ Il ripristino è offline e non richiede la rimozione automatica dei pacchetti. Prima del ripristino è stata creata: -` +``` /root/mali-before-offline-restore/ -` +``` Se qualcosa non funziona, non modificare kernel, DTB o U-Boot. Prima fermarsi e verificare: -` +``` dmesg | grep -i mali clinfo VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/mali.json vulkaninfo --summary -` +``` Il backup originale rimane disponibile per un ulteriore tentativo. @@ -686,7 +686,7 @@ Il backup originale rimane disponibile per un ulteriore tentativo. La configurazione finale deve essere: -` +``` Kernel Mali g21p0-01eac0 Firmware g21p0 Userspace Mali g24p0-00eac0 @@ -694,6 +694,6 @@ GPU Mali-G610 r0p0 OpenCL 3.0 Vulkan 1.3.276 OpenCL platforms 1 -` +``` Il ripristino utilizza esclusivamente i file contenuti nel backup e non richiede il download del pacchetto Mali g24 originale.