User Tools

Site Tools


doc:appunti:hardware:raspberrypi_kernel_upgrade_downgrade

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
doc:appunti:hardware:raspberrypi_kernel_upgrade_downgrade [2021/04/01 17:26] – [Come ripristinare la versione ufficiale] niccolodoc:appunti:hardware:raspberrypi_kernel_upgrade_downgrade [2022/04/26 07:57] – [Upgrade e downgrade del kernel del Raspberry Pi] niccolo
Line 2: Line 2:
  
 La distribuzione ufficiale per il Raspberry Pi è **[[https://www.raspberrypi.org/software/|Raspberry Pi OS]]**, una distribuzione GNU/Linux direttamente derivata da **[[https://www.debian.org/|Debian]]**. A differenza di Debian però non esistono i pacchetti **%%linux-image-*%%** con i quali è possibile effettuare l'upgrade o il downgrade del kernel. La distribuzione ufficiale per il Raspberry Pi è **[[https://www.raspberrypi.org/software/|Raspberry Pi OS]]**, una distribuzione GNU/Linux direttamente derivata da **[[https://www.debian.org/|Debian]]**. A differenza di Debian però non esistono i pacchetti **%%linux-image-*%%** con i quali è possibile effettuare l'upgrade o il downgrade del kernel.
 +
 +===== rpi-update =====
  
 Per il Raspberry esiste il pacchetto **raspberrypi-kernel**, ma quel pacchetto deve andare di pari passo con i pacchetti **raspberrypi-bootloader**, **libraspberrypi-{bin|dev|doc}** e **libraspberrypi0**, che contengono le librerie per la gestione della GPU e varie utility. Per il Raspberry esiste il pacchetto **raspberrypi-kernel**, ma quel pacchetto deve andare di pari passo con i pacchetti **raspberrypi-bootloader**, **libraspberrypi-{bin|dev|doc}** e **libraspberrypi0**, che contengono le librerie per la gestione della GPU e varie utility.
  
-Per gestire in maniera più comoda e precisa le versioni del kernel, del firmware e delle librerie correlate, è stato sviluppato il progamma **[[https://www.raspberrypi.org/documentation/raspbian/applications/rpi-update.md|rpi-update]]**.+Per gestire in maniera più comoda e precisa le versioni del kernel, del firmware e delle librerie correlate, è stato sviluppato il progamma **[[https://www.raspberrypi.org/documentation/raspbian/applications/rpi-update.md|rpi-update]]** (si installa con l'omonimo pacchetto).
  
-Eseguito senza argomenti, effettua l'aggiornamento all'**ultima versione pre-release**. Per effettuare un downgrade è necessario individuare il commit che interessa nella pagina **[[https://github.com/Hexxeh/rpi-firmware|GitHub rpi-firmware]]**. Ad esempio si possono individuare i seguenti //kernel bump//:+Eseguito senza argomenti, effettua l'aggiornamento all'**ultima versione pre-release**. Per effettuare un downgrade è necessario individuare il commit che interessa nella pagina **[[https://github.com/raspberrypi/rpi-firmware|GitHub rpi-firmware]]** (fork del precedente repo di **[[https://github.com/Hexxeh/rpi-firmware|Hexxeh]]**). Cliccando sul link **commits** si possono individuare i seguenti //kernel bump//:
  
 <file> <file>
Line 51: Line 53:
 Se si vuole evitare di perdere queste modifiche nei successivi aggiornamenti, è opportuno **mettere on-hold** il pacchetto **raspberrypi-kernel** e quelli strettamente correlati (vedi avanti). Se si vuole evitare di perdere queste modifiche nei successivi aggiornamenti, è opportuno **mettere on-hold** il pacchetto **raspberrypi-kernel** e quelli strettamente correlati (vedi avanti).
  
-===== Come trovare le vecchie versioni dei pacchetti =====+===== Download pacchetti Debian invece di rpi-update ===== 
 + 
 +A mio avviso è preferibile **installare i pacchetti Debian che contengono la versione del kernel desiderato**, invece di usare ''rpi-udate'' che rompere l'integrità del gestore pacchetti deb. Come fare? 
 + 
 +Per individuare quali sono le //source// dei pacchetti installati sul Raspberry si ispezionano i file **/etc/apt/sources.list** e **/etc/apt/sources.list.d/raspi.list**, scoprendo che vengono usati due repository: 
 + 
 +<file> 
 +deb http://raspbian.raspberrypi.org/raspbian/  buster   main contrib non-free rpi 
 +deb http://archive.raspberrypi.org/debian/     buster   main 
 +</file> 
 + 
 +Ispezionando il contenuto dalle liste in **/var/lib/apt/lists/** è possibile scoprire che il pacchetto **raspberrypi-kernel** proviene dal repository **%%archive.raspberrypi.org%%**. Sempre in quella lista si vede che l'URL base in cui si trova il pacchetto è **[[http://archive.raspberrypi.org/debian/pool/main/r/raspberrypi-firmware/]]**. Con un semplice script shell è possibile scaricare tutti i pacchetti necessari relativi ad una determinata versione: 
 + 
 +<code bash> 
 +#!/bin/sh -e 
 +BASEURL='http://archive.raspberrypi.org/debian/pool/main/r/raspberrypi-firmware' 
 +PACKAGES='libraspberrypi0 libraspberrypi-bin libraspberrypi-dev libraspberrypi-doc raspberrypi-bootloader raspberrypi-kernel' 
 +VER='1.20200512-2' 
 +ARCH='armhf' 
 +for P in $PACKAGES; do 
 +    wget -c "${BASEURL}/${P}_${VER}_${ARCH}.deb" 
 +done 
 +</code> 
 + 
 +L'architettura dei pacchetti installati si vede con **%%dpkg --list%%**, e si scopre che è **armhf**. Non mi è chiaro perché invece il comando ''arch'' e il comando ''uname -m'' restituiscono il valore **armv7l**. 
 + 
 +Per avitare l'aggiornamento dei pacchetti è necessario metterli **on-hold**, ad esempio con il comando **apt-mark**: 
 + 
 +<code> 
 +apt-mark hold raspberrypi-kernel 
 +apt-mark hold raspberrypi-bootloader 
 +apt-mark hold ... 
 +</code>
  
-Potrebbe essere preferibile installare i pacchetti che contengono la versione del kernel preferita, senza usare ''rpi-udate'' che rompere l'integrità del gestore pacchetti debCome fare? FIXME+Per verificare che i pacchetti siano marcati opportunamente si può utilizzare **%%dpkg --get-selections%%**.
  
 ===== Come ripristinare la versione ufficiale ===== ===== Come ripristinare la versione ufficiale =====
doc/appunti/hardware/raspberrypi_kernel_upgrade_downgrade.txt · Last modified: 2022/04/26 12:36 by niccolo