Gentoo Logo

[ << ] [ < ] [ Home ] [ > ] [ >> ]


7. Configurazione del Kernel

Indice:

7.a. Fuso Orario (Timezone)

Innanzitutto è necessario selezionare il proprio fuso orario (timezone), in modo che il sistema riconosca in che parte del globo è collocato. Individuare il proprio fuso orario in /usr/share/zoneinfo, dopodichè copiarlo in /etc/localtime. Si sconsiglia di utilizzare i fusi orari del tipo /usr/share/zoneinfo/Etc/GMT* poichè i loro nomi non indicano le zone che ci si aspetterebbe. Per esempio GMT-8 indica GMT+8.

Codice 1.1: Abilitare le informazioni sul fuso orario (timezone)

# ls /usr/share/zoneinfo
(Per esempio Europe/Rome:)
# cp /usr/share/zoneinfo/Europe/Rome /etc/localtime
(Poi impostare il fuso orario)
# echo "Europe/Rome" > /etc/timezone

7.b. Installare i sorgenti

Scegliere un Kernel

Il cuore, intorno al quale sono sviluppate tutte le distribuzioni, è il Kernel di Linux. E' la parte di software compresa tra i programmi e l'hardware. Gentoo dà la possibilità ai suoi utenti di scegliere tra diversi sorgenti del kernel. Una lista completa delle descrizioni dei kernel disponibili, è consultabile nella Guida ai Kernel Gentoo.

Per i sistemi basati su SPARC sono disponibili i gentoo-sources (sorgenti del kernel che includono patch per caratteristiche aggiuntive).

Scegliere i propri sorgenti del kernel più adatti alle proprie esigenze ed installarli tramite emerge.

Codice 2.1: Installare un sorgente del kernel

# emerge gentoo-sources

Se si dà un'occhiata a /usr/src, si dovrebbe vedere un link simbolico chiamato linux, che punta al sorgente del kernel. In questo caso il sorgente del kernel installato punta a linux-3.3.8, ma ricordarsi che la versione potrebbe essere diversa:

Codice 2.2: Il link simbolico al codice sorgente del kernel

# ls -l /usr/src/linux
lrwxrwxrwx    1 root     root       12 Oct 13 11:04 /usr/src/linux -> linux-3.3.8

Ora si procede a configurare e compilare il sorgente del kernel.

7.c. Configurazione manuale

Introduzione

La configurazione manuale del kernel è spesso considerata la parte più difficile che ogni utente Linux incontra. Non è assolutamente vero: dopo aver configurato un po' di kernel, l'operazione risulta semplice.

Una cosa è però vera: si deve conoscere il proprio sistema quando si comincia una configurazione manuale del kernel. La maggior parte delle informazioni può essere raccolta installando pciutils (emerge pciutils) che contiene lspci. Si potrà usare lspci con l'ambiente in cui si è effettuato il chroot. Si possono ignorare gli errori pcilib (come pcilib: cannot open /sys/bus/pci/devices). E' possibile anche eseguire lspci da un ambiente in cui non si è effettuato il chroot, in quanto i risultati sono gli stessi. Si può anche eseguire lsmod per vedere che moduli del kernel usa il CD di installazione (potrebbe fornire un buon suggerimento su cosa abilitare).

Andare nella directory del sorgente del kernel, e digitare make menuconfig per visualizzare un menu di configurazione basato su ncurses.

Codice 3.1: Aprire menuconfig

# cd /usr/src/linux
# make menuconfig

Vengono visualizzate molte sezioni di configurazione. Ecco ora alcune opzioni che devono essere attivate (altrimenti Gentoo non può funzionare, o non funziona correttamente senza modifiche aggiuntive).

Attivare le opzioni indispensabili

Per iniziare, occorre impostare le proprie opzioni di cross compiling (NdT, compilazione incrociata) per essere sicuri che il kernel Linux sia compilato per il corretto tipo di sistema. Per farlo, impostare il Cross-compiler tool prefix a sparc64-unknown-linux-gnu- (compreso il trattino finale):

Codice 3.2: Identificare la piattaforma di cross compiling appropriata

