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
doc:appunti:hardware:raspberrypi_kernel_upgrade_downgrade [2021/04/02 08:37] – [Come trovare le vecchie versioni dei pacchetti] niccolodoc:appunti:hardware:raspberrypi_kernel_upgrade_downgrade [2022/04/26 12:36] (current) – [Download pacchetti Debian invece di rpi-update] 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.
Line 7: Line 9:
 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). 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 kernel =====+===== Download pacchetti Debian invece di rpi-update =====
  
-Potrebbe essere preferibile installare i pacchetti che contengono la versione del kernel preferitasenza usare ''rpi-udate'' che rompere l'integrità del gestore pacchetti deb. Come fare?+A mio avviso è preferibile **installare i pacchetti Debian che contengono la versione del kernel desiderato**invece di usare ''rpi-udate'' che rompe l'integrità della gestione dei pacchetti deb. Come fare?
  
-Anzitutto si verifica quali sono le //source// dei pacchetti installati sul Raspberry; dai file **/etc/apt/sources.list** e **/etc/apt/sources.list.d/raspi.list** si vede che vengono usati due repository:+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> <file>
Line 69: Line 71:
 PACKAGES='libraspberrypi0 libraspberrypi-bin libraspberrypi-dev libraspberrypi-doc raspberrypi-bootloader raspberrypi-kernel' PACKAGES='libraspberrypi0 libraspberrypi-bin libraspberrypi-dev libraspberrypi-doc raspberrypi-bootloader raspberrypi-kernel'
 VER='1.20200512-2' VER='1.20200512-2'
 +ARCH='armhf'
 for P in $PACKAGES; do for P in $PACKAGES; do
-    wget -c "${BASEURL}/${P}_${VER}_armhf.deb"+    wget -c "${BASEURL}/${P}_${VER}_${ARCH}.deb"
 done done
 </code> </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>
 +
 +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.1617345445.txt.gz · Last modified: 2021/04/02 08:37 by niccolo