SlideShare ist ein Scribd-Unternehmen logo
1 von 14
Downloaden Sie, um offline zu lesen
www.lugroma3.org




               (Ri)Compilazione
                   del Kernel



Alessandro Manfredi
Il kernel, questo sconosciuto
I sottosistemi principali
E se volessi darci un'occhiata ?
•   SCI / PM -> /usr/src/linux/kernel
•   IPC -> /usr/src/linux/ipc
•   Arch dependent code -> /usr/src/linux/arch
•   MM -> /usr/src/linux/mm
•   VFS & FS -> /usr/src/linux/fs
•   Network stack -> /usr/src/linux/net
•   DD -> /usr/src/linux/drivers *
•   BSP (Board Support Package ) -> /usr/src/linux/arch
(Ri)Compilazione : i sorgenti
• Tramite packet manager
• Scaricandoli da www.kernel.org

• Posti in /usr/src/linux-<versione>-<release>
  /usr/src/linux -> /usr/src/linux-<versione>-<release>

• Per consuetudine
  # chown -R root:src /usr/src/
  # chmod -R g+w /usr/src/*
  # adduser <you> src
Configurazione iniziale
• Se si vuole partire dalla configurazione attuale del kernel si
  copi il file di configurazione attuale ( /boot/config<version> )
  in /usr/src/linux/.config
• Possono essere necessari i pacchetti
   fakeroot e libncurses5-dev

• Si accede all'interfaccia di configurazione tramite
          [you@/usr/src/linux/] # make menuconfig

• !!! Se il kernel che ci si appresta a configurare è di una
  versione LEGGERMENTE diversa rispetto a quella per la
  quale è scritto il config si usi prima # make oldconfig
Un kernel 'snello'
• I kernel standard contengono il supporto per consentire il
  funzionamento del maggior numero di piattaforme

• Tutto e solo il supporto per il proprio hardware ?
• Device drivers check pages
                                   es. http://kmuto.jp/debian/hcl/
      ( il risultato è affidabile se la Device Map è la stessa )
(Ri)Compilazione
• Standard :
  # make && make modules_install
  – E per “installarlo” ?
  – Il bootloader deve sapere quale kernel caricare


• Debian way:
  # fakeroot make-kpkg --append-to-version
    -nomepersonalizzato --revision=1 kernel_image
  –   Crea un paccketto kernel-<versione>-nomepersonalizzato.<arch>.deb
  –   Può essere installato con # dpkg -i kernel-<versione>-...etc.etc.
  –   Se si usa LILO come bootloader va aggiornato il MBR # lilo -v
  –   Se non è la prima volta, prima di tutto # make-kpkg clean
E I moduli ?
• lsmod
• modprobe / insmod
• rmmod

Per caricare moduli all'avvio ?
• /etc/modules
• /etc/modules.autoload.d/kernel-<version>
initrd || !initrd ?
• Risposta breve :      !initrd
• Risposta meno breve :
L'initial RAM Disk è un filesystem minimale temporaneo montato al
   boot che contiene drivers ed eseguibili (es. Insmod) necessari al
   mount del filesystem radice vero e proprio. Una volta montato il
   filesystem radice reale, viene smontato l'initrd e liberata la
   memoria occupata. In molti sistemi embedded l'initrd è proprio il
   filesystem radice. Nei sistemi di uso comune l'uso dell'initrd
   permette di non compilare all'interno del kernel tutti i supporti
   per tutti i possibili tipi di filesystem. Se il supporto per il
   filesystem radice è incluso nel kernel, non occorre
   necessariamente un initrd.
KSplice
• Applicare patch al kernel senza bisogno di riavviare il sistema
   – “automatizzato” solo se le patch non introducono
     cambiamenti semantici nelle strutture dati ( es. 84% delle
     patch di sicurezza da maggio 2005 a dicembre 2007 )
   – Implementato (al momento) solo per x86-32 e x86-64
   – Solo per kernel 2.6.x
   – Testato su kernel da 2.6.8 a 2.6.25,
      su distro Debian, Ubuntu, RHEL, Gentoo.

• Può essere più pericoloso che utile ?
Questions ?
/(and Answers)?/
Online References
www.kernel.org

Kerneltrap
                                                       http://kerneltrap.org/
