Compilazione kernel

Zar Marco

Utente Attivo
501
108
CPU
Intel i7 1165G7 - Intel I7 7700HQ
HDD
Sabrent Rocket 1TB NVMe - Samsung M2 960 EVO NVMe 500GB, SSD Samsung 860 evo 1 Tb
RAM
16GbDDR4 4266 Mhz - 24 Gb DDR4 2400 Mhz
GPU
Intel iris XE - Intel 620, Nvidia GTX 1050
OS
Arch Linux--Gentoo--Void--Fedora--Nixos--Windows
Ciao a tutti, nei miei trascorsi con gentoo sto piano piano prendendo mano nella compilazione del kernel. Noto che ha molte cose inserite di default. Ma se io volessi provare a snellire il kernel dei componenti non utili come dovrei approcciarmi?

Inviato da MI 9 tramite App ufficiale di Tom\'s Hardware Italia Forum
 
U

Utente 52152

Ospite
devi conoscere il tuo hardware e rimuovere tutto il resto che non ti serve.
[ ] non compilato
[M] compilato come modulo. verrà caricato solo se il sistema ne richiede il funzionamento.
[*] compilato staticamente e inserito nel initrd.

fatti bene due conti con filesystem di rete ed eventuali periferiche "particolari" usb.

per avere un pc che si avvia in 3 secondi metti come statico solo chipset della tua scheda madre e il filesystem che usi normalmente.
senza questi hai un kernel panic.

conserva sempre i sorgenti compilati in /usr/src.
se devi aggiungere qualcosa questo si compila in pochi secondi senza rifare tutto da capo.
basta richiamare il "vecchio" config con make menuconfig.
eventualmente ti serviranno anche se installi driver nvidia
 

clessidra

Utente Attivo
766
272
CPU
VIA C3
GPU
Ati Rage
OS
linux - Red Hat 1.1
Ma come risolverai le dipendenze? Spesso i moduli richiedono altri moduli per poter funzionare, o forse anche per poter essere compilati.
 
U

Utente 52152

Ospite
Ma come risolverai le dipendenze? Spesso i moduli richiedono altri moduli per poter funzionare, o forse anche per poter essere compilati.
bisogna sapere quello che si sta facendo. nessun sistema che risolva le dipendenze.

lasciatemi dire una cosa.
prima si compilava un kernel estremamente mirato solo per una macchina; i vantaggi erano solo di un avvio del pc ultraveloce.
per il resto, un kernel rifatto su slackware o gentoo e uno precompilato su ubuntu 4.10 facevano funzionare la macchina alla stessa maniera.
anzi, magari non si compilava qualche modulo che poi sarebbe servito per la nuova webcam.
 

rebellion

Utente Èlite
1,593
506
CPU
intel i5 9500
Dissipatore
cooler master hyper 212 evo
Scheda Madre
asrock b360 pro4
HDD
samsung 850evo 250GB+samsung 840pro 128GB+seagate barracuda 2TB+seagate barracuda 2TB
RAM
corsair vengeance lpx ddr4 2133MHz 2x4GB CL13
GPU
integrata intel hd graphics 630
Audio
integrata
Monitor
samsung ue55mu6500u
PSU
xfx pro series 550w core edition
Case
mastercooler
OS
archlinux x64 + gnome3.34.1 && windows10 pro x64
e ora con ssd (sataIII o NVMe poco importa) è più che altro una questione di esercizio scolastico o di 'pulizia' mentale applicata (mi è venuto in mente paranoia ma ci sono molte cose peggiori a questo mondo:hihi:).
 
  • Mi piace
Reazioni: Moffetta88

Zar Marco

Utente Attivo
501
108
CPU
Intel i7 1165G7 - Intel I7 7700HQ
HDD
Sabrent Rocket 1TB NVMe - Samsung M2 960 EVO NVMe 500GB, SSD Samsung 860 evo 1 Tb
RAM
16GbDDR4 4266 Mhz - 24 Gb DDR4 2400 Mhz
GPU
Intel iris XE - Intel 620, Nvidia GTX 1050
OS
Arch Linux--Gentoo--Void--Fedora--Nixos--Windows
Sì sì diciamo che è appunto un esercizio scolastico, non ho particolari motivi per farlo. Sono più che altro curioso di capire come fare per sapere cosa serve e cosa no


Anche perché magari un domani, se installo tipo qualche distro strana, tipo exherbo, in cui bisogna prendere il sorgente da kernel.org, vorrei ottimizzare i tempi di compilazione

Inviato da MI 9 tramite App ufficiale di Tom\'s Hardware Italia Forum
 
Ultima modifica:

r3dl4nce

Utente Èlite
16,840
9,200
Io lo sto ricompilando su un portatile perché ho modificato un file che non mi fa riconoscere il trackpad ma vista la modularità ormai d e l kernel, secondo me ti conviene prenderti il config del kernel che hai in esecuzione, piazzarlo nella cartella del kernel che vuoi compilare, poi vai di make menuconfig per fargli aggiornare i nuovi parametri con valori default e poi di make -j$(nproc)
 
  • Mi piace
Reazioni: Moffetta88
U

Utente cancellato 371741

Ospite
Ciao Marco,

su pc il kernel in genere non si snellisce, perche' quasi tutti i device sono rilevati dinamicamente nei bus (PCI, USB) etc, quindi si compilano tantissimi moduli da caricare runtime [M] che vengono caricati solo se serve, se inserisci una chiavetta, un modem, o un giorno monti una diversa scheda pci, etc, i moduli da caricare (.ko) son gia tutti disponibili in /lib/modules/versione etc. Ecco perche la compilazione (make, make modules_install etc) nel totale, per pc, e' molto lunga. Ovviamente puoi divertirti a snellirlo, sapendo questo.

Su schedine embedded invece, cambia tutto, l'ottimizzazione del kernel e' spesso anche se non sempre "fondamentale", si compilano [*] o [M] solo i driver che servono per l'hardware presente definito nel "devicetree". Poi piu piccolo viene il kernel, ovviamente, se non ci sono errori grossolani o problemi di "probe", per una serie di motivi, piu veloce sara' il boot. Poi ci sono tutta una serie di strategie per boot veloce, e/o ridurre la dimensione del binario.


per far prove puoi partire o dai default
make x86_64_defconfig
o dalla configurazione che hai
make olddefconfig

Il kernel ufficiale "mainline", o vanilla, o upstream lo trovi sempre su kernel.org, mainline master e' la testa dello sviluppo.

Se sei interessato la kernel, questo e' un wiki scritto da me e un altro amico, per collezionare info utili, puoi vedere se ci trovi qualcosa di interesante

http://solidground.baselinux.net/doku.php
http://solidground.baselinux.net/doku.php?id=knowledge-base:compiling-mainline-pc
 
Ultima modifica da un moderatore:
  • Mi piace
Reazioni: centoventicinque

rebellion

Utente Èlite
1,593
506
CPU
intel i5 9500
Dissipatore
cooler master hyper 212 evo
Scheda Madre
asrock b360 pro4
HDD
samsung 850evo 250GB+samsung 840pro 128GB+seagate barracuda 2TB+seagate barracuda 2TB
RAM
corsair vengeance lpx ddr4 2133MHz 2x4GB CL13
GPU
integrata intel hd graphics 630
Audio
integrata
Monitor
samsung ue55mu6500u
PSU
xfx pro series 550w core edition
Case
mastercooler
OS
archlinux x64 + gnome3.34.1 && windows10 pro x64
questo e' un wiki scritto da me e un altro amico
[OT]scusatemi l'ot: colgo solo l'occasione per ringraziare chi scrive wiki "for free", ne ho letti parecchi e ho potuto imparare molte cose più velocemente.[/OT]

PS se poi mi compili nei ritagli di tempo un kernel per asus zenfone 3...??
 
U

Utente cancellato 371741

Ospite
ciao rebellilon, grazie, si un wiki come tanti, era stato scritto per collezionare un po di cose e quindi studiarle, e per poi ricordarle allo stesso tempo.

Se tu fossi interessato, riguardo il kernel c'e' anche un canale telegram che ho creato per gioco tempo fa, mancano ancora gli esperti che vorrei, ma sta prendendo abbastanza piede. Casomai se mi scrivi in privato ti do il link.
 

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!

Discussioni Simili