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. Ad esempio, GCC è un compilatore che traduce il codice C in codice macchina (tra gli altri). Ma non è tutto ciò che fanno - i compilatori possono anche 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 le istruzioni binarie convertite, che funzionano immediatamente. 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 (es. Linux-source-4.8.0 ), se lo desideri. Troverai i file installati nella directory / usr / src /, 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, è necessario il pacchetto build-essential, tra gli altri:
sudo apt-get install build-essential gcc libncurses5-dev libssl-dev
Il pacchetto libncurses5-dev 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 è così conosciuta 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 della GNU Compiler Collection (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 da trovarti all'interno della cartella di origine di Linux estratta. Ad esempio, se hai usato il metodo linux-source, dovresti farlo:
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 make . Digita questo comando:
sudo make localmodconfig
Questo crea un file chiamato .config, che dice a GCC cosa compilare dai sorgenti del kernel. Il comando make localmodconfig rileva i componenti del kernel attualmente in esecuzione e li contrassegna per la compilazione. Se il kernel si trova all'interno di una cartella di tua proprietà, non avrai bisogno di sudo perché funzioni.
Potresti imbatterti in alcuni messaggi come quello qui sotto. Basta premere il tasto Invio per saltare loro - 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 tasto freccia destra per espandere le voci con un segno -> accanto ad esse. Navigare fuori da questi sottomenu premendo il tasto freccia sinistra .
Puoi cambiare le voci di menu che hanno il segno [ o ] accanto a loro premendo la barra spaziatrice. Questo scorrerà tra le diverse opzioni di menu. Se vedi un * o un M all'interno, verrà compilato quel componente del kernel specifico. L'unica differenza tra loro è che l'opzione M verrà caricata quando è necessaria. 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 su di esso. Vedrai una descrizione utile di ciò che stai compilando.
Una volta che hai finito, premi il tasto F9 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)
Non avrai bisogno di 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 sbarazzarti di questo, o cambiare il numero in qualcos'altro (es. -j2 ), se vuoi usare il tuo 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 nella cartella / boot e genererà i file appropriati per farlo funzionare.
Cambiare i kernel usando GRUB
Se si riavvia dopo aver installato il nuovo kernel, il 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
Inserisci un segno # davanti alle linee GRUB_HIDDEN_TIMEOUT e GRUB_HIDDEN_TIMEOUT_QUIET . 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 alla voce di menu Opzioni avanzate 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