Wikipedia
                    http://en.wikipedia.org/wiki/Kernel_(computer_science)
Anatomy of the Linux kernel
             http://www.ibm.com/developerworks/linux/library/l-linux-kernel/
Debian Kernel Howto
             http://guide.debianizzati.org/index.php/Debian_Kernel_Howto
Linux initial RAM disk (initrd) overview
               http://www.ibm.com/developerworks/linux/library/l-initrd.html
Debian device driver check page
                                                 http://kmuto.jp/debian/hcl/

Weitere ähnliche Inhalte

Was ist angesagt?

Richiami su Linux - Webmin - Reti di calcolatori
Richiami su Linux - Webmin - Reti di calcolatoriRichiami su Linux - Webmin - Reti di calcolatori
Richiami su Linux - Webmin - Reti di calcolatoriFulvio Corno
 
Gestione dischi - File system - LVM
 Gestione dischi - File system - LVM Gestione dischi - File system - LVM
Gestione dischi - File system - LVMFulvio Corno
 
Il dual boot scolastico perfetto (2012)
Il dual boot scolastico perfetto (2012)Il dual boot scolastico perfetto (2012)
Il dual boot scolastico perfetto (2012)Marcello Missiroli
 
Virtualizzazione - FLOSS
Virtualizzazione - FLOSSVirtualizzazione - FLOSS
Virtualizzazione - FLOSSStefano Morandi
 
SSH base - Configurazione di sistema da terminale
 SSH base - Configurazione di sistema da terminale SSH base - Configurazione di sistema da terminale
SSH base - Configurazione di sistema da terminaleFulvio Corno
 
PostgreSQL: Prima configurazione
PostgreSQL: Prima configurazionePostgreSQL: Prima configurazione
PostgreSQL: Prima configurazioneEnrico Pirozzi
 
Readme i
Readme iReadme i
Readme ianonidj
 
PostgreSQL: Point in time recovery
PostgreSQL: Point in time recoveryPostgreSQL: Point in time recovery
PostgreSQL: Point in time recoveryEnrico Pirozzi
 
Lezione corso Base GNU/Linux
Lezione corso Base GNU/LinuxLezione corso Base GNU/Linux
Lezione corso Base GNU/LinuxAlex Palesandro
 
Circolo Izquierda: Anatomia Sistema Linux
Circolo Izquierda: Anatomia Sistema LinuxCircolo Izquierda: Anatomia Sistema Linux
Circolo Izquierda: Anatomia Sistema LinuxPaolo Sammicheli
 
Sistemi Operativi: Struttura - Lezione 04
Sistemi Operativi: Struttura - Lezione 04Sistemi Operativi: Struttura - Lezione 04
Sistemi Operativi: Struttura - Lezione 04Majong DevJfu
 
Nslu2 how to unslung
Nslu2 how to unslungNslu2 how to unslung
Nslu2 how to unslungMarcello Viti
 
MontelLUG - Conferenze 2007 - Introduzione a RSync
MontelLUG - Conferenze 2007 - Introduzione a RSyncMontelLUG - Conferenze 2007 - Introduzione a RSync
MontelLUG - Conferenze 2007 - Introduzione a RSyncManuel Dalla Lana
 
Anatomia di una distribuzione GNU/Linux
Anatomia di una distribuzione GNU/LinuxAnatomia di una distribuzione GNU/Linux
Anatomia di una distribuzione GNU/LinuxPaolo Sammicheli
 

Was ist angesagt? (20)

Richiami su Linux - Webmin - Reti di calcolatori
Richiami su Linux - Webmin - Reti di calcolatoriRichiami su Linux - Webmin - Reti di calcolatori
Richiami su Linux - Webmin - Reti di calcolatori
 
Gestione dischi - File system - LVM
 Gestione dischi - File system - LVM Gestione dischi - File system - LVM
Gestione dischi - File system - LVM
 
Sfrontori pillole-cobbler
Sfrontori pillole-cobblerSfrontori pillole-cobbler
Sfrontori pillole-cobbler
 
Proxmox VE
Proxmox VEProxmox VE
Proxmox VE
 
Il dual boot scolastico perfetto (2012)
Il dual boot scolastico perfetto (2012)Il dual boot scolastico perfetto (2012)
Il dual boot scolastico perfetto (2012)
 
