[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: configurazione e compilazione kernel debian way



On 03/09/2018 07:04, Aleesai wrote:

mi si è ripresentata la necessità di dover ricompilare
una specifica release del kernel, partendo da sorgenti vanilla.

io compilo Linux presente Debian per velocizzare tutto il sistema. Ho una macchina del 2008 e usando Linux di default inizio a vedere la lentezza del sistema, mentre compilando Linux con qualche piccola modifica è più che usabile per quello che faccio io.

Nota: se compili Linux <= 4.17 (ultima presente in Debian testing) avrai una marea di warning, molti sembrano preoccupanti, però questi sono dovuti alla nuova versione di gcc che introduce controlli più puntuali. Se non ho capito male dalle versioni successive non dovrebbero essere più presenti perché corretti nei sorgenti.

Se parti dal vanilla devi scaricartelo, controllare la firma, ... poi il resto penso che sia uguale a quello che faccio io (tranne l'installazione di linux-source e la sua scompressione) e che descrivo qui sotto:

# apt update
# apt -u upgrade; apt -u dist-upgrade
# apt install linux-source
# apt install build-essential fakeroot rsync git
# apt build-dep linux

Nota: questi passi qui sopra è meglio eseguirli ogni volta che si compila una nuova versione di Linux

Se è stata installata una nuova versione del pacchetto linux-image-XYZ, allora bisogna riavviare la macchina (questo perché non funzionerebbero i vari uname -r e simili e quindi, se non si riavvia, dovrebbero essere compilati a mano)

Linux non deve essere più compilato in /usr/src o creato il link simbolico /usr/src/linux. È meglio crearsi una directory src nella propria home e compilare da li.
$ mkdir ~/src
$ cd ~/src

$ tar Jxvf /usr/src/linux-source-$(uname -r)
$ ln -sf ~/src/linux-source-$(uname -r | sed "s/\([0-9]*\.[0-9]*\)\..*/\1/") ~/src/linux
$ cd linux

Copiare la configurazione del kernel in esecuzione uguale versione dia quello che si compila
$ cp /boot/config-$(uname -r) .config

Disabilitazione delle informazioni di debug (se servono, allora si può lasciare abilitato)
$ scripts/config --disable DEBUG_INFO

Se invece si copia una versione del config di Linux precedente, alloca bisogna eseguire
$ make oldconfig
Per poter rispondere interattivamente su come impostare tutte le modifiche della configurazione del nuovo Linux In alternativa è possibile usare olddefconf, per impostare al default tutte le nuove configurazioni, o ...

Se si vuole modificare la configurazione di Linux
$ make nconfig

ATTENZIONE: in ogni caso bisogna entrare e
1) modificare CONFIG_SYSTEM_TRUSTED_KEYS che indica di firmare il pacchetto con la chiave di un DD
in alternativa si può disabilitare il modulo signing:
$ scripts/config --disable MODULE_SIG
2) mettere una stringa che identifichi la propria compilazione in LOCALVERSION

Consigliato impostare per lo meno la propria CPU in "-> Processor type and features" e la latenza in "-> Processor type and features" per velocizzare il proprio sistema.

Impostare il parametro j al numero di processori ($ cat /proc/cpuinfo)+1 mentre il time permette di sapere quanto tempo ha impiegato
$ time make -j 5 deb-pkg

Se si vuole/deve ricompilare conviene dare prima un clean di tutto prima di ricompilare
$ make clean

si otterranno i .deb sotto ~/src.
Io installo, con dpkg -i <elenco pacchetti>:
* linux-image
* linux-header
* linux-libc-dev

il mio dubbio nasce dal fatto che ho trovato info al riguardo
"discordanti"

purtroppo in Debian il punto debole è la documentazione che non sempre è aggiornata/completa e se è presente su più fonti/parti diversi potrebbe essere che una è più aggiornata di un'altra e quindi potrebbero sembrare un po' in contrasto.

[1] https://www.debian.org/releases/stable/i386/ch08s06.html.it

[2]
https://kernel-team.pages.debian.net/kernel-handbook/ch-common-tasks.html#s-common-building

secondo me quella più affidabile è la seconda, poiché come vedi dall'indirizzo proviene dal "kernel-team.pages.debian.net"

Ciao
Davide

--
Dizionari: http://linguistico.sourceforge.net/wiki
What happened in 2013 couldn't have happened without free software
(He credited free software for his ability to help disclose the U.S. government's far-reaching surveillance projects).
Edward Snowden



Reply to: