Ricerca nel sito web

Rilasciato il kernel 3.16: compila e installa su Debian GNU/Linux


Il kernel è il nucleo di qualsiasi sistema operativo. La funzione primaria del kernel è quella di agire come mediatore tra Applicazione – CPU, Applicazione – Memoria e Applicazione – Dispositivi (I/O). Funziona come gestore della memoria, gestore dei dispositivi e partecipa alle chiamate di sistema oltre a svolgere altre attività.

Per Linux, il kernel è il cuore. Il kernel Linux è rilasciato sotto la GNU General Public License. Linus Torvalds ha sviluppato Linux Kernel nel 1991 ed è arrivato con la versione iniziale del kernel 0.01. Il 3 agosto 2014 (quest'anno) è stato rilasciato il Kernel 3.16. In questi 22 anni, il kernel Linux ha visto molti sviluppi. Ora ci sono migliaia di aziende, milioni di sviluppatori indipendenti che contribuiscono al kernel Linux.

Una stima approssimativa dei grandi marchi e del loro contributo all'attuale Linux Kernel che dovrebbe avere 17 milioni di righe di codice secondo Linux Foundation, Linux Kernel Development Report.

  1. Cappello Rosso – 10,2%
  2. Intel – 8,8%
  3. Strumenti Texas – 4,1%
  4. Linaro – 4,1%
  5. SUSE – 3,5%
  6. IBM – 3,1%
  7. Samsung – 2,6%
  8. Google – 2,4%
  9. Sistemi di incisione visiva – 2,3%
  10. Wolfson Microelettronica – 1,6%
  11. Oracolo – 1,3%
  12. Broadcom – 1,3%
  13. Nvidia – 1,3%
  14. Scala libera – 1,2%
  15. Tecnologia Ingics – 1,2%
  16. Cisco – 0,9%
  17. Fondazione Linux – 0,9%
  18. AMD – 0,9%
  19. Accademici – 0,9%
  20. NetAPP – 0,8%
  21. Fujitsu – 0,7%
  22. paralleli – 0,7%
  23. BRACCIO – 0,7%

Il 70% dello sviluppo del kernel è svolto da sviluppatori, che lavorano in aziende e sono pagati per questo, sembra interessante?

Linux Kernel 3.16 è stato rilasciato per privati e aziende in ambienti di produzione, che aggiorneranno il proprio kernel per una serie di motivi, alcuni dei quali includono.

  1. Patch di sicurezza
  2. Miglioramento della stabilità
  3. Driver aggiornati: migliore supporto per i dispositivi
  4. Miglioramento della velocità di elaborazione
  5. Ultime funzioni, ecc

Questo articolo mira ad aggiornare il kernel Debian, alla maniera Debian, il che significa meno lavoro manuale, meno rischi ma con perfezione. Aggiorneremo anche il kernel di Ubuntu nella parte successiva di questo articolo.

Passaggio 1: download del kernel 3.16

Prima di procedere, dobbiamo conoscere il nostro kernel attuale, ovvero installato.

avi@tecmint:~$ uname -mrns 

Linux tecmint 3.14-1-amd64 x86_64

Informazioni sulle opzioni:

  1. -s: stampa il sistema operativo ("Linux", qui).
  2. -n: stampa il nome host del sistema ("tecmint", qui).
  3. -r: stampa la versione del kernel ('tecmint 3.14-1-amd64', qui).
  4. -m: stampa il set di istruzioni hardware ('x86_64', qui).

Scarica l'ultimo kernel stabile dal link sottostante. Non lasciarti confondere dal collegamento per il download delle patch lì. Scarica quello che afferma chiaramente: “LATEST STABLE KERNEL”.

  1. https://www.kernel.org/

In alternativa puoi usare wget per scaricare il kernel che è più conveniente.

avi@tecmint:~/Downloads$ wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.16.tar.xz

Passaggio 2: verificare la firma del kernel 3.16

Al termine del download e prima di procedere, si consiglia vivamente di verificare la firma del kernel.

avi@tecmint:~/Downloads$ wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.16.tar.sign

La verifica della firma deve essere eseguita su un file non compresso. Ciò richiede una firma per vari formati di compressione, ad esempio .gz, .bz2, .xz.

Successivamente, decomprimi l'immagine del kernel Linux.

avi@tecmint:~/Downloads$ unxz linux-3.16.tar.xz

Verificalo contro la firma.

avi@tecmint:~/Downloads$ gpg --verify linux-3.16.tar.sign

Nota: se il comando precedente restituisce gpg: impossibile controllare la firma: errore chiave pubblica non trovata. Ciò significa che dobbiamo scaricare manualmente la chiave pubblica dal server PGP.

avi@tecmint:~/Downloads$ gpg --recv-keys  00411886

Dopo aver scaricato la chiave, verificare nuovamente la chiave.

avi@tecmint:~/Downloads$ gpg --verify linux-3.16.tar.sign

Hai notato due cose sulla verifica della chiave gpg.

  1. gpg: buona firma da "Linus Torvalds <[email >".
  2. Impronta digitale della chiave primaria: ABAF 11C6 5A29 70B1 30AB E3C4 79BE 3E43 0041 1886 .

Niente di cui preoccuparsi per l'impronta digitale della chiave, ora siamo sicuri che l'archivio è ok e firmato. Andiamo avanti!

Passaggio 3: installazione dei pacchetti richiesti

Prima di andare avanti e iniziare a creare il kernel, dobbiamo installare alcuni pacchetti per facilitare il processo di creazione e installazione del kernel e farlo in modo Debian senza rischi.

Installa libcurse5-dev, fakeroot e il pacchetto kernel.

avi@tecmint:~/Downloads$ sudo apt-get install libncurses5-dev
avi@tecmint:~/Downloads$ sudo apt-get install fakeroot
avi@tecmint:~/Downloads$ sudo apt-get install kernel-package

Passaggio 4: creazione del kernel 3.16

Dopo aver installato con successo i pacchetti di cui sopra, siamo pronti per creare il kernel. Passa all'immagine del kernel Linux estratta (che abbiamo estratto sopra, durante la verifica della firma).

avi@tecmint:~/Downloads$ cd linux-3.16/

Ora è importante copiare la configurazione corrente del kernel per presentare la directory di lavoro come utente root.

cp /boot/config-'uname -r' .config

Sta copiando /boot/config-'uname -r' nella directory di lavoro presente “/home/avi/Downloads/linux-3.16” e salvandolo come '.config'.

Qui "uname -r" verrà automaticamente sostituito ed elaborato con la versione del kernel attualmente installata.

Poiché un file punto non può essere visualizzato nel modo normale, è necessario utilizzare l'opzione "-a" con ls per visualizzarlo nella directory di lavoro attuale".

ls -al

Esistono tre modi per creare un kernel Linux.

  1. make oldconfig: è un modo interattivo in cui il kernel chiede una per una cosa dovrebbe supportare e cosa no. È un processo che richiede molto tempo.
  2. make menuconfig: è un sistema basato su menu a riga di comando in cui l'utente può abilitare e disabilitare un'opzione. Richiede la libreria ncurses, quindi l'abbiamo adattata sopra.
  3. make qconfig/xconfig/gconfig: è il sistema basato su menu grafico in cui l'utente può abilitare e disabilitare un'opzione. Richiede la libreria QT.

Ovviamente utilizzeremo ‘make menuconfig‘.

Hai paura di costruire il kernel? Non dovresti essere. È divertente, ci sono molte cose che imparerai. Dovresti tenere a mente le seguenti cose.

  1. Le tue esigenze hardware e i driver appropriati.
  2. Scegli nuove funzionalità mentre crei il kernel da solo, ad esempio: supporto di memoria elevato.
  3. Ottimizza il kernel: seleziona solo i driver di cui hai bisogno. Accelererà il processo di avvio. Se non sei sicuro di qualche driver, è meglio includerlo.

Ora esegui il comando "make menuconfig".

make menuconfig

Importante: devi scegliere "SELEZIONA - ABILITA SUPPORTO MODULO CARICABILE", se ti dimentichi di farlo, avrai momenti difficili .

Nota: nelle finestre di configurazione aperte puoi configurare varie opzioni per la tua scheda di rete, Bluetooth, touchpad, scheda grafica, supporto file system come NTFS e molte altre opzioni.

Non esiste un tutorial che ti guidi su cosa dovresti selezionare e cosa no. Lo scopri solo facendo ricerche, studiando cose sul web, imparando dai tutorial di tecmint e in ogni altro modo possibile.

Potresti vedere che esiste un'opzione per l'hacking del kernel. Hacking? Sì! Qui significa esplorazione. Puoi aggiungere varie opzioni all'hacking del kernel e utilizzare molte funzionalità.

Successivamente, seleziona Opzioni driver generiche.

Supporto per dispositivi di rete.

Supporto per dispositivi di input.

Carica il file di configurazione (.config), che abbiamo salvato da /boot/config-`uname –r`.config.

Fare clic su OK, salvare ed uscire. Ora pulisci l'albero dei sorgenti e reimposta i parametri del pacchetto kernel.

make-kpkg clean

Passaggio 5: compilazione del kernel 3.16

Prima di iniziare a compilare il kernel, dobbiamo esportare CONCURRENCY_LEVEL. Il LIVELLO DI CONCORRENZA ha una regola per aggiungere il numero 1 ai core del kernel. Se disponi di 2 core, esporta CONCURRENCY_LEVEL=3. Se hai 4 core, esporta CONCURRENCY_LEVEL=5.

Per controllare i core del processore è possibile utilizzare il comando cat come mostrato di seguito.

cat /proc/cpuinfo
Uscita del campione
Sample Output
processor	: 0 
vendor_id	: GenuineIntel 
cpu family	: 6 
model		: 69 
model name	: Intel(R) Core(TM) i3-4005U CPU @ 1.70GHz 
stepping	: 1 
microcode	: 0x17 
cpu MHz		: 799.996 
cache size	: 3072 KB 
physical id	: 0 
siblings	: 4 
core id		: 0 
cpu cores	: 2 
apicid		: 0 
initial apicid	: 0 
fpu		: yes 
fpu_exception	: yes 
cpuid level	: 13 
wp		: yes

Vedi l'output sopra, ho 2 core, quindi esporteremo 3 core come mostrato di seguito.

export CONCURRENCY_LEVEL=3

L'impostazione corretta di CONCURRENCY_LEVEL accelererà il tempo di compilazione del kernel.

fakeroot make-kpkg --append-to-version "-tecmintkernel" --revision "1" --initrd kernel_image kernel_headers

Qui "tecminkernel" è il nome della build del kernel, può essere qualsiasi cosa, dal tuo nome, al nome host, al nome del tuo animale domestico o qualsiasi altra cosa.

La compilazione del kernel richiede molto tempo a seconda dei moduli compilati e della potenza di elaborazione della macchina. Fino al momento della compilazione, guarda alcune delle FAQ sulla compilazione del kernel.

Domande frequenti

Q1. Il mio kernel è in fase di compilazione da molto tempo. È normale.
Q2. Se interrompo il kernel durante la compilazione, devo ricominciare tutto da capo?
Q3. I file compilati possono essere utilizzati su sistemi diversi per aggiornare il kernel?
Q4. Ospiterai il tuo file compilato?
Q5. Ho pacchetti come fakeroot e ncurses5-dev nel mio repository?
Q6. Potrò avviare l'ultimo kernel, dopo aver installato l'ultimo kernel.
D7. Sto riscontrando problemi nell'aggiornamento del kernel. Mi aiuterai? È a pagamento?
Q8. La mia azienda ha problemi con l'aggiornamento del kernel. Il tuo team ci aiuterà? È a pagamento?

Questa è la fine delle FAQ, lasciami passare al processo di compilazione. Dopo aver compilato con successo il kernel, vengono creati due file (pacchetto Debian), una directory "sopra" la nostra attuale directory di lavoro.

La nostra attuale directory di lavoro è.

/home/avi/Downloads/linux-3.16/

I pacchetti Debian vengono creati in.

/home/avi/Downloads

Per verificarlo, esegui i seguenti comandi.

cd ..
ls -l linux-*.deb

Successivamente, esegui il file immagine Linux così creato.

dpkg -i linux-image-3.16.0-tecmintkernel_1_amd64.deb

Eseguire il file header Linux così creato.

dpkg -i linux-headers-3.16.0-tecmintkernel_1_amd64.deb

Tutto fatto! Abbiamo creato, compilato e installato con successo l'ultimo Linux Kernel 3.16 su Debian con tutte le altre dipendenze. Inoltre il pacchetto Debian è riuscito ad aggiornare automaticamente il bootloader (GRUB/LILO). È ora di riavviare e testare il kernel più recente.

Assicurati di notare eventuali messaggi di errore che potresti ricevere durante l'avvio. È importante comprendere quell'errore per risolverli, se presente.

reboot

Non appena Debian si riavvia, fai clic su "Opzione avanzata" per visualizzare un elenco dei kernel disponibili e installati.

Visualizza un elenco dei kernel installati.

Selezionare l'ultimo kernel compilato (ad esempio 3.16) per l'avvio.

Controlla la versione del kernel.

uname -mrns

L'ultimo, installato ora, è impostato per l'avvio automatico e non è necessario sceglierlo ogni volta dalle opzioni di avvio avanzate.

Passaggio 6: installare il kernel precompilato 3.16

Per coloro che non vogliono compilare il proprio kernel su Debian (x86_64) e vogliono utilizzare il kernel precompilato che abbiamo creato in questo tutorial, possono scaricarlo dal collegamento sottostante. Questo kernel potrebbe non funzionare per parte dell'hardware che potresti avere.

  1. linux-image-3.16.0-linux-console.net_kernel_1_amd64.deb
  2. linux-headers-3.16.0-linux-console.net_kernel_1_amd64.deb

Successivamente, installa il kernel precompilato utilizzando il seguente comando.

dpkg -i linux-image-3.16.0-linux-console.net_kernel_amd64.deb
dpkg -i linux-headers-3.16.0-linux-console.net_kernel_amd64.deb

Il kernel inutilizzato può essere rimosso dal sistema utilizzando il comando.

apt-get remove linux-image-(unused_version_number)

Attenzione: dovresti rimuovere il vecchio kernel dopo aver testato attentamente l'ultimo kernel. Non prendere una decisione in fretta. Dovresti procedere solo se sai cosa stai facendo.

Se hai fatto qualcosa di sbagliato nel rimuovere il kernel che desideri, o hai rimosso il kernel che non dovevi, il tuo sistema si troverà in una fase su cui non puoi lavorare.

Dopo aver disinstallato un kernel inutilizzato potresti ricevere un messaggio del tipo.

  1. Il collegamento /vmlinuz è un collegamento danneggiato.
  2. Rimozione del collegamento simbolico vmlinuz.
  3. Potrebbe essere necessario eseguire nuovamente il boot loader[grub].
  4. Il collegamento /initrd.img è un collegamento danneggiato.
  5. Rimozione del collegamento simbolico initrd.img .
  6. Potrebbe essere necessario eseguire nuovamente il boot loader[grub].

Questo è normale e non devi preoccuparti. Aggiorna semplicemente GRUB usando il seguente comando.

/usr/sbin/update-grub

Potrebbe essere necessario aggiornare il file /etc/kernel-img.conf e disabilitare "do_symlinks" per disabilitare questi messaggi. Se riesci a riavviare e ad accedere nuovamente, non ci sono problemi.

È tutto per ora. Sarò di nuovo qui con un altro articolo interessante. Fino ad allora restate sintonizzati e connessi a Tecmint. Non dimenticare di fornirci il tuo prezioso feedback nella sezione commenti qui sotto. Raccontaci anche la tua esperienza quando incontri la compilazione e l'installazione del kernel.

Leggi anche:

  1. Installa il kernel 3.16 su Ubuntu
  2. Compila e installa il kernel 3.12 in Debian Linux