General setup --->
  (sparc64-unknown-linux-gnu-) Cross-compiler tool prefix

Poi andare su File Systems e selezionare il supporto per i filesystem utilizzati. Non compilare tali supporti come moduli, altrimenti Gentoo non può montare le partizioni. Selezionare anche Virtual memory e /proc file system.

Codice 3.3: Selezionare il filesystem

File systems --->
  Pseudo Filesystems --->
    [*] /proc file system support
    [*] Virtual memory file system support (former shm fs)

(Selezionare una o più delle seguenti opzioni necessarie per il proprio sistema)
  <*> Ext3 journalling file system support
  <*> Second extended fs support

Se si sta usando PPPoE per connettersi a Internet o si sta usando un modem dial-up, si ha bisogno delle seguenti opzioni nel kernel:

Codice 3.4: Selezionare i driver necessari per PPPoE

Device Drivers --->
  Network device support --->
    <*> PPP (point-to-point protocol) support
    <*>   PPP support for async serial ports
    <*>   PPP support for sync tty ports

Le due opzioni di compressione non sono dannose, ma neppure necessarie; lo stesso vale per PPP over Ethernet, che potrebbe essere usata soltanto da ppp se configurato in modalità kernel.

Attivare il corretto supporto bus:

Codice 3.5: Attivare SBUS/UPA

Console drivers --->
  Frame-buffer support --->
    [*] SBUS and UPA framebuffers
      [*] Creator/Creator3D support     (Solo per UPA slot adapter usato in molti Ultras)
    [*] CGsix (GX,TurboGX) support      (Solo per SBUS slot adapter usato in molte SPARCStations)

Attivare il supporto per OBP:

Codice 3.6: Attivare il supporto per OBP

Misc Linux/SPARC drivers --->
  [*]  /dev/openprom device support

Si avrà bisogno anche del supporto specifico per SCSI:

Codice 3.7: Attivare il supporto specifico per SCSI

SCSI support --->
  SCSI low-level drivers --->
    <*> Sparc ESP Scsi Driver             (Solo per SPARC ESP on-board SCSI adapter)
    <*> PTI Qlogic, ISP Driver            (Solo per SBUS SCSI controllers da PTI o QLogic)
    <*> SYM53C8XX Version 2 SCSI support  (Solo per Ultra 60 on-board SCSI adapter)

Per il supporto per la propria scheda di rete, selezionare una delle seguenti opzioni:

Codice 3.8: Attivare il supporto di rete

Network device support --->
  Ethernet (10 or 100Mbit) --->
    <*> Sun LANCE support                   (Solo per SPARCStation, vecchi sistemi Ultra, e come opzione Sbus)
    <*> Sun Happy Meal 10/100baseT support  (Solo per Ultra; supporti "qfe" quad-ethernet su PCI e Sbus)
    <*> DECchip Tulip (dc21x4x) PCI support (Per alcuni Netras, come N1)
  Ethernet (1000Mbit) --->
    <*> Broadcom Tigon3 support (Modern Netra, macchine Sun Fire)

Quando si ha una macchina 4-port Ethernet (10/100 or 10/100/1000) l'ordine delle porte è differente da quello usato da Solaris. Si può usare sys-apps/ethtool per controllare lo stato del collegamento delle porte.

Se si sta utilizzando un controller dei dischi del tipo qla2xxx, bisogna usare un kernel versione 2.6.27 o più recente, inoltre bisogna installare sys-block/qla-fc-firmware. Dopodichè eseguire make menuconfig e navigare il menù fino alla sezione Device Drivers. Sarà necessario aggiungere il supporto per il caricamento di firmware esterni.

Codice 3.9: Abilitare il supporto a firmware esterni

Device Drivers  --->
   Generic Driver Options  --->
   ()  External firmware blobs to build into the kernel binary
   ()  Firmware blobs root directory

Impostare "External firmware blobs" a ql2200_fw.bin e "Firmware blobs root directory" a /lib/firmware.

Una volta terminata la configurazione del kernel continuare con Compilazione e Installazione. Dopo la compilazione del kernel, si può controllare la sua dimensione:

