This commit is contained in:
Fabio 2026-09-17 00:59:36 +02:00
parent 09b6615e28
commit bbcda8be77

286
README.md
View file

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