Resocontolinuxlite
ResocontolinuxliteResocontolinuxlite
Resocontolinuxlite
 
Virtualizzazione - FLOSS
Virtualizzazione - FLOSSVirtualizzazione - FLOSS
Virtualizzazione - FLOSS
 
SSH base - Configurazione di sistema da terminale
 SSH base - Configurazione di sistema da terminale SSH base - Configurazione di sistema da terminale
SSH base - Configurazione di sistema da terminale
 
PostgreSQL: Prima configurazione
PostgreSQL: Prima configurazionePostgreSQL: Prima configurazione
PostgreSQL: Prima configurazione
 
Ap Camp 2011
Ap Camp 2011Ap Camp 2011
Ap Camp 2011
 
Readme i
Readme iReadme i
Readme i
 
PostgreSQL: Point in time recovery
PostgreSQL: Point in time recoveryPostgreSQL: Point in time recovery
PostgreSQL: Point in time recovery
 
Lezione corso Base GNU/Linux
Lezione corso Base GNU/LinuxLezione corso Base GNU/Linux
Lezione corso Base GNU/Linux
 
Circolo Izquierda: Anatomia Sistema Linux
Circolo Izquierda: Anatomia Sistema LinuxCircolo Izquierda: Anatomia Sistema Linux
Circolo Izquierda: Anatomia Sistema Linux
 
Sistemi Operativi: Struttura - Lezione 04
Sistemi Operativi: Struttura - Lezione 04Sistemi Operativi: Struttura - Lezione 04
Sistemi Operativi: Struttura - Lezione 04
 
Nslu2 how to unslung
Nslu2 how to unslungNslu2 how to unslung
Nslu2 how to unslung
 
TuxIsAlive
TuxIsAliveTuxIsAlive
TuxIsAlive
 
Compilazione Kernel
Compilazione KernelCompilazione Kernel
Compilazione Kernel
 
MontelLUG - Conferenze 2007 - Introduzione a RSync
MontelLUG - Conferenze 2007 - Introduzione a RSyncMontelLUG - Conferenze 2007 - Introduzione a RSync
MontelLUG - Conferenze 2007 - Introduzione a RSync
 
Anatomia di una distribuzione GNU/Linux
Anatomia di una distribuzione GNU/LinuxAnatomia di una distribuzione GNU/Linux
Anatomia di una distribuzione GNU/Linux
 

Andere mochten auch

Cradle-to-Cradle Design: creating healthy emissions — a strategy for eco-effe...
Cradle-to-Cradle Design: creating healthy emissions — a strategy for eco-effe...Cradle-to-Cradle Design: creating healthy emissions — a strategy for eco-effe...
Cradle-to-Cradle Design: creating healthy emissions — a strategy for eco-effe...Valter Wei
 
WhyMCA HappyHour - EUHackathon Part II
WhyMCA HappyHour - EUHackathon Part IIWhyMCA HappyHour - EUHackathon Part II
WhyMCA HappyHour - EUHackathon Part IIAlessandro Manfredi
 
LUG - Logical volumes management
LUG - Logical volumes managementLUG - Logical volumes management
LUG - Logical volumes managementAlessandro Manfredi
 
Hey Cloud, it’s the user calling, he says he wants the security back
Hey Cloud, it’s the user calling, he says he wants the security backHey Cloud, it’s the user calling, he says he wants the security back
Hey Cloud, it’s the user calling, he says he wants the security backAlessandro Manfredi
 
Cradle To Cradle
Cradle To CradleCradle To Cradle
Cradle To Cradlescorpio86
 
UCLAx Cradle to Cradle: class 12
UCLAx Cradle to Cradle: class 12UCLAx Cradle to Cradle: class 12
UCLAx Cradle to Cradle: class 12Kevin ODonnell
 
Webinar: There And Back Again: The Principles of Cradle to Cradle
Webinar: There And Back Again: The Principles of Cradle to CradleWebinar: There And Back Again: The Principles of Cradle to Cradle
Webinar: There And Back Again: The Principles of Cradle to CradleSustainable Performance Institute
 

Andere mochten auch (9)

Cradle-to-Cradle Design: creating healthy emissions — a strategy for eco-effe...
Cradle-to-Cradle Design: creating healthy emissions — a strategy for eco-effe...Cradle-to-Cradle Design: creating healthy emissions — a strategy for eco-effe...
Cradle-to-Cradle Design: creating healthy emissions — a strategy for eco-effe...
 
