Re: Compilare Linux (ERA: Re: cortese domanda su apt-listbugs)
> On 24/11/19 16:42, Alessandro wrote:
>> Il 23/11/19 19:50, Davide Prina ha scritto:
>
>>> volendo potresti migliorare le prestazioni del PC ricompilandoti
>>> Linux, se ti interessa si spiego come faccio io.
>
>> magari!! mi piacerebbe entrare un po' più in profondità e ti confermo
>> che l'uso del laptop è esclusivamente desktop :)
>
Ciao Lista,
Provo a seguire queste indicazioni, per compilare il mio sistema Amd64
con Debian Buster.
> # apt update
> # apt -u upgrade; apt -u dist-upgrade
> # apt install linux-source
> # apt install build-essential fakeroot rsync git
Qui ho installato tutti i pacchetti richiesti, senza problemi.
> # apt build-dep linux
Qui mi chiede di installare altri 137 pacchetti mancanti. Fatto.
Installati senza problemi.
>
> 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
Ok, ho creato la dir nella mia home.
>
> Nota: se si sta compilando una sottoversione diversa (es: si era
> compilata la 5.2.17-2 ora si vuole ricompilare la 5.2.17-3), allora il
> nome di directory sarebbe lo stesso, quindi io sposto la directory con i
> sorgenti di linux: mv linux-source-5.2 linux-source-5.2_old
>
> $ tar Jxvf /usr/src/linux-source-$(uname -r)
Ora arrivano i problemi e gli errori.
Se eseguo questo mi dà :
tar (child): /usr/src/linux-source-4.19.0-6-amd64: funzione "open" non
riuscita: File o directory non esistente
tar (child): Error is not recoverable: exiting now
tar: Child returned status 2
tar: Error is not recoverable: exiting now
> $ ln -sf ~/src/linux-source-$(uname -r | sed
> "s/\([0-9]*\.[0-9]*\)\..*/\1/") ~/src/linux
> $ cd linux
Questi non li ho ancora eseguiti, causa errore precedente.
>
> Copiare la configurazione del kernel in esecuzione uguale versione dia
> quello che si compila
> $ cp /boot/config-$(uname -r) .config
Qui errore non ne dà, ma pare che non ci sia un file .config
Nella dir /boot ho trovato il file: config-4.19.0-6-amd64 e quindi lo ho
copiato io nella mia dir /home/src.
>
> Disabilitazione delle informazioni di debug (se servono, allora si può
> lasciare abilitato)
> $ scripts/config --disable DEBUG_INFO
>
> Disabilitazione della firma di Linux (come discritto nel punto 1 qui
sotto)
> $ scripts/config --disable MODULE_SIG
>
> Se invece si copia una versione del config di Linux precedente, allora
> 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
Se provo a dare questo comando da /home/src mi dà questo errore:
make: *** Nessuna regola per generare l'obiettivo "nconfig". Arresto.
>
> 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
Il mio processore è un Amd64
> and features" e la latenza in "-> Processor type and features" per
> velocizzare il proprio sistema.
Come si fa per sapere quale latenza impostare ?
>
> Impostare il parametro j al numero di processori ($ cat /proc/cpuinfo)+1
Di processore credo che ne ho uno solo, ma ha la frequenza variabile,
tra 1 G Hertz e 2,2 G Hertz.
> 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
Qui di immagine se ne può installare una sola per volta?
Cioè quando riuscirò a compilare tutto, se installo la mia immagine
personalizzata mi chiede di rimuovere l'altra (o le altre) immagine
installata nel sistema ?
Grazie
Ciao
>
> Ciao
> Davide
Reply to: