Come compilare il tuo kernel Linux

Come compilare il tuo kernel Linux / Linux

Insieme all'installazione di Gentoo Gentoo: una distribuzione Linux in cui compili il tuo software ottimizzato Gentoo: una distribuzione Linux in cui compili il tuo software ottimizzato Il gran numero di modi diversi in cui Linux può essere eseguito è sbalorditivo, poiché ci sono molte scelte per andare in giro. Mentre ci sono molte distribuzioni che si basano su .deb ... Read More, la compilazione del proprio kernel Linux è una di quelle cose che sono considerate molto geek e tecniche. Abbiamo già coperto alcuni motivi 3 motivi per cui potresti voler compilare il tuo kernel [Linux] 3 motivi per cui potresti voler compilare il tuo kernel [Linux] I sistemi Linux sono così ridicolmente flessibili e configurabili, è assolutamente pazzesco. Una parte enorme del perché Linux è così flessibile è a causa della sua struttura modulare. Ogni singolo componente e programma di sistema è suddiviso ... Per saperne di più, perché potresti voler fare questo. Prima di guidarti attraverso i passaggi, ecco una breve panoramica su alcuni concetti importanti.

Cos'è un kernel?

In breve, è una parte vitale del tuo sistema operativo, se non il più importante. Un sistema operativo è responsabile del funzionamento dei programmi, consentendo loro l'accesso all'hardware. Tuttavia, è il kernel Il kernel di Linux: una spiegazione nei termini di Layman Il kernel di Linux: una spiegazione nei termini di Layman C'è solo una cosa di fatto che le distribuzioni di Linux hanno in comune: il kernel di Linux. Ma mentre si parla spesso, molte persone non sanno esattamente cosa fa. Leggi di più che in realtà porta fuori tutti questi lavori.

Il kernel di Linux è speciale in quanto può essere adattato per adattarsi all'hardware che possiedi. Contrasto con il kernel di Windows NT, che sarà generalmente lo stesso su tutti i computer. Per fare ciò, il kernel deve passare attraverso un processo chiamato compilazione.

Che cos'è la compilazione?

In generale, i programmi sono scritti in un formato leggibile dall'uomo. Ciò rende più facile per le persone creare software. Ad esempio, il kernel di Linux è scritto principalmente in un linguaggio di programmazione chiamato C. Tuttavia, i computer non riescono a capirlo. Riconoscono solo un linguaggio complicato chiamato codice macchina. Per fare ciò, le righe di testo devono essere tradotte Come compilare e installare i file TAR GZ e TAR BZ2 in Ubuntu Linux Come compilare e installare i file TAR GZ e TAR BZ2 in Ubuntu Linux Ulteriori informazioni utilizzando uno speciale software chiamato compilatore.

Diversi compilatori sono usati per convertire diversi linguaggi di programmazione. Per esempio, GCC è un compilatore che traduce il codice C in codice macchina (tra gli altri). Ma non è tutto ciò che fanno - anche i compilatori possono ottimizzare il codice tradotto per macchine specifiche. Insieme a questo, possono anche rimuovere le funzioni indesiderate dai programmi mentre lo fanno.

Di solito, questo processo è già stato fatto per un sacco di software. Invece, le persone scaricano il convertito binario istruzioni, che funzionano fuori dalla scatola. Ad esempio, il browser web stai usando il miglior browser Web per Linux nel 2016? Stai usando il miglior browser Web per Linux nel 2016? L'uso del browser "sbagliato" può portare a molti mal di testa inutili, sprechi di produttività e persino perdita di dati. Quindi quale browser è il migliore per il tuo computer Linux? Scopriamolo. Leggi di più che stai correndo adesso è già compilato. Questo perché compilare qualcosa può essere un po 'complicato e dispendioso in termini di tempo. Pensa a come tradurre un grande libro in una lingua straniera.

In breve, compilare il kernel significa convertire il suo codice in qualcosa che verrà effettivamente eseguito sul tuo computer.

Ottenere fonti di Kernel

Non puoi accendere un fuoco senza carburante. Allo stesso modo, non è possibile compilare programmi se non si dispone del codice per questo in primo luogo. Il metodo è generalmente lo stesso per la maggior parte dei sistemi operativi Linux, con alcune eccezioni. Molti di loro forniscono i propri sorgenti del kernel personalizzati. Dovresti provare a usarlo se puoi. Ad esempio, se stai usando un Sistema operativo basato su Debian come Ubuntu, dovresti installare i sorgenti usando questi comandi:

sudo apt-get update sudo apt-get install linux-source 

Puoi anche installare diverse versioni di questo pacchetto (ad es. linux-source-4.8.0) se ti piace. Troverai i file installati nel / Usr / src / directory, quindi naviga lì e visualizza i contenuti:

cd / usr / src / ls 

Vedrai un file che termina con .tar.bz2. Questa è la fonte che userete. Estrailo con questo comando:

sudo tar xjvf linux-source-4.4.0.tar.bz2 

Assicurati di sostituire il file con il nome corretto, ovviamente. Il file sarà abbastanza grande, quindi il processo richiederà un po 'di tempo!

Metodo alternativo

Se vuoi, puoi ottenere le tue fonti dal sito ufficiale del Linux Kernel. Lo consiglio solo se il tuo sistema operativo Linux non li fornisce. Seleziona la versione che desideri e scarica. Se si passa attraverso questa rotta, è necessario scaricarla in una cartella vuota. In questo modo, se vuoi compilare più kernel in futuro, avrai una bella cartella in cui organizzarli.

Fatto ciò, estrai il file con questo comando:

tar xJvf linux-4.9.11.tar.xz

Assicurati di utilizzare il nome file che corrisponde alla versione che hai scaricato!

Personalizza il kernel

Questo è il passo in cui puoi scegliere quali parti del kernel vuoi eliminare. Ad esempio, il kernel viene fornito con molti driver diversi per una varietà di dispositivi. Se non hai bisogno di quel supporto, liberartene può dare alcuni benefici di velocità, insieme a un kernel più piccolo.

Prerequisiti

Prima di procedere, è necessario installare alcuni programmi che consentono di personalizzarlo e compilarlo.

Sui sistemi basati su Debian, hai bisogno di build-essential pacchetto, tra gli altri:

sudo apt-get install build-essential gcc libncurses5-dev libssl-dev 

Il libncurses5-dev il pacchetto renderà più semplice la configurazione del kernel, quindi assicurati di installarlo. Altri sistemi operativi Linux avranno un programma simile, ma potrebbe avere un nome diverso. Ad esempio, se stai usando Fedora 5 motivi per usare Distro Pure Open Source, Fedora 5 motivi per usare Pure Open Source Distro, Fedora Fedora non è nota come Ubuntu e ha una reputazione per essere difficile da usare. Ma se questo è vero, perché così tante persone continuano ad usare Fedora? Per saperne di più, si chiama ncurses.

Se non è già installato, avrai anche bisogno del Collezione GNU Compiler (GCC). Questo è lo strumento responsabile della traduzione del codice sorgente grezzo in qualcosa di comprensibile per i computer. Vale a dire, compilazione.

Dopo aver installato questi programmi, apri il terminale in modo tale che tu sia dentro la cartella di origine di Linux estratta. Ad esempio, se hai usato il linux-source metodo, dovresti fare questo:

cd /usr/src/linux-source-4.4.0

Kernel Configuration File

Prima di compilare il kernel, devi dire a GCC come vuoi farlo. Lo fai usando uno strumento da riga di comando chiamato rendere. Digita questo comando:

sudo make localmodconfig 

Questo crea un file chiamato .config, che dice a GCC cosa compilare dai sorgenti del kernel. Il make localmodconfig il comando rileva i componenti del kernel attualmente in esecuzione e li contrassegna per la compilazione. Se il kernel si trova all'interno di una cartella che possiedi, tu non avrà bisogno di sudo perché funzioni.

Potresti imbatterti in alcuni messaggi come quello qui sotto. Basta premere il accedere chiave per saltarli - di solito sono solo nuove funzionalità del kernel.

Tuttavia, localmodconfig non è perfetto! Se al momento non utilizzi alcune parti del tuo computer, potrebbe non rilevare tutte le cose che supporta. Pertanto, è necessario abilitarli manualmente. In alternativa, puoi saltare questo passaggio interamente e usare invece il comando successivo. Questo compilerà il nuovo kernel con le stesse opzioni di quello attualmente in uso.

Se preferisci, ma prima hai usato il comando localmodconifg, fai questo:

sudo make clean 

Questo ti darà una build pulita. Dovresti usare questo comando anche se hai già compilato un kernel con queste fonti.

Ulteriore configurazione

All'interno della cartella sorgente del kernel, c'è un file chiamato .config. Questo è ciò che GCC utilizzerà per scegliere cosa compilare. Invece di modificarlo manualmente (non consigliato), utilizzerai invece alcuni strumenti di terminale. Ciò renderà la selezione delle opzioni di compilazione molto più semplice.

Fatto ciò, perfezionarlo ulteriormente:

sudo make nconfig 

Vedrai apparire un menu colorato. Questo è il menu di configurazione del kernel. Per navigare, usa i tasti freccia. È possibile premere il destra tasto freccia per espandere le voci con a -> firmare accanto a loro. Spostarsi fuori da questi sottomenu premendo il tasto sinistra tasto freccia.

È possibile alternare le voci di menu che hanno il <> o [] firmare accanto a loro premendo la barra spaziatrice. Questo scorrerà tra le diverse opzioni di menu. Se vedi un * o M all'interno, verrà compilato quel componente del kernel specifico. L'unica differenza tra loro è che il M l'opzione verrà caricata quando è necessario. Questo può essere utile se ad esempio si sta compilando un driver, che non verrà usato spesso.

Se vuoi sapere di più su cosa fa un interruttore specifico, premi F2 sopra. Vedrai una descrizione utile di ciò che stai compilando.

Una volta che hai finito, premi il tasto F9 pulsante per salvare e uscire.

Compilazione e installazione del kernel

Ora che hai creato un file make personalizzato, dovrai compilare come compilare e installare i file TAR GZ e TAR BZ2 in Ubuntu Linux Come compilare e installare i file TAR GZ e TAR BZ2 in Ubuntu Linux Ulteriori informazioni sul kernel. Digita questo comando:

sudo make -j $ (nproc --all) 

Desideri non è necessario sudo se hai scaricato i sorgenti del kernel dal web. La seconda parte del comando aiuta ad accelerare il tempo di compilazione del kernel, sfruttando tutti i core della CPU. Che cos'è un processore Core? [MakeUseOf Explains] Che cos'è un core del processore? [MakeUseOf Explains] Ogni computer ha un processore, sia che si tratti di un piccolo efficiency pro o di un potente generatore di prestazioni, altrimenti non sarebbe in grado di funzionare. Naturalmente, il processore, chiamato anche CPU o elaborazione centrale ... Per saperne di più. Puoi sbarazzartene o cambiare il numero in qualcos'altro (ad es. -j2), se si desidera utilizzare il computer per altre attività senza troppi problemi. Tuttavia, questo renderà anche la compilazione più lenta!

Questo processo può richiedere e impiegherà molto tempo. Meno hai scelto di compilare, più breve sarà. Anche così, probabilmente dovrai essere paziente.

Successivamente, digitare questo comando per terminare la compilazione del resto del kernel:

sudo make modules_install 

Per utilizzare effettivamente questo kernel, dovrai inserire questo comando:

sudo make install 

Questo copierà automaticamente il kernel sul tuo /avvio cartella e generare i file appropriati per farlo funzionare.

Cambiare i kernel usando GRUB

Se si riavvia dopo aver installato il nuovo kernel, il tuo sistema potrebbe non funzionare! Questo di solito è dovuto a un kernel compilato in modo errato (cioè, non supporta abbastanza bene il tuo computer). Caso in questione, il mio portatile. Nel caso in cui ciò accada, consiglio di modificare GRUB Come personalizzare il boot loader GRUB usando BURG [Ubuntu] Come personalizzare il boot loader GRUB usando BURG [Ubuntu] Leggi di più in modo che possa tornare ai kernel più vecchi. Per fare questo, usa questo comando:

sudo nano / etc / default / grub 

Metti un segno # davanti al GRUB_HIDDEN_TIMEOUT e GRUB_HIDDEN_TIMEOUT_QUIET Linee. Successivamente, salva queste modifiche eseguendo questo comando:

sudo grub-mkconfig -o /boot/grub/grub.cfg 

Ora se riavvii il computer, sarai in grado di passare a un kernel precedente se il tuo nuovo non funziona. Basta andare al Opzioni avanzate voce di menu e selezionare il kernel che si desidera avviare. Se tutto funziona bene, congratulazioni! Userai il kernel che hai compilato da solo.

Sei interessato a compilare più kernel? Altri programmi? Lo trovi utile?

Crediti immagine: chombosan / Shutterstock

Scopri di più su: Linux.