WhyMCA HappyHour - EUHackathon Part II
WhyMCA HappyHour - EUHackathon Part IIWhyMCA HappyHour - EUHackathon Part II
WhyMCA HappyHour - EUHackathon Part II
 
LUG - Logical volumes management
LUG - Logical volumes managementLUG - Logical volumes management
LUG - Logical volumes management
 
LUG - Install Fest 2008
LUG - Install Fest 2008LUG - Install Fest 2008
LUG - Install Fest 2008
 
Hey Cloud, it’s the user calling, he says he wants the security back
Hey Cloud, it’s the user calling, he says he wants the security backHey Cloud, it’s the user calling, he says he wants the security back
Hey Cloud, it’s the user calling, he says he wants the security back
 
Connect (4|n)
Connect (4|n)Connect (4|n)
Connect (4|n)
 
Cradle To Cradle
Cradle To CradleCradle To Cradle
Cradle To Cradle
 
UCLAx Cradle to Cradle: class 12
UCLAx Cradle to Cradle: class 12UCLAx Cradle to Cradle: class 12
UCLAx Cradle to Cradle: class 12
 
Webinar: There And Back Again: The Principles of Cradle to Cradle
Webinar: There And Back Again: The Principles of Cradle to CradleWebinar: There And Back Again: The Principles of Cradle to Cradle
Webinar: There And Back Again: The Principles of Cradle to Cradle
 

Ähnlich wie LUG - Ricompilazione kernel

Installazione di koha_su_debian_v2_0_20_12_2014
Installazione di koha_su_debian_v2_0_20_12_2014Installazione di koha_su_debian_v2_0_20_12_2014
Installazione di koha_su_debian_v2_0_20_12_2014Joaquim Hangalo
 
PIT2012: Workshop@UniNA - Compilazione del Kernel Linux
PIT2012: Workshop@UniNA - Compilazione del Kernel LinuxPIT2012: Workshop@UniNA - Compilazione del Kernel Linux
PIT2012: Workshop@UniNA - Compilazione del Kernel LinuxMarco Ferrigno
 
Installazione Linux
Installazione LinuxInstallazione Linux
Installazione Linuxarock84
 
Lug Roma3 Corso Linux Base
Lug Roma3   Corso Linux BaseLug Roma3   Corso Linux Base
Lug Roma3 Corso Linux Basefosk
 
Guida alla modifica del dsdt 1a parte - le basi
Guida alla modifica del dsdt   1a parte - le basiGuida alla modifica del dsdt   1a parte - le basi
Guida alla modifica del dsdt 1a parte - le basiguest1842a5
 
Pacchi e pacchetti
Pacchi e pacchettiPacchi e pacchetti
Pacchi e pacchettigiallu
 
E va bene, passo a Linux. Da dove inizio?
E va bene, passo a Linux. Da dove inizio?E va bene, passo a Linux. Da dove inizio?
E va bene, passo a Linux. Da dove inizio?Daniele Albrizio
 
ArduinoDay17 - Creazione di un piccolo supercomputer con Raspberry PI per cal...
ArduinoDay17 - Creazione di un piccolo supercomputer con Raspberry PI per cal...ArduinoDay17 - Creazione di un piccolo supercomputer con Raspberry PI per cal...
ArduinoDay17 - Creazione di un piccolo supercomputer con Raspberry PI per cal...Marco Cavallini
 
Understanding Linux
Understanding LinuxUnderstanding Linux
Understanding LinuxNaLUG
 
Software libero nei sistemi embedded
Software libero nei sistemi embeddedSoftware libero nei sistemi embedded
Software libero nei sistemi embeddedDaniele Costarella
 
Raspberry pi per tutti (workshop presso Warehouse Coworking Pesaro)
Raspberry pi per tutti (workshop presso Warehouse Coworking Pesaro)Raspberry pi per tutti (workshop presso Warehouse Coworking Pesaro)
Raspberry pi per tutti (workshop presso Warehouse Coworking Pesaro)Gabriele Guizzardi
 
Introduzione User Mode Linux
Introduzione User Mode LinuxIntroduzione User Mode Linux
Introduzione User Mode LinuxMajong DevJfu
 
