Annuncio pubblicitario
Insieme a installando Gentoo Gentoo: una distribuzione Linux in cui compilare il proprio software ottimizzatoIl solo numero di modi diversi in cui Linux può essere eseguito è sorprendente, dato che ci sono molte scelte da fare. Mentre ci sono molte distribuzioni che si basano su .deb ... Leggi di più , compilare il 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]I sistemi Linux sono così ridicolmente flessibili e configurabili, decisamente pazzeschi. Una parte enorme del motivo per cui Linux è così flessibile è a causa della sua struttura modulare. Ogni singolo componente di sistema e programma è suddiviso ... Leggi di più perché potresti voler fare questo. Prima di illustrarti i passaggi, ecco una breve panoramica di alcuni concetti importanti.
Che cos'è un kernel?
In breve, è una parte vitale del tuo sistema operativo, se non il più importante. Un sistema operativo è responsabile del funzionamento dei tuoi programmi, consentendo loro di accedere al tuo hardware. Tuttavia, è il
nocciolo Che cos'è un kernel in Linux e come si controlla la versione?Linux è un sistema operativo, giusto? Bene, non esattamente! In realtà è un kernel. Ma cos'è il kernel Linux? Leggi di più che effettivamente svolge tutti questi lavori.Il kernel di Linux è speciale in quanto può essere fatto su misura per adattarsi all'hardware che possiedi. In 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.
Per maggiori informazioni, controlla la nostra introduzione ai kernel in Linux Che cos'è un kernel in Linux e come si controlla la versione?Linux è un sistema operativo, giusto? Bene, non esattamente! In realtà è un kernel. Ma cos'è il kernel Linux? Leggi di più .
Che cos'è la compilazione?
Generalmente, i programmi sono scritti in un formato leggibile dall'uomo. Ciò semplifica la creazione di software per le persone. Ad esempio, il kernel Linux è scritto principalmente in un linguaggio di programmazione chiamato C. Tuttavia, i computer non possono capirlo. Riconoscono solo un linguaggio complicato chiamato codice macchina. Per fare ciò, le righe di testo devono essere tradotto Come compilare e installare i file TAR GZ e TAR BZ2 in Ubuntu Linux Leggi di più utilizzando un software speciale chiamato a compilatore.
Diversi compilatori vengono utilizzati 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 farlo ottimizzare il codice tradotto per macchine specifiche. Oltre a ciò, possono anche rimuovere funzionalità indesiderate dai programmi mentre lo fanno.
Di solito, questo processo è già stato eseguito per molti software. Invece, le persone scaricano il convertito binario istruzioni, che funzionano immediatamente. Ad esempio, il programma di navigazione in rete Stai usando il miglior browser Web per Linux nel 2016?L'uso del browser "sbagliato" può portare a molti mal di testa inutili, a sprecare la produttività e persino a perdere dati. Quindi quale browser è il migliore per il tuo computer Linux? Scopriamolo. Leggi di più stai correndo in questo momento è già compilato. Questo perché compilare qualcosa può essere un po 'complicato e richiedere 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 del kernel
Non puoi accendere un fuoco senza carburante. Allo stesso modo, non puoi compilare programmi se non hai il codice per farlo 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 ad usarlo se puoi. Ad esempio, se stai utilizzando a 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 in /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 utilizzerai. Estrai 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à piuttosto grande, quindi il processo richiederà un po 'di tempo!
Metodo alternativo
Se lo desideri, puoi ottenere le tue fonti dal sito web ufficiale del kernel Linux. Lo consiglio solo se il tuo sistema operativo Linux non li fornisce. Seleziona la versione che desideri e scarica. Se segui questo percorso, dovresti scaricarlo in una cartella vuota. In questo modo, se vuoi compilare più kernel in futuro, avrai una bella cartella in cui tenerli organizzati.
Fatto ciò, estrarre il file con questo comando:
tar xJvf linux-4.9.11.tar.xz
Assicurati di utilizzare il nome file corrispondente alla versione che hai scaricato!
Personalizza il kernel
Questo è il passaggio 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, sbarazzartene può portare alcuni vantaggi di velocità, insieme a un kernel più piccolo.
Prerequisiti
Prima di procedere, è necessario installare alcuni programmi che ti consentiranno di personalizzarlo e compilarlo.
Sui sistemi basati su Debian, è necessario 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 questo potrebbe avere un nome diverso. Ad esempio, se stai utilizzando Fedora 5 motivi per utilizzare Pure Open Source Distro, FedoraFedora non è così conosciuta come Ubuntu e ha la reputazione di essere difficile da usare. Ma se questo è vero, perché così tante persone continuano a usare Fedora? Leggi di più , è chiamato ncurses.
Se non è già installato, avrai anche bisogno di Collezione di compilatori GNU (GCC). Questo è lo strumento responsabile della traduzione del codice sorgente grezzo in qualcosa di comprensibile per i computer. Vale a dire, compilando.
Dopo aver installato questi programmi, apri il tuo terminale in modo da farlo dentro la cartella sorgente Linux estratta. Ad esempio, se hai usato il linux-source metodo, dovresti fare questo:
cd /usr/src/linux-source-4.4.0
File di configurazione del kernel
Prima di compilare il kernel, devi dire a GCC come lo vuoi fare. Puoi farlo 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 in una cartella di tua proprietà, tu non c'è bisogno di sudo per farlo funzionare.
Potresti imbatterti in alcuni messaggi come quello qui sotto. Basta premere il tasto accedere chiave per saltarli: di solito sono solo nuove funzionalità del kernel.
Tuttavia, localmodconfig non è perfetto! Se al momento non stai utilizzando alcune parti del tuo computer, è possibile che non rilevi tutti gli elementi supportati. Pertanto, è necessario abilitarli manualmente. In alternativa, puoi saltare completamente questo passaggio e utilizzare invece il comando successivo. Questo compilerà il nuovo kernel con le stesse opzioni di quello che stai attualmente utilizzando.
Se lo preferisci, ma hai usato prima il comando localmodconifg, procedi nel seguente modo:
sudo rendi pulito.
Questo ti darà una build pulita. Dovresti anche usare questo comando se prima hai compilato un kernel con queste fonti.
Ulteriore configurazione
All'interno della cartella dei sorgenti 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 terminali. Ciò renderà molto più semplice la selezione delle opzioni di compilazione.
Fatto ciò, perfezionalo ulteriormente:
sudo make nconfig.
Vedrai apparire un menu colorato. Questo è il menu di configurazione del kernel. Per spostarti, usa i tasti freccia. È possibile premere il tasto destra tasto freccia per espandere le voci con a —> firmare accanto a loro. Esci da questi sottomenu premendo il tasto sinistra tasto freccia.
È possibile attivare o disattivare le voci di menu con il <> o [] segno accanto a loro premendo la barra spaziatrice. Ciò scorrerà tra le diverse opzioni di menu. Se vedi a * o M all'interno, verrà compilato quel componente specifico del kernel. L'unica differenza tra loro è che il M l'opzione verrà caricata quando è necessario. Questo può essere utile se, ad esempio, stai compilando un driver, che non verrà utilizzato spesso.
Se vuoi sapere di più su cosa fa un interruttore specifico, premi F2 sopra. Vedrai una descrizione utile di ciò che stai compilando.
Al termine, premi il tasto F9 pulsante per salvare ed uscire.
Compilazione e installazione del kernel
Ora che hai creato un file di creazione personalizzato, dovrai farlo compilare Come compilare e installare i file TAR GZ e TAR BZ2 in Ubuntu Linux Leggi di più il nocciolo. Digita questo comando:
sudo make -j $ (nproc --all)
Desideri non ho 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 tutto il tuo Core della CPU Che cos'è un core del processore? [MakeUseOf Explains]Ogni computer ha un processore, che si tratti di un piccolo professionista di efficienza o di un potente motore ad alte prestazioni, altrimenti non sarebbe in grado di funzionare. Naturalmente, il processore, chiamato anche CPU o elaborazione centrale ... Leggi 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 singhiozzi. Tuttavia, questo renderà anche la compilazione più lenta!
Questo processo può e richiederà molto tempo. Meno hai scelto di compilare, più breve sarà. Anche così, probabilmente dovrai essere paziente.
Successivamente, digita questo comando per completare la compilazione del resto del kernel:
sudo make modules_install.
Per utilizzare effettivamente questo kernel, devi inserire questo comando:
sudo make install.
Questo copierà automaticamente il kernel sul tuo /boot cartella e generare i file appropriati per farlo funzionare.
Cambiare kernel usando GRUB
Se riavvii dopo aver installato il tuo nuovo kernel, il tuo sistema potrebbe non funzionare! Ciò è generalmente dovuto a un kernel compilato in modo errato (ovvero, non supporta abbastanza bene il computer). Caso in questione, il mio laptop. Nel caso ciò accada, lo consiglio modifica di GRUB 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.
Posizionare 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 tuo computer, sarai in grado di passare a un kernel più vecchio se il tuo nuovo non funziona. Vai semplicemente al Opzioni avanzate voce di menu e selezionare il kernel che si desidera avviare. Se tutto funziona bene, congratulazioni! Utilizzerai il kernel che hai compilato da solo.
Sei interessato a compilare più kernel? Altri programmi? Lo trovi utile?
Crediti immagine: chombosan / Shutterstock
Attualmente studiando per un BIT, Austin Luong è un appassionato appassionato di Linux che ama fare proselitismo sul software libero. Gli piace anche scrivere fantascienza, ma solo nella privacy del suo disco rigido.