Codice 3.10: Controllare la dimensione del kernel

# ls -lh vmlinux
-rw-r--r--    1 root     root         2.4M Oct 25 14:38 vmlinux

Se la dimensione (non compressa) è più grande di 7.5 MB, riconfigurare il kernel fino a quando non rientri sotto questi limiti. Un modo per ottenerlo, è quello di compilare come moduli la maggior parte dei driver del kernel. Ignorando questo aspetto si potrà avere un kernel non avviabile.

Se il kernel è di poco più grande, si può usare il comando strip:

Codice 3.11: Stripping del kernel

# strip -R .comment -R .note vmlinux

Compilazione e Installazione

Ora che il kernel è configurato, il prossimo passo sarà la sua compilazione e la sua installazione. Uscire dal menu di configurazione e avviare il processo di compilazione:

Codice 3.12: Compilare il kernel

# make && make modules_install

Quando la compilazione è finita, è necessario copiare l'immagine del kernel in /boot.

Codice 3.13: Installare il kernel

# cp arch/sparc/boot/image /boot/kernel-3.3.8-gentoo

7.d. Moduli del Kernel

Configurare i moduli

Si dovrebbero inserire i moduli che si vogliono caricare in /etc/conf.d/modules. Se si vuole, si possono anche aggiungere altre opzioni ai moduli.

Per vedere tutti i moduli disponibili, eseguire il comando find. Non dimenticarsi di sostituire "<versione kernel>" con la versione del kernel appena compilato:

Codice 4.1: Vedere tutti i moduli disponibili

# find /lib/modules/<kernel version>/ -type f -iname '*.o' -or -iname '*.ko'|less

Per esempio, per caricare automaticamente il modulo 3c59x.ko (che è il driver per per una famiglia specifica di schede di rete 3Com), modificare il file /etc/conf.d/modules inserirendovi il nome del modulo stesso.

Codice 4.2: /etc/conf.d/modules

# nano -w /etc/conf.d/modules
modules_2_6="3c59x"

Continuare l'installazione con la Configurazione del sistema.


[ << ] [ < ] [ Home ] [ > ] [ >> ]


Stampa

Visualizza tutto

Aggiornato il 11 settembre 2012

La versione originale di questo documento è più recente ed è stata aggiornata il 17 dicembre 2013

Oggetto: Il kernel di Linux è il cuore di ogni distribuzione. Il capitolo tratta della configurazione del Kernel.

Sven Vermeulen
Autore

Grant Goodyear
Autore

Roy Marples
Autore

Daniel Robbins
Autore

Chris Houser
Autore

Jerry Alexandratos
Autore

Seemant Kulleen
Sviluppo x86

Tavis Ormandy
Sviluppo Alpha

Jason Huebel
Sviluppo AMD64

Guy Martin
Sviluppo HPPA

Pieter Van den Abeele
Sviluppo PPC

Joe Kallar
Sviluppo SPARC

John P. Davis
Redazione

Pierre-Henri Jondot
Redazione

Eric Stockbridge
Redazione

Rajiv Manglani
Redazione

Jungmin Seo
Redazione

Stoyan Zhekov
Redazione

Jared Hudson
Redazione

Colin Morey
Redazione

Jorge Paulo
Redazione

Carl Anderson
Redazione

Jon Portnoy
Redazione

Zack Gilburd
Redazione

Jack Morgan
Redazione

Benny Chuang
Redazione

Erwin
Redazione

Joshua Kinard
Redazione

Tobias Scherbaum
Redazione

Xavier Neys
Redazione

Joshua Saddler
Redazione

Gerald J. Normandin Jr.
Revisione

Donnie Berkholz
Revisione

Ken Nowack
Revisione

Lars Weiler
Contributi

Marco Mascherpa
Traduzione

Stefano Pacella
Traduzione

Enrico Morelli
Traduzione

Davide Cendron
Traduzione

Sergio Vaccaro
Traduzione

Donate to support our development efforts.

Copyright 2001-2014 Gentoo Foundation, Inc. Questions, Comments? Contact us.