This commit is contained in:
Fabio 2026-09-17 01:06:13 +02:00
parent 11249d715e
commit 380b81d317

216
README.md
View file

@ -24,40 +24,40 @@ Non eseguire apt upgrade, apt full-upgrade, aggiornamenti del kernel o modifiche
Controllare versione Debian: Controllare versione Debian:
` ```
cat /etc/debian_version cat /etc/debian_version
` ```
Controllare il kernel: Controllare il kernel:
` ```
uname -a uname -a
` ```
Controllare il driver Mali: Controllare il driver 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 funzionante utilizzato nella procedura deve riportare: Il kernel funzionante utilizzato nella procedura deve riportare:
` ```
Kernel DDK version g21p0-01eac0 Kernel DDK version g21p0-01eac0
` ```
Controllare che il firmware attivo sia quello g21: Controllare che il firmware attivo sia quello g21:
` ```
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
` ```
SHA-256 atteso: SHA-256 atteso:
` ```
8e7c821a55ca1c345cc79f61243616dd25fc35b81f090946f302886d67712df5 8e7c821a55ca1c345cc79f61243616dd25fc35b81f090946f302886d67712df5
` ```
--- ---
@ -65,15 +65,15 @@ SHA-256 atteso:
Il servizio set-mali-firmware.service non deve sostituire automaticamente il firmware g21. Il servizio set-mali-firmware.service non deve sostituire automaticamente il firmware g21.
` ```
systemctl is-enabled set-mali-firmware.service systemctl is-enabled set-mali-firmware.service
` ```
Risultato atteso: Risultato atteso:
` ```
disabled disabled
` ```
Se è enabled, fermarsi e verificare la configurazione prima di procedere. Se è enabled, fermarsi e verificare la configurazione prima di procedere.
@ -83,29 +83,29 @@ Se è enabled, fermarsi e verificare la configurazione prima di procedere.
Il firmware deve essere disponibile in: Il firmware deve essere disponibile in:
` ```
/lib/firmware/mali_csffw_g21p0/mali_csffw.bin /lib/firmware/mali_csffw_g21p0/mali_csffw.bin
` ```
Creare il link al firmware g21: Creare il link al firmware g21:
` ```
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
sha256sum /lib/firmware/mali_csffw.bin sha256sum /lib/firmware/mali_csffw.bin
` ```
Deve risultare il firmware g21 con SHA-256: Deve risultare il firmware g21 con SHA-256:
` ```
8e7c821a55ca1c345cc79f61243616dd25fc35b81f090946f302886d67712df5 8e7c821a55ca1c345cc79f61243616dd25fc35b81f090946f302886d67712df5
` ```
--- ---
@ -113,31 +113,31 @@ Deve risultare il firmware g21 con SHA-256:
Creare una directory di backup: Creare una directory di backup:
` ```
sudo mkdir -p /root/mali-backup-g24-restore sudo mkdir -p /root/mali-backup-g24-restore
` ```
Salvare l'ICD OpenCL eventualmente esistente: Salvare l'ICD OpenCL eventualmente esistente:
` ```
if [ -f /etc/OpenCL/vendors/mali-arm64.icd ]; then if [ -f /etc/OpenCL/vendors/mali-arm64.icd ]; then
sudo cp -a /etc/OpenCL/vendors/mali-arm64.icd \ sudo cp -a /etc/OpenCL/vendors/mali-arm64.icd \
/root/mali-backup-g24-restore/mali-arm64.icd.g13 /root/mali-backup-g24-restore/mali-arm64.icd.g13
fi fi
` ```
Salvare il firmware g21 come file reale: Salvare il firmware g21 come file reale:
` ```
sudo cp -L /lib/firmware/mali_csffw.bin \ sudo cp -L /lib/firmware/mali_csffw.bin \
/root/mali-backup-g24-restore/mali_csffw-g21.bin /root/mali-backup-g24-restore/mali_csffw-g21.bin
` ```
Verificare il backup: Verificare il backup:
` ```
sha256sum /root/mali-backup-g24-restore/mali_csffw-g21.bin sha256sum /root/mali-backup-g24-restore/mali_csffw-g21.bin
` ```
--- ---
@ -145,21 +145,21 @@ sha256sum /root/mali-backup-g24-restore/mali_csffw-g21.bin
Il pacchetto utilizzato nella configurazione funzionante è: Il pacchetto utilizzato nella configurazione funzionante è:
` ```
libmali-g610-g24p0-x11-wayland-gbm.deb libmali-g610-g24p0-x11-wayland-gbm.deb
` ```
Esempio di percorso: Esempio di percorso:
` ```
/tmp/libmali-g610-g24p0-x11-wayland-gbm.deb /tmp/libmali-g610-g24p0-x11-wayland-gbm.deb
` ```
Installare: Installare:
` ```
sudo dpkg -i /tmp/libmali-g610-g24p0-x11-wayland-gbm.deb sudo dpkg -i /tmp/libmali-g610-g24p0-x11-wayland-gbm.deb
` ```
Il pacchetto installa, tra le altre cose: Il pacchetto installa, tra le altre cose:
@ -179,38 +179,38 @@ Il pacchetto può installare il proprio mali_csffw.bin. Non lasciarlo attivo: il
Dopo l'installazione del pacchetto: Dopo l'installazione del pacchetto:
` ```
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
sha256sum /lib/firmware/mali_csffw.bin sha256sum /lib/firmware/mali_csffw.bin
` ```
Deve essere: Deve essere:
` ```
/usr/lib/firmware/mali_csffw_g21p0/mali_csffw.bin /usr/lib/firmware/mali_csffw_g21p0/mali_csffw.bin
8e7c821a55ca1c345cc79f61243616dd25fc35b81f090946f302886d67712df5 8e7c821a55ca1c345cc79f61243616dd25fc35b81f090946f302886d67712df5
` ```
--- ---
## 7. Aggiornare la cache del linker ## 7. Aggiornare la cache del linker
` ```
sudo ldconfig sudo ldconfig
` ```
È possibile che venga mostrato il warning: È possibile che venga mostrato il warning:
` ```
ldconfig: /lib/librknnrt.so is not a symbolic link ldconfig: /lib/librknnrt.so is not a symbolic link
` ```
Questo warning è indipendente da Mali e non va corretto come parte di questa procedura. Questo warning è indipendente da Mali e non va corretto come parte di questa procedura.
@ -220,49 +220,49 @@ Questo warning è indipendente da Mali e non va corretto come parte di questa pr
Il pacchetto g24 deve fornire: Il pacchetto g24 deve fornire:
` ```
/usr/lib/aarch64-linux-gnu/mali/libMaliOpenCL.so.1 /usr/lib/aarch64-linux-gnu/mali/libMaliOpenCL.so.1
` ```
Controllare: Controllare:
` ```
ls -l /usr/lib/aarch64-linux-gnu/mali/libMaliOpenCL.so* ls -l /usr/lib/aarch64-linux-gnu/mali/libMaliOpenCL.so*
` ```
Creare l'ICD OpenCL g24: Creare l'ICD OpenCL g24:
` ```
sudo mkdir -p /etc/OpenCL/vendors sudo mkdir -p /etc/OpenCL/vendors
echo '/usr/lib/aarch64-linux-gnu/mali/libMaliOpenCL.so.1' | \ echo '/usr/lib/aarch64-linux-gnu/mali/libMaliOpenCL.so.1' | \
sudo tee /etc/OpenCL/vendors/mali.icd sudo tee /etc/OpenCL/vendors/mali.icd
` ```
Verificare: Verificare:
` ```
cat /etc/OpenCL/vendors/mali.icd cat /etc/OpenCL/vendors/mali.icd
` ```
Deve contenere esattamente: Deve contenere esattamente:
` ```
/usr/lib/aarch64-linux-gnu/mali/libMaliOpenCL.so.1 /usr/lib/aarch64-linux-gnu/mali/libMaliOpenCL.so.1
` ```
Se è presente il vecchio ICD g13: Se è presente il vecchio ICD g13:
` ```
/etc/OpenCL/vendors/mali-arm64.icd /etc/OpenCL/vendors/mali-arm64.icd
` ```
non cancellarlo. Spostarlo nel backup: non cancellarlo. Spostarlo nel backup:
` ```
sudo mv /etc/OpenCL/vendors/mali-arm64.icd \ sudo mv /etc/OpenCL/vendors/mali-arm64.icd \
/root/mali-backup-g24-restore/mali-arm64.icd.g13 /root/mali-backup-g24-restore/mali-arm64.icd.g13
` ```
In questo modo clinfo vedrà una sola piattaforma ARM proprietaria. In questo modo clinfo vedrà una sola piattaforma ARM proprietaria.
@ -272,13 +272,13 @@ In questo modo clinfo vedrà una sola piattaforma ARM proprietaria.
Verificare che esista: Verificare che esista:
` ```
ls -l /usr/share/vulkan/icd.d/mali.json ls -l /usr/share/vulkan/icd.d/mali.json
` ```
Il contenuto atteso è equivalente a: Il contenuto atteso è equivalente a:
` ```
{ {
"file_format_version" : "1.0.0", "file_format_version" : "1.0.0",
"ICD" : { "ICD" : {
@ -286,7 +286,7 @@ Il contenuto atteso è equivalente a:
"api_version" : "1.3.276" "api_version" : "1.3.276"
} }
} }
` ```
--- ---
@ -294,19 +294,19 @@ Il contenuto atteso è equivalente a:
Eseguire: Eseguire:
` ```
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'
` ```
Risultato atteso: Risultato 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
` ```
--- ---
@ -314,20 +314,20 @@ Device Name Mali-G610 r0p0
Per evitare problemi se la sessione grafica X11 non è disponibile: Per evitare problemi se la sessione grafica X11 non è disponibile:
` ```
VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/mali.json \ VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/mali.json \
vulkaninfo --summary vulkaninfo --summary
` ```
Risultato atteso: Risultato atteso:
` ```
driverVersion = 24.0.0 driverVersion = 24.0.0
deviceName = Mali-G610 deviceName = Mali-G610
driverID = DRIVER_ID_ARM_PROPRIETARY driverID = DRIVER_ID_ARM_PROPRIETARY
driverName = Mali-G610 driverName = Mali-G610
apiVersion = 1.3.276 apiVersion = 1.3.276
` ```
# Nota # Nota
@ -337,23 +337,23 @@ Un semplice vulkaninfo --summary può fallire con un errore XCB se non esiste un
## 12. Verifica del kernel prima del reboot ## 12. Verifica del kernel prima del reboot
` ```
dmesg | grep -E 'mali fb000000.gpu: (Kernel DDK|Loading Mali firmware|Mali firmware git_sha|GPU identified|Probed as mali0)' dmesg | grep -E 'mali fb000000.gpu: (Kernel DDK|Loading Mali firmware|Mali firmware git_sha|GPU identified|Probed as mali0)'
` ```
Devono essere presenti almeno: Devono essere presenti almeno:
` ```
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
` ```
Dopo che il firmware è stato utilizzato, deve comparire anche il git SHA g21: Dopo che il firmware è stato utilizzato, deve comparire anche il git SHA g21:
` ```
Mali firmware git_sha: 221d2b3e5f4cf47df6227ccb24c82c4e4baa986e Mali firmware git_sha: 221d2b3e5f4cf47df6227ccb24c82c4e4baa986e
` ```
--- ---
@ -361,23 +361,23 @@ Mali firmware git_sha: 221d2b3e5f4cf47df6227ccb24c82c4e4baa986e
Prima del reboot verificare: Prima del reboot verificare:
` ```
systemctl is-enabled set-mali-firmware.service systemctl is-enabled set-mali-firmware.service
readlink -f /lib/firmware/mali_csffw.bin readlink -f /lib/firmware/mali_csffw.bin
` ```
Devono risultare: Devono risultare:
` ```
disabled disabled
/usr/lib/firmware/mali_csffw_g21p0/mali_csffw.bin /usr/lib/firmware/mali_csffw_g21p0/mali_csffw.bin
` ```
A questo punto: A questo punto:
` ```
sudo reboot sudo reboot
` ```
--- ---
@ -385,62 +385,62 @@ sudo reboot
### Kernel e firmware ### Kernel e firmware
` ```
dmesg | grep -E 'mali fb000000.gpu: (Kernel DDK|Loading Mali firmware|Mali firmware git_sha|GPU identified|Probed as mali0)' dmesg | grep -E 'mali fb000000.gpu: (Kernel DDK|Loading Mali firmware|Mali firmware git_sha|GPU identified|Probed as mali0)'
` ```
Atteso: Atteso:
` ```
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
` ```
e, quando il firmware viene inizializzato: e, quando il firmware viene inizializzato:
` ```
Mali firmware git_sha: 221d2b3e5f4cf47df6227ccb24c82c4e4baa986e Mali firmware git_sha: 221d2b3e5f4cf47df6227ccb24c82c4e4baa986e
` ```
### Vulkan ### Vulkan
` ```
VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/mali.json \ VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/mali.json \
vulkaninfo --summary vulkaninfo --summary
` ```
### OpenCL ### OpenCL
` ```
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'
` ```
Devono essere presenti: Devono essere presenti:
` ```
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
` ```
--- ---
## 15. Verifica finale dei pacchetti ## 15. Verifica finale dei pacchetti
` ```
dpkg -l | grep -E 'libmali|mali-g610-firmware' dpkg -l | grep -E 'libmali|mali-g610-firmware'
` ```
Configurazione funzionante di riferimento: Configurazione funzionante di riferimento:
` ```
libmali-g610-x11 libmali-g610-x11
libmali-valhall-g610-g24p0-x11-wayland-gbm libmali-valhall-g610-g24p0-x11-wayland-gbm
mali-g610-firmware mali-g610-firmware
` ```
La presenza contemporanea del vecchio pacchetto libmali-g610-x11 non impedisce il funzionamento, purché il vecchio ICD OpenCL g13 non sia attivo. La presenza contemporanea del vecchio pacchetto libmali-g610-x11 non impedisce il funzionamento, purché il vecchio ICD OpenCL g13 non sia attivo.
@ -460,17 +460,17 @@ Se è necessario tornare al precedente userspace g13:
Ripristino firmware: Ripristino firmware:
` ```
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
` ```
Ripristino ICD g13: Ripristino ICD g13:
` ```
sudo mv /root/mali-backup-g24-restore/mali-arm64.icd.g13 \ sudo mv /root/mali-backup-g24-restore/mali-arm64.icd.g13 \
/etc/OpenCL/vendors/mali-arm64.icd /etc/OpenCL/vendors/mali-arm64.icd
` ```
# Nota # Nota
@ -482,7 +482,7 @@ Il rollback completo del userspace g13 dipende dal fatto che il relativo .deb si
La configurazione verificata è: La configurazione verificata è:
` ```
Kernel Mali g21p0-01eac0 Kernel Mali g21p0-01eac0
Firmware g21p0 Firmware g21p0
Userspace Mali g24p0-00eac0 Userspace Mali g24p0-00eac0
@ -491,6 +491,6 @@ Vulkan 1.3.276
OpenCL 3.0 OpenCL 3.0
GPU Mali-G610 r0p0 GPU Mali-G610 r0p0
OpenCL platforms 1 OpenCL platforms 1
` ```
Questa procedura non richiede modifiche a kernel, DTB o U-Boot. Questa procedura non richiede modifiche a kernel, DTB o U-Boot.