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