Linux Device Drivers
Linux Device DriversLinux Device Drivers
Linux Device DriversFabio Nisci
 
Trace32 lo-strumento-piu-completo-per-il-debug-di-un-sistema-linux
Trace32 lo-strumento-piu-completo-per-il-debug-di-un-sistema-linuxTrace32 lo-strumento-piu-completo-per-il-debug-di-un-sistema-linux
Trace32 lo-strumento-piu-completo-per-il-debug-di-un-sistema-linuxDeveler S.r.l.
 

Ähnlich wie LUG - Ricompilazione kernel (20)

Installazione di koha_su_debian_v2_0_20_12_2014
Installazione di koha_su_debian_v2_0_20_12_2014Installazione di koha_su_debian_v2_0_20_12_2014
Installazione di koha_su_debian_v2_0_20_12_2014
 
PIT2012: Workshop@UniNA - Compilazione del Kernel Linux
PIT2012: Workshop@UniNA - Compilazione del Kernel LinuxPIT2012: Workshop@UniNA - Compilazione del Kernel Linux
PIT2012: Workshop@UniNA - Compilazione del Kernel Linux
 
APT per RPM
APT per RPMAPT per RPM
APT per RPM
 
Installazione Linux
Installazione LinuxInstallazione Linux
Installazione Linux
 
Corso linux base
Corso linux baseCorso linux base
Corso linux base
 
Lug Roma3 Corso Linux Base
Lug Roma3   Corso Linux BaseLug Roma3   Corso Linux Base
Lug Roma3 Corso Linux Base
 
Sistema Operativo - LInux - Modulo 2.1
Sistema Operativo - LInux - Modulo 2.1Sistema Operativo - LInux - Modulo 2.1
Sistema Operativo - LInux - Modulo 2.1
 
Guida alla modifica del dsdt 1a parte - le basi
Guida alla modifica del dsdt   1a parte - le basiGuida alla modifica del dsdt   1a parte - le basi
Guida alla modifica del dsdt 1a parte - le basi
 
Pacchi e pacchetti
Pacchi e pacchettiPacchi e pacchetti
Pacchi e pacchetti
 
Openmoko
OpenmokoOpenmoko
Openmoko
 
debian gnu linux
debian gnu linuxdebian gnu linux
debian gnu linux
 
E va bene, passo a Linux. Da dove inizio?
E va bene, passo a Linux. Da dove inizio?E va bene, passo a Linux. Da dove inizio?
E va bene, passo a Linux. Da dove inizio?
 
ArduinoDay17 - Creazione di un piccolo supercomputer con Raspberry PI per cal...
ArduinoDay17 - Creazione di un piccolo supercomputer con Raspberry PI per cal...ArduinoDay17 - Creazione di un piccolo supercomputer con Raspberry PI per cal...
ArduinoDay17 - Creazione di un piccolo supercomputer con Raspberry PI per cal...
 
Understanding Linux
Understanding LinuxUnderstanding Linux
Understanding Linux
 
Software libero nei sistemi embedded
Software libero nei sistemi embeddedSoftware libero nei sistemi embedded
Software libero nei sistemi embedded
 
Raspberry pi per tutti (workshop presso Warehouse Coworking Pesaro)
Raspberry pi per tutti (workshop presso Warehouse Coworking Pesaro)Raspberry pi per tutti (workshop presso Warehouse Coworking Pesaro)
Raspberry pi per tutti (workshop presso Warehouse Coworking Pesaro)
 
Introduzione User Mode Linux
Introduzione User Mode LinuxIntroduzione User Mode Linux
Introduzione User Mode Linux
 
LTSP
LTSPLTSP
LTSP
 
Linux Device Drivers
Linux Device DriversLinux Device Drivers
Linux Device Drivers
 
Trace32 lo-strumento-piu-completo-per-il-debug-di-un-sistema-linux
Trace32 lo-strumento-piu-completo-per-il-debug-di-un-sistema-linuxTrace32 lo-strumento-piu-completo-per-il-debug-di-un-sistema-linux
Trace32 lo-strumento-piu-completo-per-il-debug-di-un-sistema-linux
 

