Indice
È bene che l'amministratore di sistema conosca almeno a grandi linee come viene avviato e configurato il sistema Debian. Anche se i dettagli precisi sono nei file sorgenti dei pacchetti installati e nella loro documentazione, essi sono un po' troppo per la maggior parte degli utenti.
Ho cercato di fornire una veloce panoramica dei punti chiave del sistema Debian e della loro configurazione, come punto di riferimento per l'utente, in base alle conoscenze attuali e passate mie e di altri. Dato che il sistema Debian è in costante evoluzione, la situazione potrebbe essere cambiata. Prima di fare qualsiasi modifica al sistema, si dovrebbe far riferimento alla documentazione più recente per ciascun pacchetto.
Avvertimento | |
---|---|
Questo capito sta diventando non aggiornato dato che è basato su Debian 7.0
( |
Il sistema del computer passa attraverso varie fasi del processo di avvio, dall'accensione a quando offre all'utente il sistema operativo (SO) pienamente funzionante.
Per semplicità la spiegazione è limitata alla piattaforma PC tipica con l'installazione standard.
Il normale processo di avvio è come un razzo a quattro stadi. Ogni stadio del razzo passa il controllo del sistema allo stadio successivo.
Naturalmente questo può essere configurato in modo diverso. Per esempio, se è stato compilato un kernel personalizzato, si potrebbe saltare la fase con il mini-sistema Debian. Non dare per scontato che quanto detto valga per il proprio sistema fino a che non si abbia controllato direttamente.
Nota | |
---|---|
Per piattaforme PC non sorpassate, come il sistema SUN o Macintosh, il BIOS nella ROM e la partizione sul disco possono essere alquanto differenti (Sezione 9.5.2, «Configurazione del partizionamento dei dischi»). In questi casi, cercare la documentazione piattaforma specifica altrove. |
Il BIOS è il primo stadio del processo di avvio che viene avviato dall'accensione. Il BIOS, che risiede nella ROM (read only memory, memoria in sola lettura) è eseguito da un particolare indirizzo di memoria al quale è inizializzato, dall'accensione, il contatore di programma della CPU.
Il BIOS effettua l'inizializzazione base dell'hardware (POST (power on self test, auto-test di accensione) e passa il controllo del sistema allo stadio successivo fornito dall'utente. Il BIOS è di solito fornito con l'hardware.
La schermata di avvio del BIOS indica solitamente quale tasto o tasti premere per entrare nella schermata di impostazioni del BIOS, per configurarne il comportamento. Tasti comunemente usati sono F1, F2, F10, Esc, Ins e Canc. Se la schermata di avvio del BIOS è nascosta da una bella schermata grafica, si può premere dei tasti, come Esc, per disabilitarla. Quali tasti vadano premuti dipende fortemente dall'hardware.
Dalla schermata di impostazioni del BIOS si può scegliere la posizione hardware e la priorità del codice avviato dal BIOS. Tipicamente vengono caricati in memoria i primi pochi settori del primo dispositivo selezionato trovato (disco fisso, dischetto floppy, CD-ROM, ...) e viene eseguito questo codice iniziale che può essere una qualsiasi tra le cose seguenti.
Il codice del bootloader
Il codice del kernel di SO di passaggio come FreeDOS
Il codice del kernel del sistema operativo finale, se può essere contenuto in questo piccolo spazio
Tipicamente il sistema viene avviato dalla partizione specificata del disco fisso primario. I primi 2 settori del disco fisso nei PC vecchi contengono ilmaster boot record (MBR). Le informazioni sulle partizioni del disco, inclusa la selezione per l'avvio sono memorizzate alla fine di questo MBR. Il primo codice boot loader eseguito dal BIOS occupa la parte restante di questo MBR.
Il bootloader è il secondo stadio del processo di avvio che è iniziato dal BIOS. Carica l'immagine kernel del sistema e l'immagine initrd in memoria e passa il controllo ad essi. L'immagine initrd è l'immagine del file system radice ed il suo supporto dipende dal bootloader usato.
Il sistema Debian normalmente usa il kernel Linux come kernel predefinito del sistema. L'immagine initrd dell'attuale kernel Linux 2.6/3.x è tecnicamente l'immagine initramfs (initial RAM filesystem). Questa è un archivio cpio compresso con gzip dei file nel filesystem root.
Avvertimento | |
---|---|
Quanto sopra non è più vero con il nuovo initramfs multi-segmento. Vedere il bug n. 790100. |
L'installazione predefinita del sistema Debian posiziona, per la piattaforma PC, il codice di primo stadio del bootloader GRUB nell'MBR. Sono disponibili molti bootloader e opzioni di configurazione.
Tabella 3.1. Elenco di bootloader
pacchetto | popcon | dimensione | initrd | bootloader | descrizione |
---|---|---|---|---|---|
grub-legacy | V:0, I:2 | 710 | Supportato | GRUB Legacy | Intelligente abbastanza da capire partizioni su disco e filesystem come vfat, ext3, ... |
grub-pc | V:32, I:872 | 561 | Supportato | GRUB 2 | Intelligente abbastanza da capire partizioni su disco e filesystem come vfat, ext4, …. (predefinito) |
grub-rescue-pc | V:0, I:1 | 5239 | Supportato | GRUB 2 | È l'immagine di ripristino avviabile di GRUB 2 (CD e floppy) (versione PC/BIOS) |
lilo | V:0, I:4 | 694 | Supportato | Lilo | Si basa sulla posizione dei settori dei dati sul disco fisso. (Vecchio) |
syslinux | V:6, I:64 | 300 | Supportato | Isolinux | Capisce il filesystem ISO 9660. Usato dal CD di avvio. |
syslinux | V:6, I:64 | 300 | Supportato | Syslinux | Capisce il filesystem MSDOS (FAT). Usato dai dischetti floppy di avvio. |
loadlin | V:0, I:1 | 84 | Supportato | Loadlin | Il nuovo sistema viene avviato dal sistema FreeDOS/MSDOS. |
mbr | V:1, I:11 | 50 | Non supportato | MBR di Neil Turton | Software libero che sostituisce MBR MSDOS. Capisce solo le partizioni su disco. |
Avvertimento | |
---|---|
Non mettere mano ai bootloader senza aver creato supporti avviabili di
ripristino (CD o floppy) da immagini nel pacchetto
|
Per GRUB Legacy, il file di configurazione del menu è
"/boot/grub/menu.lst
". Contiene, per esempio, delle voci
come quella seguente.
title Debian GNU/Linux root (hd0,2) kernel /vmlinuz root=/dev/hda3 ro initrd /initrd.img
Per GRUB 2, il file di configurazione del menu è
"/boot/grub/grub.cfg
". Viene generato automaticamente da
"/usr/sbin/update-grub
" usando modelli da
"/etc/grub.d/*
" e impostazioni da
"/etc/default/grub
". Contiene, per esempio, delle voci
come quella seguente.
menuentry "Debian GNU/Linux" { set root=(hd0,3) linux /vmlinuz root=/dev/hda3 initrd /initrd.img }
Negli esempi precedenti i parametri di GRUB hanno i seguenti significati.
Tabella 3.2. Significato dei parametri di GRUB
parametro di GRUB | significato |
---|---|
root
|
usa la terza partizione sul primo disco fisso indicandola come
"(hd0,2) " in GRUB legacy o come
"(hd0,3) " in GRUB 2
|
kernel
|
usa il kernel che si trova in "/vmlinuz " con i parametri
"root=/dev/hda3 ro "
|
initrd
|
usa l'immagine initrd/initramfs che
si trova in "/initrd.img "
|
Nota | |
---|---|
Il valore per il numero di partizione usato dal programma GRUB Legacy è minore di uno rispetto a quello normale usato dal kernel Linux e dagli strumenti di utilità. il programma GRUB 2 ha risolto questo problema. |
Suggerimento | |
---|---|
Per identificare un particolare dispositivo a blocchi si può usare il suo
UUID (vedere Sezione 9.5.3, «Accedere alle partizioni usando UUID») invece del suo nome file come
" |
Suggerimento | |
---|---|
Se viene usato GRUB, il parametro di avvio del
kernel viene impostato in |
Suggerimento | |
---|---|
Si può avviare un bootloader da un altro bootloader usando una tecnica chiamata caricamento a catena. |
Vedere "info grub
" e
grub-install(8).
Il mini-sistema Debian è il terzo stadio del processo di avvio che viene iniziato dal bootloader. Esegue il kernel del sistema con il suo filesystem root in memoria. Questo è uno stadio opzionale preparatorio del processo di avvio.
Nota | |
---|---|
L'espressione "sistema Debian mini" è stata coniata per descrivere il terzo stadio del processo di avvio in questo documento. Normalmente ci si riferisce a questo sistema come sistema initrd o initramfs. Un sistema simile in memoria è usato dall'installatore Debian. |
Lo script "/init
" viene eseguito come primo programma in
questo filesystem root in memoria. È un programma script di shell che
inizializza il kernel in spazio utente e passa il controllo allo stadio
successivo. Questo mini-sistema Debian offre flessibilità al processo di
avvio, come la possibilità di aggiungere moduli del kernel prima del
processo di avvio principale o di montare il filesystem root come cifrato.
Si può interrompere questa parte del processo di avvio per ottenere una
shell di root fornendo il parametro di avvio per il kernel
"break=init
" etc. Vedere lo script
"/init
" per ulteriori condizioni di interruzione. Questo
ambiente shell è abbastanza sofisticato da fare una buona ispezione
dell'hardware della macchina.
I comandi disponibili in questo mini-sistema Debian sono versioni minimali e vengono principalmente forniti da uno strumento GNU chiamato busybox(1).
Attenzione | |
---|---|
È necessario usare l'opzione " |
Il sistema Debian normale è il quarto stadio del processo di avvio che viene iniziato dal mini-sistema Debian. Il kernel di sistema del mini-sistema Debian continua ad essere in esecuzione anche in questo ambiente. Il filesystem root viene cambiato da quello in memoria all'effettivo filesystem sul disco fisso.
Il programma init viene eseguito come primo
programma con PID=1 per effettuare il processo principale di avvio di far
partire molti programmi. Il percorso di file predefinito per il programma
init è «/sbin/init
», ma può essere cambiato con un
parametro di avvio del kernel come in
«init=/percorso/del/programma_init
».
Il programma init predefinito ha subito cambiamenti:
Prima di squeeze
Debian usava il semplice init in stile
SysV.
Debian wheezy
migliora l'init in stile SysV ordinando la
sequenza con intestazioni LSB e avviando gli script di avvio in parallelo.
Debian jessie
è passata come init predefinito a systemd per l'inizializzazione pilotata da eventi e
in parallelo.
Suggerimento | |
---|---|
Tutti i meccanismi di avvio sono compatibili grazie agli script
" |
Suggerimento | |
---|---|
Si può verificare quale è l'effettivo comando init nel proprio sistema con
il comando « |
Tabella 3.3. Elenco di utilità di avvio per il sistema Debian
pacchetto | popcon | dimensione | descrizione |
---|---|---|---|
initscripts
|
V:847, I:956 | 208 | script per inizializzare ed arrestare il sistema |
sysvinit-core
|
V:18, I:24 | 225 | utilità init(8) in stile System-V |
sysv-rc
|
V:847, I:956 | 123 | meccanismo di cambiamento del runlevel in stile System-V |
sysvinit-utils
|
V:875, I:999 | 110 | utilità in stile System-V (startpar(8), bootlogd(8), …) |
lsb-base
|
V:881, I:999 | 49 | funzionalità di script init Linux Standard Base 3.2 |
insserv
|
V:792, I:936 | 140 | strumento per organizzare la sequenza di avvio usando dipendenze LSB negli script init.d |
systemd
|
V:648, I:730 | 9334 |
demone
init(8)
basato su eventi per concorrenza (alternativa a sysvinit )
|
uswsusp
|
V:4, I:13 | 699 | strumenti per usare la sospensione software in spazio utente fornita da Linux |
kexec-tools
|
V:1, I:8 | 267 | strumento kexec per riavvii kexec(8) (riavvio a caldo) |
bootchart2
|
V:0, I:1 | 94 | analizzatore delle prestazioni del processo di avvio |
pybootchartgui
|
V:0, I:1 | 177 | analizzatore delle prestazioni del processo di avvio (visualizzazione) |
mingetty
|
V:0, I:3 | 35 | getty(8) solo console |
mgetty
|
V:0, I:1 | 302 | rimpiazzio di getty(8) per smart modem |
Suggerimento | |
---|---|
Vedere la pagina del Wiki Debian sulla velocizzazione del processo di avvio per i più recenti suggerimenti su come velocizzare il processo di avvio. |
Attenzione | |
---|---|
Il sistema Debian predefinito attuale non usa un init in stile SysV. Leggere altra documentazione per gli init moderni basati su systemd. Vedere The Debian Administrator's Handbook. |
Questa sezione descrive come il buon vecchio init in stile SysV avviava il sistema. Il sistema Debian non funziona esattamente come descritto qui, ma è piuttosto istruttivo sapere queste nozioni di base dato che i nuovi sistemi init tendono ad offrire funzionalità equivalenti.
Il processo di avvio in stile SysV essenzialmente passa attraverso le seguenti fasi.
Il sistema Debian va nel runlevel N
(None, nessuno) per inizializzare il sistema seguendo la descrizione
"/etc/inittab
".
Il sistema Debian va nel runlevel S per inizializzare il sistema in modalità singolo-utente per completare l'inizializzazione dell'hardware, ecc.
Il sistema Debian va in uno dei runlevel multiutente (da 2 a 5) specificato per avviare i servizi di sistema.
Il runlevel iniziale usato per la modalità multi-utente è specificato con il
parametro di avvio del kernel "init=
" o nella riga
"initdefault" del file "/etc/inittab
". Il sistema Debian,
nella configurazione predefinita, si avvia nel runlevel 2.
Tutti i file script effettivamente eseguiti dal sistema init sono contenuti
nella directory "/etc/init.d/
".
Vedere
init(8),
inittab(5)
e "/usr/share/doc/sysv-rc/README.runlevels.gz
" per la
spiegazione esatta.
Ogni runlevel usa una directory per la propria configurazione e ha un significato specifico come descritto nella tabella seguente.
Tabella 3.4. Elenco dei runlevel e descrizione del loro uso
runlevel | directory | descrizione dell'uso del runlevel |
---|---|---|
N
|
nessuna |
livello di avvio del sistema (NONE) (nessuna directory
"/etc/rcN.d/ ")
|
0
|
/etc/rc0.d/
|
arresta il sistema |
S
|
/etc/rcS.d/
|
modalità utente-singolo all'avvio (alias "s ")
|
1
|
/etc/rc1.d/
|
modalità utente-singolo dalla modalità multi-utente |
2
|
/etc/rc2.d/
|
modalità multi-utente |
3
|
/etc/rc3.d/
|
"" |
4
|
/etc/rc4.d/
|
"" |
5
|
/etc/rc5.d/
|
"" |
6
|
/etc/rc6.d/
|
riavvia il sistema |
7
|
/etc/rc7.d/
|
modalità multi-utente valida ma normalmente non usata |
8
|
/etc/rc8.d/
|
"" |
9
|
/etc/rc9.d/
|
"" |
Si può cambiare il runlevel dalla console, per esempio a 4, nel modo seguente.
$ sudo telinit 4
Attenzione | |
---|---|
Il sistema Debian non assegna nessuna differenza significativa airunlevel compresi tra 2 e 5. L'amministratore di un sistema Debian può cambiare questa situazione. (Cioè Debian non è Red Hat Linux né Solaris di Sun Microsystems né HP-UX di Hewlett Packard né AIX di IBM, né …) |
Attenzione | |
---|---|
Il sistema Debian non popola le directory per i runlevel tra 7 e 9 durante l'installazione. Le varianti di Unix tradizionali non usano questi runlevel. |
Quando i comandi init(8) o telinit(8) vanno nel runlevel "<n>", il sistema fondamentalmente esegue gli script di inizializzazione nel modo seguente.
Gli script in "/etc/rc<n>.d/
il cui nome inizia con
una "K
" vengono eseguiti in ordine alfabetico con l'unico
argomento "stop
". (uccisione dei servizi)
Gli script in "/etc/rc<n>.d/
il cui nome inizia con
una "S
" vengono eseguiti in ordine alfabetico con l'unico
argomento "start
". (avvio dei servizi)
Per esempio, se in una directory di runlevel sono presenti i collegamenti
"S10sysklogd
" e "S20exim4
",
"S10sysklogd
", che è un collegamento simbolico a
"../init.d/sysklogd
", viene eseguito prima di
"S20exim4
", che è un collegamento simbolico a
"../init.d/exim4
".
Questo semplice sistema di inizializzazione sequenziale è il classico
sistema di avvio in stile System V ed è stato
usato fino al rilascio Lenny
di Debian.
Il sistema Debian recente è stato ottimizzato per eseguire invece gli script di inizializzazione in modo concorrente.
Il comando insserv(8) usa le informazioni di dipendenza dei pacchetti LSB e calcola le dipendenze tra tutti gli script.
Vedere "/usr/share/doc/insserv/README.Debian
".
Le informazioni di dipendenza dei pacchetti LSB definite nell'intestazione degli script init assicura la disponibilità delle risorse necessarie.
Annuncio dell'"Abilitazione dell'avvio parallelo come predefinito"
Avvertimento | |
---|---|
È sconsigliato fare qualsiasi cambiamento ai collegamenti simbolici in
" |
Per esempio, si può impostare il sistema dei runlevel in un modo che ricorda Red Hat Linux nel modo seguente.
init
avvia il sistema con runlevel=3 in modo predefinito.
init
non avvia
gdm3(1)
nei runlevel=(0,1,2,6).
init
avvia
gdm3(1)
nei runlevel=(3,4,5).
Si può ottenre questo modificando con un editor il file
"/etc/inittab
", per cambiare il runlevel di avvio, e
usando strumenti amichevoli di gestione dei runlevel come
sysv-rc-conf
o bum
, per modificare i
runlevel. Se si vuole invece usare solamente la riga di comando, si può
farlo nel modo seguente (dopo l'installazione standard del pacchetto
gdm3
e avendolo selezionato come display manager
prescelto).
# cd /etc/rc2.d ; mv S21gdm3 K21gdm3 # cd /etc ; perl -i -p -e 's/^id:.:/id:3:/' inittab
Notare che il file "/etc/X11/default-display-manager
"
viene controllato quando vengono avviati i demoni per display manager:
xdm
, gdm3
, sddm
e
wdm
.
Nota | |
---|---|
Si può sempre avviare X da qualsiasi shell in console con il comando startx(1). |
Il parametro predefinito per ciascun script init in
"/etc/init.d/
" è dato dal file corrispondente in
"/etc/default/
" che contiene solamente assegnazioni di variabili d'ambiente. Il
nome della directory è una scelta specifica di Debian. È grossomodo
l'equivalente della directory "/etc/sysconfig
" di Red Hat Linux e altre distribuzioni. Per
esempio, si può usare "/etc/default/cron
" per controllare
il funzionamento di "/etc/init.d/cron
".
Il file "/etc/default/rcS
" può essere usato per
personalizzare impostazioni standard dell'avvio per
motd(5),
sulogin(8),
ecc.
Se non si ottiene il comportamento voluto cambiando queste variabili, si possono modificare gli script init stessi. Questi sono file di configurazione modificabili dall'amministratore di sistema.
Il kernel gestisce il nome host del
sistema. Lo script init nel runlevel S, che è un collegamento simbolico a
"/etc/init.d/hostname.sh
" imposta il nome host del
sistema all'avvio (usando il comando hostname
) al nome
memorizzato in "/etc/hostname
". Questo file dovrebbe
contenere solamente il nome host del
sistema, non un nome di dominio pienamente qualificato.
Per visualizzare il nome host attuale eseguire hostname(1) senza alcun argomento.
Benché il filesystem root sia montato dal kernel quando viene avviato, gli altri filesystem sono montati nel runlevel S dagli scritp init seguenti.
"/etc/init.d/mountkernfs.sh
" per i filesystem del kernel
in "/proc
", "/sys
", ecc.
"/etc/init.d/mountdevsubfs.sh
" per i filesystem virtuali
in "/dev
"
"/etc/init.d/mountall.sh
" per i filesystem normali,
usando "/etc/fstab
"
"/etc/init.d/mountnfs.sh
" per i filesystem di rete,
usando using"/etc/fstab
"
Le opzioni usate per montare gli speciali file system del kernel (procfs,
sysfs e tmpfs per /proc
, /sys
,
/tmp
, /run
, ecc.) sono impostate in
"/etc/default/rcS
". Vedere
rcS(5).
Le opzioni usate per montare i file system normali dei dischi e di rete sono
impostate in "/etc/fstab
". Vedere Sezione 9.5.7, «Ottimizzare il file system con opzioni di mount».
Nota | |
---|---|
L'effettivo montaggio dei filesystem di rete attende l'avvio delle interfacce di rete. |
Avvertimento | |
---|---|
Dopo aver montato tutti i filesystem, i file temporanei in
" |
Le interfacce di rete sono inizializzate nel runlevel S dagli script init
che sono collegamenti simbolici a
"/etc/init.d/ifupdown-clean
" e
"/etc/init.d/ifupdown
". VedereCapitolo 5, Impostazione della rete per la loro configurazione.
Molti servizi di rete (vedere Capitolo 6, Applicazioni per la rete) sono
avviati nella modalità multi-utente direttamente, come processi demone,
all'avvio da script di init, per esempio,
"/etc/rc2.d/S20exim4
" (per RUNLEVEL=2) che è un
collegamento simbolico a "/etc/init.d/exim4
".
Alcuni servizi di rete possono essere avviati a richiesta, usando il super-server inetd
(o un
equivalente). inetd
viene avviato all'avvio da
"/etc/rc2.d/S20inetd
" (per RUNLEVEL=2) che è un
collegamento simbolico a
"/etc/init.d/inetd
". Fondamentalmente
inetd
permette ad un demone in esecuzione di invocarne
svariati altri, riducendo il carico sul sistema.
Quando al super-server
inetd
arriva una richiesta per un servizio, vengono
identificati il suo protocollo e il suo servizio cercandoli nei database in
"/etc/protocols
" e
"/etc/services
". inetd
quindi cerca un
servizio Internet normale nel database "/etc/inetd.conf
"
o un servizio basato su Open Network Computing Remote
Procedure Call (ONC RPC)/Sun RPC in
"/etc/rpc.conf
".
A volte, inetd
non avvia il servizio richiesto
direttamente, ma avvia il programma wrapper
TCP
tcpd(8),
con il nome di servizio richiesto, in "/etc/inetd.conf
",
come argomento. In questo caso, tcpd
esegue il programma
server appropriato dopo aver fatto la registrazione della richiesta e
qualche altro controllo addizionale usando
"/etc/hosts.deny
" e
"/etc/hosts.allow
".
Per la sicurezza del sistema è bene disabilitare più servizi di rete possibile. Vedere Sezione 4.6.4, «Limitare l'accesso ad alcuni servizi server».
Vedere
inetd(8),
inetd.conf(5),
protocols(5),
services(5),
tcpd(8),
hosts_access(5),
hosts_options(5),
rpcinfo(8),
portmap(8)
e "/usr/share/doc/portmap/portmapper.txt.gz
".
I messaggi di sistema possono essere personalizzati da
"/etc/default/rsyslog
" e
"/etc/rsyslog.conf
" sia per il file di registro sia per
la visualizzazione a schermo. Vedere
rsyslogd(8)
e
rsyslog.conf(5).
Vedere anche Sezione 9.2.2, «Analizzatori di registro».
I messaggi del kernel possono essere personalizzati da
"/etc/default/klogd
" sia per il file di registro sia per
la visualizzazione a schermo. Impostare "KLOGD='-c 3'
" in
tale file ed eseguire "/etc/init.d/klogd restart
". Vedere
klogd(8).
Si può cambiare direttamente il livello dei messaggi di errore mostrati con il comando seguente.
# dmesg -n3
Tabella 3.5. Elenco dei livelli di errore del kernel
valore del livello di errore | nome del livello di errore | significato |
---|---|---|
0 | KERN_EMERG | il sistema è inutilizzabile |
1 | KERN_ALERT | bisogna agire immediatamente |
2 | KERN_CRIT | condizione critica |
3 | KERN_ERR | condizione di errore |
4 | KERN_WARNING | condizione di avvertimento |
5 | KERN_NOTICE | condizione normale ma significativa |
6 | KERN_INFO | messaggio informativo |
7 | KERN_DEBUG | messaggio a livello di debug |
Per i kernel Linux 2.6 e successivi, il sistema udev fornisce un meccanismo di rilevazione e inizializzazione automatiche dell'hardware (vedere udev(7)). Per ogni dispositivo rilevato dal kernel, il sistema udev avvia un processo utente che usa le informazioni del filesystem sysfs (vedere Sezione 1.2.12, «procfs e sysfs»), carica, usando modprobe(8) (vedere Sezione 3.3.1, «L'inizializzazione dei moduli del kernel»), i moduli del kernel necessari per il supporto del dispositivo e crea i nodi di device corrispondenti.
Suggerimento | |
---|---|
Se, per una qualche ragione
" |
Il nome dei nodi di device può essere configurato dai file di regole di udev
in "/etc/udev/rules.d/
". Le regole predefinite attuali
tendono a creare nomi generati dinamicamente che hanno come risultato nomi
di device non fissi, tranne che per dispositivi CD e di rete. Aggiungendo le
proprie regole personalizzate, in modo simile a quelle per i dispositivi CD
e di rete, si possono creare nomi di device statici anche per altri
dispositivi, come chiavette USB. Vedere "Scrivere regole udev" o
"/usr/share/doc/udev/writing_udev_rules/index.html
".
Dato che il sistema udev è in qualche modo in costante evoluzione, in questo documento sono fornite informazioni base, lasciando i dettagli ad altra documentazione.
Suggerimento | |
---|---|
Per le regole di montaggio in " |
Il programma modprobe(8) permette di configurare il kernel Linux in esecuzione da processi utente, aggiungendo e rimuovendo moduli del kernel. Il sistema udev (vedere Sezione 3.3, «Il sistema udev») automatizza la sua invocazione per facilitare l'inizializzazione dei moduli del kernel.
Ci sono moduli non-hardware e speciali moduli con driver hardware, come
quelli elencati in seguito, che devono essere precaricati elencandoli nel
file "/etc/modules
" (vedere
modules(5)).
moduli TUN/TAP che forniscono device virtuali di rete Point-to-Point (TUN) e device virtuali di rete Ethernet (TAP),
moduli netfilter che forniscono funzionalità di firewall netfilter (iptables(8), Sezione 5.9, «Infrastruttura netfilter» e
moduli driver watchdog timer.
I file di configurazione per il programma
modprobe(8)
sono contenuti nella directory "/etc/modprobes.d/
", come
spiegato in
modprobe.conf(5).
(Se si desidera evitare l'autocaricamento di alcuni moduli del kernel,
considerare la loro aggiunta nella lista nera nel file
"/etc/modprobes.d/blacklist
".)
Il file "/lib/modules/<versione>/modules.dep
"
generato dal programma
depmod(8)
descrive le dipendenze dei moduli usate dal programma
modprobe(8).
Nota | |
---|---|
Se si hanno problemi di caricamento dei moduli all'avvio o con
modprobe(8),
" |
Il programma modinfo(8) mostra informazioni su un modulo del kernel Linux.
Il programma
lsmod(8)
formatta in un bel modo i contenuti di "/proc/modules
",
mostrando quali moduli del kernel siano attualmente caricati.
Suggerimento | |
---|---|
Si può identificare l'esatto hardware sul proprio sistema. Vedere Sezione 9.4.3, «Identificazione dell'hardware». |
Suggerimento | |
---|---|
Si può configurare l'hardware all'avvio per attivare le funzionalità dell'hardware desiderate. Vedere Sezione 9.4.4, «Configurazione dell'hardware». |
Suggerimento | |
---|---|
Si può probabilmente aggiungere il supporto per il proprio speciale dispositivo ricompilando il kernel. Vedere Sezione 9.9, «Il kernel». |