LUG - Ricompilazione kernel

  • 1. www.lugroma3.org (Ri)Compilazione del Kernel Alessandro Manfredi
  • 2. Il kernel, questo sconosciuto
  • 4. E se volessi darci un'occhiata ? • SCI / PM -> /usr/src/linux/kernel • IPC -> /usr/src/linux/ipc • Arch dependent code -> /usr/src/linux/arch • MM -> /usr/src/linux/mm • VFS & FS -> /usr/src/linux/fs • Network stack -> /usr/src/linux/net • DD -> /usr/src/linux/drivers * • BSP (Board Support Package ) -> /usr/src/linux/arch
  • 5. (Ri)Compilazione : i sorgenti • Tramite packet manager • Scaricandoli da www.kernel.org • Posti in /usr/src/linux-<versione>-<release> /usr/src/linux -> /usr/src/linux-<versione>-<release> • Per consuetudine # chown -R root:src /usr/src/ # chmod -R g+w /usr/src/* # adduser <you> src
  • 6. Configurazione iniziale • Se si vuole partire dalla configurazione attuale del kernel si copi il file di configurazione attuale ( /boot/config<version> ) in /usr/src/linux/.config • Possono essere necessari i pacchetti fakeroot e libncurses5-dev • Si accede all'interfaccia di configurazione tramite [you@/usr/src/linux/] # make menuconfig • !!! Se il kernel che ci si appresta a configurare è di una versione LEGGERMENTE diversa rispetto a quella per la quale è scritto il config si usi prima # make oldconfig
  • 7.
  • 8. Un kernel 'snello' • I kernel standard contengono il supporto per consentire il funzionamento del maggior numero di piattaforme • Tutto e solo il supporto per il proprio hardware ? • Device drivers check pages es. http://kmuto.jp/debian/hcl/ ( il risultato è affidabile se la Device Map è la stessa )
  • 9. (Ri)Compilazione • Standard : # make && make modules_install – E per “installarlo” ? – Il bootloader deve sapere quale kernel caricare • Debian way: # fakeroot make-kpkg --append-to-version -nomepersonalizzato --revision=1 kernel_image – Crea un paccketto kernel-<versione>-nomepersonalizzato.<arch>.deb – Può essere installato con # dpkg -i kernel-<versione>-...etc.etc. – Se si usa LILO come bootloader va aggiornato il MBR # lilo -v – Se non è la prima volta, prima di tutto # make-kpkg clean
  • 10. E I moduli ? • lsmod • modprobe / insmod • rmmod Per caricare moduli all'avvio ? • /etc/modules • /etc/modules.autoload.d/kernel-<version>
  • 11. initrd || !initrd ? • Risposta breve : !initrd • Risposta meno breve : L'initial RAM Disk è un filesystem minimale temporaneo montato al boot che contiene drivers ed eseguibili (es. Insmod) necessari al mount del filesystem radice vero e proprio. Una volta montato il filesystem radice reale, viene smontato l'initrd e liberata la memoria occupata. In molti sistemi embedded l'initrd è proprio il filesystem radice. Nei sistemi di uso comune l'uso dell'initrd permette di non compilare all'interno del kernel tutti i supporti per tutti i possibili tipi di filesystem. Se il supporto per il filesystem radice è incluso nel kernel, non occorre necessariamente un initrd.
  • 12. KSplice • Applicare patch al kernel senza bisogno di riavviare il sistema – “automatizzato” solo se le patch non introducono cambiamenti semantici nelle strutture dati ( es. 84% delle patch di sicurezza da maggio 2005 a dicembre 2007 ) – Implementato (al momento) solo per x86-32 e x86-64 – Solo per kernel 2.6.x – Testato su kernel da 2.6.8 a 2.6.25, su distro Debian, Ubuntu, RHEL, Gentoo. • Può essere più pericoloso che utile ?
  • 14. Online References www.kernel.org Kerneltrap http://kerneltrap.org/ Wikipedia http://en.wikipedia.org/wiki/Kernel_(computer_science) Anatomy of the Linux kernel http://www.ibm.com/developerworks/linux/library/l-linux-kernel/ Debian Kernel Howto http://guide.debianizzati.org/index.php/Debian_Kernel_Howto Linux initial RAM disk (initrd) overview http://www.ibm.com/developerworks/linux/library/l-initrd.html Debian device driver check page http://kmuto.jp/debian/hcl/