Indice Guide: differenze tra le versioni

Da Guide@Debianizzati.Org.
Vai alla navigazione Vai alla ricerca
m (→‎Condivisione risorse: inserita guida)
 
(568 versioni intermedie di 45 utenti non mostrate)
Riga 1: Riga 1:
''Torna all'indice: [[Linux Kernel in a Nutshell]]''
__NOTOC__
[[Image:Banner-buster.png|link=Installazione_Debian:_pagine_utili]]
<!-- ---------- RIQUADRO BANNER -------------- -->
<div class="riquadro_banner groupclear">
  <div class="col_float indice_guide">
    <h2 class="title_banner">Indice delle Guide</h2>
      <p>Di seguito troverete un indice parzialmente completo delle guide contenute su [[Guide@Debianizzati.Org:About|Wiki]].</p>
      <p>La totalità delle guide è disponibile nella lista delle '''[[Lista Categorie|categorie]]''' qua a destra.</p>
  </div>
  <div class="col_float lista_link">
* [[:Categoria:Conoscere Debian|Conoscere Debian]]
* [[:Categoria:Usare Debian|Usare Debian]]
* [[:Categoria:Configurare Debian|Configurare Debian]]
* [[:Categoria:Debian in rete|Debian in rete]]
* [[:Categoria:Debian server|Debian server]]
  </div>
  <div class="col_float lista_link">
* [[:Categoria:Virtualizzazione|Virtualizzazione]]
* [[:Categoria:Debian e sicurezza|Debian e sicurezza]]
* [[:Categoria:Debian e Hardware|Debian e Hardware]]
* [[:Categoria:Sviluppare con Debian|Sviluppare con Debian]]
* [[:Categoria:Giocare con Debian|Giocare con Debian]]
  </div>
  <div class="col_float lista_link">
* [[:Categoria:Cultura libera|Cultura libera]]
* [[:Categoria:Wiki|Wiki]]
* [[:Categoria:Debianizzati|Debianizzati]]
* [[:Categoria:Non-Free|Non-Free]]
* '''[[Lista Categorie]]'''
  </div>
</div>


Uno dei punti pi� delicati e difficili nella creazione della propria versione del kernel Linux � quello di determinare esattamente quali driver e quali opzioni di configurazione sono richiesti per il corretto funzionamento dalla macchina su cui viene installato.
Questo Wiki - '''[[Guide@Debianizzati.Org:About|Guide@Debianizzati.Org]]''' - vuole essere prima di tutto un punto di raccolta ideale per le conoscenze acquisite dai singoli durante l'uso di '''Debian GNU/Linux''' in ambito casalingo e/o lavorativo, in modo che il sapere di uno diventi quello di tutti.
Questo capitolo guider� il lettore attraverso questo processo di selezione e scelta dei driver corretti.


==Usare un kernel di una distribuzione==
Le guide ritenute meglio scritte e più approfondite, dopo un processo di controllo e revisione a cui tutti siete liberi di partecipare, vengono classificate [[:Categoria:Debianized|Debianized]] e contrassegnate dalla [[Debian Swirl]]: [[Image:swirl.png|link=]]. Per ulteriori informazioni sul processo di revisione vedere: [[Aiuto:Prima di iniziare#Evoluzione delle guide|Evoluzione delle guide]].


Uno dei metodi pi� semplici, per determinare quali moduli siano necessari, � quello di partire dalla configurazione che viene installata dal pacchetto del kernel della distribuzione che si sta usando. � infatti molto pi� semplice determinare di quali driver si ha bisogno basandosi su quelli installati in un sistema in funzione, in cui i driver corretti sono gi� associati all'hardware in utilizzo.
Potete trovare un elenco completo delle guide '''Debianized''' in [[:Categoria:Debianized|questa pagina]].


Se invece si sta personalizzando un kernel per una macchina sulla quale non � installata una distribuzione Linux, allora conviene partire dalla versione LiveCD di una distribuzione. Questo consente all'utente di far partire Linux sulla macchina in oggetto e di determinare in maniera semplice le opzioni di configurazione del kernel e che consentono il funzionamento ottimale della macchina stessa.
Le guide contrassegnate da questa immagine [[Immagine:Swirl_blu.png]] rimandano ad articoli della [http://e-zine.debianizzati.org/ e-zine] di Debianizzati.


===Dove si trova la configurazione del kernel?===
__TOC__


Quasi tutte le distribuzioni forniscono il file di configurazione nello stesso pacchetto del kernel. Si consiglia di leggere la documentazione relativa alla distribuzione stessa per sapere dove viene installato il file di configurazione. Solitamente si trova da qualche parte in una sotto-directory di <tt>/usr/src/linux/</tt>.
== Mondo Debian ==
=== Introduzione a Debian ===
* [[L' Universo Debian]]
* [[La struttura della Distribuzione]]
* [[Immagine:Swirl_blu.png]] [[La nascita di Debian]]
* [[Immagine:Swirl blu.png]] [[Debian Free Software Guidelines]]


{{Box|Nota per Debian (NdT)|In debian il file di configurazione di ogni kernel installato si trova in <tt>/boot/</tt> ed ha come nome <tt>config-''versione''</tt>.}}
=== Installazione sistema operativo ===
* [[Installare Debian]]
** [[Installare Debian SID]]
** [[Debian 9 Stretch - Installazione base]]
** [[Installare Debian da pendrive USB o SD card]] 
** [[Installare Debian da hard disk]]
** [[Installare Debian su PC con firmware UEFI]]
* [[Installare Debian: configurazione LVM]]
* [[Installare Debian: configurazione RAID]]
* [[Installare Debian su un RAID1 software | Configurare un RAID1]]
* [[Installare Debian con Raid1 software e LVM | Configurare RAID1+LVM]]
* [[Installare e configurare Debian edu (Skolelinux)]]
* [[Jigdo | '''Jigdo''': Scaricare e Aggiornare le iso di Debian]]


Se avete difficolt� a trovare la configurazione del kernel, allora guardate nel kernel stesso. I kernel di molte distribuzioni sono compilati in modo da includere il file di configurazione dentro il filesystem <tt>/proc</tt>. Per verificare se questo � il vostro caso, digitate:
==== Guide per immagini ====
* [[Squeeze, installer di default | '''Squeeze''', non grafica]]
* [[Squeeze, installer grafico | '''Squeeze''' businesscard e netinst, grafica]]
* [[Squeeze, installer CD/DVD | '''Squeeze''' CD/DVD, grafica]]
* [[Installare Debian Wheezy - Guida Grafica | '''Wheezy''' netinst, grafica]]


<pre>
=== Boot loader ===
$ ls /proc/config.gz
==== Grub e Grub 2 ====
/proc/config.gz
* [[Guida a Grub]]
</pre>
** [[Aggiungere uno sfondo a Grub]]
* [[Guida a GRUB 2]]
** [[Grub2: riconoscere altri sistemi operativi installati]]
** [[Ripristinare Grub2 dopo l'installazione di un altro sistema operativo]]


Se il file ''/proc/config.gz'' � presente, allora copiatelo nella directory del sorgente kernel ed estraetelo:
==== Altri ====


<pre>
* [[Smart Boot Manager (SBM): avviare differenti SO]]
$ cp /proc/config.gz -/linux/
$ cd -/linux
$ gzip -dv config.gz
config.gz:     74.9% - - replaced with config
</pre>


Copiate questo file di configurazione nella vostra directory del kernel e rinominatelo in ''.config''.
=== Installazione e gestione dei pacchetti ===
Ora potrete utilizzare questo file come base di partenza nella personalizzazione della configurazione del kernel cos� come descritto nel [[LKN:_Configurare_e_Compilare|Capitolo 4]].


Usando questo file di configurazione si dovrebbe ottenere sempre un file immagine del kernel (un ''kernel ricompilato'', NdT) funzionante sulla propria macchina.
* [[Introduzione all'APT System | '''>>INTRODUZIONE ALL'APT SYSTEM<<''']]
Lo svantaggio di questa immagine � che verranno compilati quasi tutti i moduli e driver presenti nei sorgenti del kernel. Ci� non � quasi mai necessario per una singola macchina, quindi sarebbe meglio disabilitare tutti i driver e le opzioni non necessarie. Si raccomanda di disabilitare solo quelle opzioni che si � sicuri non serviranno, poich� ci sono parti del sistema che richiedono l'abilitazione di certe opzioni.


===Determinare quali moduli siano necessari===
====Lato Client====
Usando il file di configurazione fornito dalla vostra distribuzione il tempo richiesto per la compilazione del kernel � molto lungo poich� tutti i possibili driver vengono abilitati. Si dovrebbe cercare di abilitare solo i driver per l'hardware presente nel sistema, cos� da ridurre i tempi di compilazione del kernel. Inoltre, compilando ''staticamente'' (invece che come moduli) alcuni o tutti i driver necessari, si riduce la memoria utilizzata ed in alcune architetture si velocizza il funzionamento del sistema. Per escludere i driver dal kernel � necessario per� determinare quali moduli sono indispensabili per il funzionamento dell'hardware installato. Attraverso l'utilizzo di due esempi, cercheremo di spiegare come determinare quali driver siano indispensabili al controllo dell'hardware.
===== Pacchetto apt =====
* [[Apt| '''Apt''': funzionalità di base per amministrare i pacchetti]]
* [[Apt-get | '''Apt-Get''': per scaricare, installare, rimuovere e aggiornare i pacchetti]]
* [[Apt-cache | '''Apt-Cache''': per ricercare informazioni sui pacchetti]]
* [[Apt-mark | '''Apt-Mark''': per leggere o modificare lo stato dei pacchetti]]
* [[Apt-cdrom | '''Apt-cdrom''': aggiunta di cd/dvd nella lista dei repository]]
===== Altro software =====
* [[Aptitude | '''Aptitude''': strumento avanzato per amministrare i pacchetti]]
* [[Dpkg | '''Dpkg''': introduzione al package manager di Debian]]
* [[Gdebi|'''Gdebi''': come installare pacchetti .deb con le loro dipendenze]]
* [[Synaptic | '''Synaptic''': software grafico e più intuitivo per amministrare i pacchetti]]
* [[Immagine:Swirl_blu.png]] [[Wajig | '''Wajig''']]
* [[Apt-file: ricerca all'interno dei pacchetti | '''Apt-file''': ricerca all'interno dei pacchetti]]
* [[Apt-listbugs: come monitorare i bug | '''Apt-listbugs''': come monitorare i bug]]
* [[Apt-show-versions | '''Apt-show-versions''': scoprire a che release appartiene un pacchetto in sistemi "misti"]]
* [[Impedire l'aggiornamento di un pacchetto | Impedire e/o retrocedere la versione dei singoli pacchetti]]


Le informazioni che mettono in relazione i dispositivi ai driver presenti nel kernel sono conservate in varie parti del sistema. Uno dei posti pi� importanti dove sono salvate queste informazioni � il filesystem virtuale ''sysfs''. All'avvio di Linux, ''sysfs'', dovrebbe essere montato dagli script di inizializzazione della vostra distribuzione nella directory ''/sys''. ''sysfs'' consente di dare un'occhiata a come le varie parti del kernel sono legate l'una a l'altra, questo lo si deduce grazie ai vari collegamenti simbolici (''symlink'' NdT) che puntano all'interno dell'intero filesystem.
* "Fare il downgrade di uno o più pacchetti", accorpata a "Impedire e/o retrocedere la versione dei singoli pacchetti"


In tutti gli esempi di seguito, saranno riportati i veri percorsi (''path'' NdT) di ''sysfs'' corrispondenti ad hardware specifico. La vostra macchina sar� certamente diversa, ma la posizione  relativa delle informazioni sar� la stessa. Non ci si deve allarmare se i nomi di file nel ''sysfs'' non sono i medesimi, ci� � normale e prevedibile.
====Lato Server====
* [[APT-Cacher NG]], proxy per creare una cache di pacchetti centralizzata in una LAN.
* [[Usare apt-cacher per creare una cache dei pacchetti usabile in una LAN |'''Apt-Cacher''': creare una cache dei pacchetti usabile in una LAN]]
* [[Aptoncd |'''Aptoncd''': creare immagini iso della cache di apt]]
* [[Creare un Repository Debian]]
* [[Gestione di un repository con debarchiver |'''Debarchiver''': gestione di un repository con debarchiver]]
* [[Debmirror: creiamo un mirror Debian |'''Debmirror''': creiamo un mirror Debian]]
* [[Dupload per l'upload dei pacchetti Debian |'''Dupload''': dupload per l'upload dei pacchetti Debian]]


Inoltre, la struttura interna del file di sistema ''sysfs'' subisce modifiche, a causa sia della riorganizzazione dei driver sia del fatto che gli sviluppatori del kernel trovano nuovi modi per meglio presentare in ''user space'' le strutture interne del kernel. A causa di questo, col tempo, alcuni dei ''symlink'', precedentemente menzionati in questo capitolo, possono non essere presenti. Tuttavia, le informazioni sono ancora tutte presenti, al massimo sono state un po' spostate.
====Repository====
* [[Image:swirl.png|link=]] [[I repository ed il loro utilizzo]]
* [[Immagine:Swirl blu.png]] [[Repository & pinning]]
* [[Il repository Backports]]
* [[Repository non ufficiali]]
* [[Archivi Debian]]
* [[Il repository di HWraid]]
* [[Il repository DotDeb]]
* [[Il repository LinuxMint]]
* [[Immagini iso Debian da usare come repository | Utilizzare immagini ISO come repository locali]]


====Esempio: Come determinare il driver di rete====
* "APT uso avanzato: mixare releases diverse", accorpata a "I repository e il loro utilizzo".
* "Introduzione al pinning", accorpata a "I repository e il loro utilizzo".


Uno degli elementi pi� comuni ed importanti in un sistema � la scheda di rete. � essenziale capire quale driver la controlla ed attivarlo nella configurazione in maniera da consentire un corretto funzionamento delle connessioni di rete.
====Manutenzione====
* [[Controllare lo stato di un pacchetto]]
* [[APT: Errori (non così) frequenti]]
* [[Pulire Debian]]
* [[Usare pacchetti a 32 bit su sistemi a 64 bit]]


Primo: partendo dalle connessioni di rete si risale al device PCI
==== Creazione e modifica dei pacchetti ====
<pre>$ ls /sys/class/net/
* [[Make-jpkg: Pacchettizziamo Java| '''Make-jpkg''': Pacchettizziamo Java]]
eth0 eth1  eth2  lo</pre>
* [[Gestione dei metapacchetti | Metapacchetti]]
* [[Applicare una patch ad un pacchetto Debian]]
* [[Apt-build: ottimizzazione dei pacchetti | '''Apt-build''': ottimizzazione dei pacchetti]]
* [[Dpkg-sig: Firma dei packages .deb | '''Dpkg-sig''': Firma dei packages .deb]]
* [[Backport da unstable in testing]]
* [[Pbuilder: compilazione in ambienti puliti]]


La directory ''lo'' rappresenta il dispositivo di rete loopback, ed non � dipendente da nessun dispositivo di rete realmente installato. Invece si dovrebbe riservare particolare attenzione alle directory ''eth0'', ''eth1'' e ''eth2'', dato che si riferiscono a dispositivi realmente esistenti
* "Pacchetti binari e sorgenti", inclusa nella guida "Introduzione all'apt system".


Per determinare di quali dispositivi ci si deve occupare, si utilizza il comando ''ifconfig'':
==Configurazione Sistema==
===Autenticazione locale===
* [[Guida ai comandi da terminale - Gestione utenti e gruppi | Amministrazione utenti e gruppi]]
* [[Privilegi di amministrazione]]
** [[Configurare SUDO per gestire le attività degli amministratori | Privilegi di amministrazione (sudo)]]
* [[Password sicure: la base della sicurezza informatica]]
* [[Autenticazione via token con PAM USB]]


<pre>$ /sbin/ifconfig -a
===Kernel===
eth0 Link  encap:Ethernet  HWaddr 00:12:3F:65:7D:C2
* [[Linux Kernel in a Nutshell]] in Italiano (work in progress)
inet  addr:192.168.0.13  Bcast:192.168.0.255  Mask:255.255.255.0
* [[Debian Kernel Howto]]
UP BROADCAST NOTRAILERS RUNNING MULTICAST  MTU:1500  Metric:1
* [[Esempio configurazione kernel]]
RX packets:2720792 errors:0 dropped:0 overruns:0 frame:0
* [[Pagina di manuale di module-assistant|Pagina di manuale di '''<code>module-assistant</code>''']]
TX packets:1815488 errors:0 dropped:0 overruns:0 carrier:0
* [[Low-latency 2.6 kernel per applicazioni audio realtime]]
collisions:0 txqueuelen:100
* [[Script: Confronto Configurazioni Kernel]]
RX bytes:3103826486 (2960.0 Mb) TX bytes:371424066 (354.2 Mb)
* [[Patch Con Kolivas: incrementare le prestazioni desktop|Patch '''Con Kolivas''': incrementare le prestazioni '''desktop''']]
Base address:0xdcc0 Memory:dfee0000-dff00000
* [[Immagine:Swirl_blu.png]] [[Compilazione del Kernel Linux]]
eth1 Link  encap:UNSPEC  HWaddr 80-65-00-12-7D-C2-3F-00-00-00-00-00-00-00-00
BROADCAST MULTICAST  MTU:1500  Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
eth2 Link  encap:UNSPEC  HWaddr 00-02-3C-04-11-09-D2-BA-00-00-00-00-00-00-00
BROADCAST MULTICAST  MTU:1500  Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
lo Link  encap:Local Lookback
        inet addr:127.0.0.1  Mask:255.0.0.0
UP  LOOPBACK  RUNNING  MTU:16436  Metric:1
RX packets:60 errors:0 dropped:0 overruns:0 frame:0
TX packets:60 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:13409 (13.0 Kb) TX bytes:13409 (13.0 Kb)</pre>


Da questo listato si pu� riconoscere nel dispositivo di rete <tt>eth0</tt>, quello attivo e funzionante, infatti nelle righe;
===Ports===
* [[Immagine:Swirl blu.png]] [[Nexenta]]
* [[Immagine:Swirl blu.png]] [[Debian su android]]
* [[Immagine:Swirl blu.png]] [[Debian GNU/kFreeBSD]]
* [[Immagine:Swirl blu.png]] [[GNU/Hurd|Debian GNU/Hurd]]


<pre>eth0 Link  encap:Ethernet  HWaddr 00:12:3F:65:7D:C2
===Sistema===
inet  addr:192.168.0.13  Bcast:192.168.0.255  Mask:255.255.255.0</pre>
* [[SysV | Il sistema SysV per la gestione dei Runlevel]]
* [[Linux Admin Quick Reference]]
* [[Alternatives]]
* [[Utilizzo del servizio di scheduling Cron]]
* [[Gestione e creazione di servizi in Debian]]
* [[Esecuzione di programmi: la variabile PATH]]
* [[Impostare l'editor predefinito della shell]]
* [[Immagine:Swirl_blu.png]] [[Le fasi del boot]]
* [[Immagine:Swirl_blu.png]] [[System Monitor]]
* [[Usare pacchetti a 32 bit su sistemi a 64 bit]]


Questo risultato dimostra che il dispositivo Ethernet si vede assegnato un indirizzo IP valido (<tt>inet</tt>).
==== Backup ====
* [[Backup2l]]
* [[Immagine:Swirl_blu.png]] [[Mai più senza backup]]
* [[Monitorare e backuppare i cambiamenti della configurazione]]
* [[Backup automatico con rsync via ssh]]


Ora, dopo che abbiamo individuato il dispositivo <tt>eth0</tt> e ci siamo accertati di volerlo abilitare nel nostro nuovo kernel, dobbiamo individuare quale driver lo controlla. Ci� si realizza con una semplice procedura, che � quella si seguire i link nel filesystem sysfs, basta digitare un comando di una sola riga:
==== Filesystem e supporti di memorizzazione permanente ====
* [[File System]]
* [[Filesystem: i permessi sui files]]
* [[Attivare le quote su un filesystem]]
* [[Guida alla formattazione dei dischi con fdisk | fdisk]]
* [[Parted | GNU Parted]]
* [[LVM: Logical Volume Manager | '''LVM''': '''L'''ogical '''V'''olume '''M'''anager]]
* [[RAID: Redundant Array of Indipendent Disks | '''RAID''': '''R'''edundant '''A'''rray of '''I'''ndipendent '''D'''isks]]
** [[Software Raid 1: configurazione e verifiche | '''Raid 1''': configurazione e verifiche]]
* [[Udev]]
* [[Scrivere su filesystem NTFS]]
* [[ bcache | SSD caching con bcache ]]


<pre>$ basename `readlink /sys/class/net/eth0/device/driver/module`
==== Sincronizzazione file e directory ====
e1000</pre>
* [[Rsync | Rsync (GUI incluse)]]
* [[Unison e la sincronizzazione di directory | Unison]]


Il risultato mostra che il modulo <tt>e1000</tt> controlla il dispositivo di rete <tt>eth0</tt>. Il comando ''basename'' racchiude in un'unica linea di comando i seguenti passaggi:
==== Sistema / Tips & Tricks: ====
:* [[Impostare e modificare data e ora]]
:* [[Impostare e modificare il layout della tastiera]]
:* [[Impostare la lingua italiana nel sistema]]
:* [[Tmpreaper: pulire le directory contenenti file temporanei]]
:* [[Messaggio del giorno | Come rendere permanenti le modifiche a <code>/etc/motd</code>]]
:* [[Colorare il boot di Debian]]
:* [[Forzare la risoluzione video della shell con KMS]]


: 1. Individua il symlink ''/sys/class/net/eth0/device'' contenuto all'interno della directory ''/sys/device/'', la quale contiene le informazioni relative al dispositivo che controlla ''eth0''. Fate attenzione al fatto che nelle nuove versioni del kernel la directory ''/sys/class/net/eth0'' potrebbe essere un symlink.
=== Elaborazione testi ===


: 2. All'interno della directory che descrive il dispositivo in sysfs, c'� un symlink che punta al driver relativo a questo dispositivo. Questo symlink � nominato ''driver'', pertanto si segue questo collegamento.
* [[Immagine:Swirl_blu.png]] [[Guida a vim | Vim, guida]]
* [[Vim Cheat Sheet | Vim, Cheat Sheet]]
* [[LaTeX e Vim | Vim, LaTeX]]


: 3. All'interno della directory che descrive il driver in sysfs, c'� un symlink che punta al modulo che si trova all'interno del driver in oggetto. Questo symlink � chiamato <tt>module</tt>. Noi cerchiamo l'oggetto a cui punta questo symlink, per ottenerlo ci serviamo del comando ''readlink'', il quale produce un risultato simile a questo:
=== Desktop ===
:<pre>$ readlink /sys/class/net/eth0/device/driver/module </pre>
* [[Correggere la risoluzione di GDM | '''GDM''', correggerne la risoluzione]]
:<pre> ../../../../module/e1000</pre>
* [[Ekiga: installazione e configurazione|'''Ekiga''': installazione e configurazione]]
* [[DVD Backup: xDVDShrink per Debian]]
* [[Personalizzare il comportamento delle finestre con Devil's Pie]]
* [[Thumbnail in Thunar]]
* [[Gimp: rendere un logo trasparente|'''Gimp''': rendere un logo trasparente]]
* [[XGL e Beryl su KDE con schede ATI]]
* [[Debian con Enlightenment 17]]
* [[Installare e configurare i codec per DVD e Mp3]]
* [[Abilitare i suoni di sistema su Gnome]]
* [[Realizzazione di un Desktop Environment su misura]]
* [[Fluxbox, un Window Manager per Computer con poche risorse]]
* [[Immagine:Swirl_blu.png]] [[Debian & Xfce]]
* [[Immagine:Swirl_blu.png]] [[Debian trip]]
* [[Come visualizzare i video in streaming su Debian]] ''(es: Youtube, Megavideo)''
* [[Cattura stream RTMP|Come catturare uno stream RTMP]]
* [[Gnash]] (per Debian 7 (Wheezy) e più recenti)
* [[Configurare un client IRC per collegarsi al canale debianizzati]]


: 4. Dato che a noi interessa solo il nome del modulo e ci disinteressiamo del resto del risultato ottenuto con il comando ''readlink'', tenendo solo la parte pi� a destra del risultato. Questo � appunto ci� che il comando ''basename'' realizza. Applicandolo direttamente all'intero percorso, questo comando ci ritorna quanto segue:  
==== Desktop / Tips & Tricks ====
: <pre>$ basename ../../../../module/e1000</pre>
:* [[Cambiare il Tema dei Cursori per il Mouse]]
: <pre>e1000</pre>
:* [[Nautilus: navigare con una sola finestra]]
:* [[Antispam in Evolution con Bogofilter]]
:* [[Associare a Icedove/Thunderbird il browser preferito]]
:* [[Migliorare l'aspetto dei font]]
:* [[KDE4 - Notifica degli aggiornamenti sulla systray]]
:* [[Modificare i colori in Midnight Commander]]
:* [[Impedire l'avvio automatico del Desktop Manager]]


Cos� abbiamo inserito il lungo risultato del symlink, ottenuto da ''readlink'', quale parametro nel programma ''basemane'', permettendo cos� l'intero processo di essere realizzato in una sola riga.
=== Xorg / Xfree ===
* [[Guida alla configurazione di Xorg]]
* [[Installazione driver proprietari Ati]]
* [[Installazione driver proprietari Nvidia]]
* [[Intel 945GM- GMA 4500MHD - Intel Mobile 4 Series]]
* [[Tabella delle risoluzioni VGA]]


Ora che abbiamo identificato il nome del modulo, si dovrebbe trovare l'opzione della configurazione del kernel che lo controlla. Si pu� cercare nei vari menu di configurazione dei dispositivi di rete oppure cercare nel codice sorgente del kernel stesso per essere sicuri di avere l'opzione giusta.
===Applicazioni Esterne===
* [[Elenco programmi senza interfaccia grafica]]
* [[Debian e sintesi vocale: installazione di festival e mbrola]]
* [[Installare il browser Opera]]
* [[Installare Skype su Debian]]
* [[VanBasco|VanBasco Karaoke su Debian]]
* [[Guake]]


<pre>
=== Emulatori e Virtualizzazione ===
$ cd ~/linux/linux-2.6.17.8
$ find -type f -name Makefile | xargs grep e1000
./drivers/net/Makefile:obj-$(CONFIG_E1000) += e1000/
./drivers/net/e1000/Makefile:obj-$(CONFIG_E1000) += e1000.o
./drivers/net/e1000/Makefile:e1000-objs := e1000_main.o e1000_hw.o e1000_ethtool.o e1000_param.o
</pre>


Si precisa che "e1000'', usato in questo esempio, deve essere sostituito con il nome del modulo che state analizzando.
* [[QEMU/KVM]]
* [[Installare KVM su Debian]]
* [[VirtualBox]]
* [[VirtualBox: installazione]]
* [[VirtualBox: configurazione]]
* [[VirtualBox: amministrazione da terminale]]
* [[VirtualBox: creazione di una rete virtuale]]
* [[Installare VMWare Server su Debian Etch | VMWare: installazione su Debian Etch]]
* [[Installare VMWare Tools su una macchina guest Debian]]
* [[ePSXe Emulatore Playstation]]
* [[MAME e MESS | MAME e MESS, emulatori di sistemi arcade e casalinghi]]


La cosa che ci interessa nel risultato del precedente comando ''find'' sono le righe dove compaia il termine <tt>'''CONFIG_'''</tt>. Questa � l'opzione di configurazione che il kernel deve aver attivato per poter compilare il modulo. Nell'esempio precedente l'opzione di configurazione che c'interessa � pertanto <tt>CONFIG_E1000</tt>.
===Altro===
* [[Logging su MySQL]]
* [[Immagine:Swirl_blu.png]] [[FFmpeg]]
* [[Immagine:Swirl_blu.png]] [[Midnight Commander]]
* [[Immagine:Swirl_blu.png]] [[Vivere l'Emacs]]
* [[Forked-daapd | '''forked-daapd''', un media server basato su protocollo DAAP]]


Adesso si dispone dell'informazione necessaria per poter configurare il kernel. Si esegue lo strumento menu di configurazione:
===Tips and Tricks===
====Bash====
* [[Guida ai comandi da terminale]]
* [[Bash tips]]: un elenco di trucchetti sull'uso interattivo di Bash
* [[Bash scripting | Bash scripting]]: guida sulla scrittura di script in Bash
* [[Colorare bash]]
* [[Come abilitare il completamento automatico 'avanzato']]
* [[Due simpatici login: welcome2l e linuxlogo]]
* [[Wodim: masterizzare da shell]]
* [[Cowsay, la mucca che ci parla dal terminale]]
* [[Immagine:Swirl_blu.png]] [[Alias | Alias di bash]]
* [[Irssi, chattare da terminale]]


<pre>$ make menuconfig</pre>
====Altro====


Dopodich� si prema il tasto / (slash) (che ha il compito di far partire una ricerca), e si digita l'opzione di configurazione, senza la parte di testo <tt>CONFIG_</tt>. Questo processo � mostrato nella [[:Immagine:Config_search.png|figura 7-1]].
* [[Convertire immagini .nrg in immagini .iso|Convertire immagini '''<code>.nrg</code>''' (Nero) in immagini '''<code>.iso</code>''' su Linux]]
* [[Amministrazione grafica delle "Alternatives"]]
* [[Creare DVD Cover con GLabels]]
* [[Logs: visualizziamoli in una console]]
* [[Ricerca Google da terminale]]


[[Immagine:Config_search.png|center|frame|''Figura 7-1. Ricerca in menuconfig.'']]
==Networking==
=== Server ===
* [[Internet Service Provider con Debian]]
* [[Debian 9 Stretch - Installazione base]]
==== Database ====
* Database NoSQL
** [[MongoDB]]
====Condivisione risorse====
* [[Firefox Sync Server | Sincronizzare Firefox/Iceweasel tramite un proprio server]]
* [[Wireless Access Point (WAP) personalizzato]]
* [[Dropbox]]


Il sistema di configurazione del kernel vi dir� ora esattamente dove selezionare l'opzione per abilitare questo modulo. Vedi [[:Immagine:Config_search_found.png|figura 7-2]].
===== Condividere directory/file tra macchine Linux =====
* [[SSHFS: montare una risorsa remota sfruttando FUSE ed SSH | '''SSHFS''': montare una risorsa remota sfruttando FUSE ed SSH]]
* [[Nfs-kernel-server: condividere risorse tra macchine GNU/Linux | '''nfs-kernel-server''': condividere risorse tra macchine GNU/Linux]]


[[Immagine:Config_search_found.png|center|frame|''Figura 7-2. Risultato della ricerca in menuconfig.'']]
* "Come montare cartelle condivise da MS Windows su Debian", accorpata a "Samba: guida estesa"


Il primo elemento nella schermata mostra l'opzione che stavate cercando. Le informazioni mostrate dalla schermata vi dicono che, per attivare il modulo <tt>E1000</tt> nel kernel, la seguente opzione di configurazione deve essere abilitata:
===== Samba =====
:* [[Installare Samba per condividere directory - Debian Stretch]]
:* [[Samba: guida rapida | '''Samba''': guida rapida]]
:* [[Samba: guida estesa | '''Samba''': guida estesa]]
:* [[Samba con autenticazione locale]]
:* [[Samba: creare un cestino di rete per le condivisioni | '''Samba''': creare un cestino di rete per le condivisioni]]
:* [[Sfogliare la rete in Thunar con fusesmb | '''Thunar/fusesmb''': caricare risorse remote samba in Thunar sfruttando FUSE]]
:* [[ClamAV: scansione antivirus delle condivisioni Samba | '''ClamAV''': scansione antivirus delle condivisioni Samba
]]
:* "Accedere alle condivisioni Samba dal browser", accorpata a "Samba: guida estesa"


  Device Drivers
===== Creare un controller di dominio usando OpenLDAP e Samba =====
      Network device support
:* [[Samba e OpenLDAP: creare un controller di dominio | Debian Sarge]]
      [*] Network device support
:* [[Samba e OpenLDAP: creare un controller di dominio con Debian Etch | Debian Etch]]
          Ethernet (1000 Mbit)
:* [[Samba e OpenLDAP: creare un controller di dominio con Debian Lenny | Debian Lenny]]
      [*] Intel(R) PRO/1000 Gigabit Ethernet support
:* [[Samba e OpenLDAP: creare un controller di dominio con Debian Squeeze | Debian Squeeze]]
:* [[Samba e OpenLDAP: creare un controller di dominio NT4 con Debian Wheezy | Dominio NT4 con Debian Wheezy]]
:* [[Samba e OpenLDAP: creare un controller di dominio Active Directory con Debian Wheezy | Dominio Active Directory con Debian Wheezy]]


Questo modo di procedere funziona per ogni tipo di dispositivo attivo nel kernel.
===== FTP =====
:* [[Installare un server FTP con ProFTPD]]
:* [[Installare un server FTP con utenti virtuali su MySQL]]
:* [[Installare un server vsFTPd con utenti virtuali su MySQL]]


====Esempio: Un dispositivo USB====
===== OpenLDAP =====
:* [[Implementare un'architettura ridondante master/slave OpenLDAP | Come implementare un'architettura ridondante master/slave]]


Come secondo esempio, esaminiamo ora un convertitore USB-seriale che � presente nel nostro sistema preso ad esempio. Attualmente il convertitore � collegato alla porta ''/dev/ttyUSB0'', pertanto si deve prendere in esame la sezione tty del ''sysfs''.
====Mailing====
<pre>$ ls /sys/class/tty/ | grep USB
* [[Mail Server Sicuro con Postfix]]
ttyUSB0</pre>
* [[Mailserver con Exim, Mutt e Dovecot]]
Potete ora eseguire una ricerca di questo dispositivo nel ''sysfs'' allo scopo di trovare il modulo che lo gestisce, utilizzando la stessa procedura mostrata nella sezione precedente:
* [[Postgrey:_filtrare_lo_spam_con_il_greylisting]]
* [[Postfix_e_autenticazione_su_smtp_remoto]]
* [[Mail_Server]]
* [[Zarafa: un sostituto opensource per Microsoft Exchange]]
* Server mail, con Postfix, Courier, MailDrop e mySQL [[Postfix-mysql]]
* Creare un server mail base, con Postfix, Dovecot e mySQL [[Server_mail_base:_Postfix_Dovecot_e_MySql]]
* Implementare il server mail base, con Amavisd-new [[Server_mail:_Postfix_Amavisd-new_Dovecot_e_MySql]]
* Implementare il controllo spam con Pyzor: [[Pyzor]]
* Implementare il controllo spam con Razor: [[Razor]]
* [[Impostare Exim per inviare tramite GMail]]
* [[Citadel, un groupware per Debian]]
* [[Installare eGroupware in Debian]]
* [[Installare un ambiente Groupware integrato in Samba4]]
* [[Installare Group-Office in Debian]]
* [[Ssmtp]]


<pre>$ basename `readlink /sys/class/tty/ttyUSB0/device/driver/module`
====Http====
pl2303</pre>
* [[Apache HTTP Server]]
Dopodich�, per poter individuare l'opzione di configurazione che si deve abilitare, si cerca nell'albero del codice sorgente del kernel:
* [[Server casalingo (SOHO)]]
<pre>$ cd ~/linux/linux-2.6.17.8
* [[Installare un ambiente LAMP: Linux, Apache2, SSL, MySQL, PHP5]] (Fino a Jessie)
$ find -type f -name Makefile | xargs grep pl2303
* [[Installare un ambiente LAMP: Linux, Apache2, SSL, MySQL, PHP5 - Stretch]]
./drivers/usb/serial/Makefile:obj-$(CONFIG_USB_SERIAL_PL2303) += pl2303.o</pre>
* [[Installare PHP 7.2 su Debian Stretch]]
* [[Installazione Tomcat]]
* [[LAMP: Linux, Apache, MySQL e PHP| Installare un ambiente LAMP: Linux, Apache, SSL, MySQL, PHP4]]
* [[Installare Memcached in un server Apache2]] (Fino a Jessie)
* [[ Installare Memcached in un server Apache2 - Stretch]]
* [[Apache e Virtual Hosts: configurare Apache2 per ospitare più siti web]]
* [[Incrementare le prestazioni di Apache con mod_pagespeed]]
* [[Hardening di un web server Apache]]
* [[Apache2: proteggere directory mediante autenticazione]]
* [[Utilizzare Webalizer per avere le statistiche di Apache]]
* [[Ottimizzare la banda di Apache]]
* [[Configurare Apache in un ambiente Chroot]]
* [[XAMPP: Linux, Apache, MySQL e PHP facili]]
* [[Configurare Ruby On Rails un su server web di produzione]]
* [[Autorità di certificazione locale|Generare un'autorità di certificazione locale]]
* [[Installare Bugzilla su Debian]]
* [[Individuare gli script PHP che inviano SPAM]]
* [[Bitnami LAMP Stack: Linux-Apache-MySQL-PHP facili]]
* [[PHPBB]]


Si utilizzi lo strumento di configurazione del kernel, come indicato in [[:Immagine:Config_search_pl2303.png|figura 7-3]], per trovare l'opzione adeguata da abilitare relativa al settaggio dell'opzione CONFIG_USB_SERIAL_PL2303.
====Altri servizi di rete====
* DNS e DHCP
** [[Bind |Bind DNS server]]
** [[ISC DHCP | ISC DHCP server]]
** [[DNS dinamici: come ottenerli e configurarli]]
** [[Un server DNS e DHCP su Debian]]
* [[Debian su server HP Proliant: installazione del software HP]]
* [[Installare un server SNMP]]
* [[Installare una SSL VPN con SSL Explorer]]
* [[Configurare MySQL per accettare connessioni remote]]
* [[Backup di MySQL tramite script]]
* [[Ottimizzare le performances di MySQL]]
* [[Installare_hamachi_su_debian_lenny_x86_x64_come_server_e_client | Installare hamachi server e client su Debian]]
* [[Ajaxterm: utilizzare SSH via web]]
* [[Connessioni SSH attraverso un proxy HTTP]]
* [[Webmin: amministrare Debian via web]]
* [[Netkit: laboratorio di rete virtuale]]
* [[NAT con iptables|NAT con iptables: utilizzare Debian come router]]
* [[Immagine:Swirl_blu.png]] [[Debian server tramite preseed]]
* [[Un semplice Wiki con DokuWiki]]
* [[Installare e configurare MediaWiki]]
* [[Installare un Media Server per lo streaming della musica]]
* [[Subsonic, un Media Server completo e funzionale]]
* [[UpHosts | Content Filtering "domestico"]]
* [[Autenticazione degli accessi Wireless tramite server Radius]]
* [[Storage online sicuro con Webdav e EncFS]]
* [[Shellinabox]]


[[Immagine:Config_search_pl2303.png|center|frame|''Figura 7-3. Ricerca di USB_SERIAL_PL2303''.]]
===Amministrazione===
====Gestione Remota/Locale====
* [[Wake On Lan | '''Wake On Lan''' per accendere i propri PC a distanza tramite la LAN]]
* [[Debian e il controllo di servizi e demoni]]
* [[Gestione della banda in Apache]]
* [[Inetd e i servizi di rete]]
* [[SSH]]
** [[OpenSSH: file di configurazione]]
** [[OpenSSH]]
** [[OpenSSH: Windows]]
** [[Connessioni SSH attraverso un proxy HTTP]]


Nel nostro caso il risultato � mostrato nella [[:Immagine:Config_search_pl2303_found.png|figura 7-4]].
====Connettività====
* [[Condividere la connessione a internet]]
* [[Gateway-Router | Configurare una macchina linux come Gateway/Router]]
* [[pppoeconf | Configurare una connessione ADSL con pppoeconf]]
* [[Ifplugd: connessione automatica|'''<code>ifplugd</code>''': connessione automatica]]
* [[IP fissi | Come impostare indirizzi IP fissi su Debian]]
* [[Impostare manualmente velocità e duplex di una scheda di rete]]
* [[Configurazione di una connessione wireless]]
* [[Disabilitare IPv6 | Disabilitare il protocollo IPv6 su Debian]]
* [[Immagine:Swirl_blu.png]] [[Switchconf]]
* [[Immagine:Swirl_blu.png]] [[Iproute2]]
* [[Gestire automaticamente configurazioni wifi multiple]]
* [[Ethernet Bonding: come garantire ridondanza e/o massimizzare la banda disponibile | '''Ethernet Bonding''': come garantire ridondanza e/o massimizzare la banda disponibile
]]
* [[Ethernet Bridging | '''Ethernet Bridging''': "trasformare" un computer in un hub/switch]]
* [[Autenticazione degli accessi Wireless tramite server Radius]]


[[Immagine:Config_search_pl2303_found.png|center|frame|''Figura 7-4. Risultato della ricerca di USB_SERIAL_PL2303'']]
===Sicurezza===
====Firewalling====
* [[Impostare un firewall con uno script iptables]]
* [[Configurare Netfilter con Shorewall]]
* [[Debian e iptables]]
* [[Nftables]]
* [[Firewall Builder]]
* [[Proxy Server con filtraggio dei contenuti della navigazione]]


Ci� mostra esattamente dove trovare l'opzione <tt>USB Profilic 2303 Single Port Serial Driver</tt> che � necessaria alla corretta gestione di questo dispositivo.
====Monitoraggio & Scanning====
* [[Monitoriamo il Sistema]]
* [[Monitorare il traffico sulle interfacce di rete]]
* [[Mrtg: monitoriamo la banda]]
* [[Cacti | Cacti: monitor di rete, per più computer]]
* [[Munin]]
* [[Configurare un server Syslog su Debian Squeeze]]
* [[Monitorare molteplici files di log da terminale]]
* [[Fail2ban]]: impedire attacchi brute-force ai nostri server
* [[Impedire attacchi SSH brute-force con Denyhosts]]
* [[Monitorare l'attività ARP con Arpwatch]]
* [[Integrit: file verification system]]
* [[Registrare i log di Iptables in MySQL]]
* [[Monitorare la nostra rete con ntop]]
* [[Debian Stretch - Monit]]
* [[Monitorare un server con Munin e Monit]]
* [[Configurare Zabbix su Debian]]
* [[Configurare SUDO per gestire le attività degli amministratori]]
* [[Monitorare la banda con BitmeterOS]]
* [[Strumenti per monitorare le performance]]
* [[Autenticazione degli accessi Wireless tramite server Radius]]
* [[Proxy Server con filtraggio dei contenuti della navigazione]]
* [[Autenticare Squid Proxy Server su un server Radius]]
* [[Individuare gli script PHP che inviano SPAM]]
* [[Monitorare i log di sistema con Logwatch]]
* [[Monitorare un server con OpenNMS]]
* [[Monitorare i log di sistema con Graylog2]]


====Riassunto: Alla scoperta del dispositivo====
====Proxy====
* [[Privoxy: navigazione sicura a prova di spam]]
* [[Anonimato in rete - Tor ]]
* [[CNTLM | CNTLM, proxy per collegarsi ad un proxy windows]]


Riassumendo, ecco i vari passaggi che servono per identificare il driver funzionante di un dispositivo ad esso collegato:
====Tunneling====
: 1. Trovate la corretta classe di dispositivi in ''sysfs'' relativa al dispositivo che ci interessa. I dispositivi di rete sono elencati in ''/sys/class/net'', mentre i dispositivi tty sono elencati in ''/sys/class/tty''. Gli altri vari dispositivi si trovano in altre sotto-directory di ''/sys/class'', a seconda del tipo.
* [[Openvpn]]
: 2. Ricercate nell'albero di ''sysfs''  il nome del modulo che controlla il dispositivo in oggetto. Lo si trova in ''/sys/class/class_name/device_name/device/driver/module'', la ricerca � agevolata se si utilizzano i comandi ''readlink'' e ''basename''.
* [[Debian come server VPN]]
:<pre>$ basename `readlink /sys/class/class_name/device_name/device/driver/module`</pre>
: 3. Ricercate nei file Makefile con ''find'' e ''grep'' le opzioni <tt>CONFIG_</tt> che abilitano il modulo
:<pre>$ find -type f -name Makefile | xargs grep ''module_name''</pre>
: 4. Ricercate l'opzione trovata nel sistema di configurazione del kernel, dopodich� andate dove indicato dal menu per attivare il driver in oggetto.


====Lasciamo che il kernel ci dica ci� di cui abbiamo bisogno====
=== File Sharing ===
Dopo esserci infilati nel ''sysfs'' e aver seguito i sui symlinks per ricercare passo passo i nomi dei moduli, presentiamo un semplice script che far� per noi tutto il lavoro in un modo leggermente diverso:
* [[aMule]]
* [[Transmission]]
* [[MlDonkey]]
* [[Emule-morph]]
* [[Moblock - mobloquer]]


<pre>
== Hardware ==
#!/bin/bash
=== Fotocamere digitali e dispositivi di memorizzazione di massa removibili ===
#
* [[Usare Fotocamere Digitali|Usare Fotocamere Digitali (libgphoto2)]]
# find_all_modules.sh
* [[Usare Fotocamere Digitali (usb-storage)]]
#
* [[UsbMount: Gestione automatizzata delle periferiche usb di memorizzazione]]
for i in `find /sys/ -name modalias -exec cat {} \;`; do
* [[Debian e iPod]]
    /sbin/modprobe --config /dev/null --show-depends $i ;
* [[Debian e lettori mp3 Creative]]
done | rev | cut -f1 -d '/' | rev | sort -u
</pre>


Si pu� scaricare un file d'esempio, contenente questo script, dal sito web del libro, riportato nella sezione ''Come contattarci'' che si trova nella prefazione.
=== Modem e periferiche di rete ===
* [[Debian e i Modem ADSL]]


Questo script cerca nel ''sysfs'' tutti file chiamati ''modalias''. Il file ''modalias'' contiene gli alias dei moduli e comunica al comando ''modprobe'' quali moduli debbano essere caricati per ogni dispositivo. L'alias del modulo � composto da una combinazione di: produttore del dispositivo, ID, tipo di classe ed altri identificativi univoci per il tipo di dispositivo in questione. Tutti i moduli del driver del kernel hanno una lista interna dei dispositivi che supportano, che � generata automaticamente dalla lista dei dispositivi che il driver comunica al kernel di poter supportare. Il comando ''modprobe'' ricerca tutti i dispositivi nella lista di tutti i driver e cerca di trovare una corrispondenza confrontando l'alias. Se trova una corrispondenza, allora provvede al caricamento del modulo (questa procedura � la stessa seguita dal caricamento automatico dei driver in Linux).
==== Modem UMTS/3G/HDSA ====
* [[Modem Alice Mobile Onda MT503HSA: installazione e configurazione]]
* [[Internet Key Huawei E173s 7.2Mb]]


Lo script prevede l'arresto del programma ''modprobe'' prima di caricare il modulo, e visualizza a schermo solo le azioni che eseguirebbe. Questo ci d&agrave; una lista di tutti i moduli che sono necessari al controllo di tutti i dispositivi del sistema. Eseguendo una piccola pulizia della lista, ordinandola e selezionando i campi adeguati,  
=== Schede di rete Wireless ===
otteniamo il seguente risultato:
* [[Wireless Support | Informazioni sul supporto alle periferiche Wireless]]
* [[Configurazione di una connessione wireless]]
====Installazione dei driver delle schede wireless====
* [[ADMtek ADM8211: installazione e configurazione]]
* [[Atheros AR5210, AR5211, AR5212, AR5213, AR5414, AR2413, AR242x]]
* [[Atheros 802.11n: installazione e configurazione]]
* [[Intel PRO/Wireless 2200BG]] (obsoleta)
* [[Intel PRO/Wireless 2100, 2200 e 2915: installazione e configurazione]]
* [[Intel PRO/Wireless 3945, 3945ABG e 4965: installazione e configurazione]]
* [[Intel PRO/Wireless 5100 ABN: installazione e configurazione]]
* [[Broadcom BCM43xx: installazione e configurazione]]
* [[Schede Wireless con driver ACX100 / ACX111]]


<pre>
====Altro====
$ find_all_modules.sh
* [[Script Bash abilitazione scheda wireless]]
8139cp.ko
* [[NdisWrapper | NdisWrapper: Usiamo i driver di Windows per il WLan con GNU/Linux]]
8139too.koo
* [[PCMCIA WiFi UPspeed (chipset Marvell) su Debian Sarge on Thinkpad T20 ]]
ehci-hcd.ko
* [[Wg111v2 con ndiswrapper e crittografia WPA]]
fimware_vlass.ko
i2c-i801.ko
ieee80211.ko
ieee80211_crypt.ko
ipw2200.ko
mii.ko
mmc_core.ko
pcmcia_core.ko
rsrc_nonstatic.ko
sdhci.ko
snd-hda-codec.ko
snd-hda-intel.ko
snd-page-alloc.ko
snd-pmc.ko
snd-timer.ko
snd.ko
soundcore.ko
uhci-hcd.ko
usbcore.ko
yenta_socket.ko
</pre>


Questa � la lista di tutti i moduli che sono necessari alla gestione dell'hardware della macchina.
=== Schede Video ===
* [[Intel 945GM- GMA 4500MHD - Intel Mobile 4 Series]]


Lo script mostrer� probabilmente alcuni messaggi di errore che possono essere del tipo:
=== Stampanti ===
* [[Livello degli inchiostri e pulizia testine per stampanti Epson]]
* [[Immagine:Swirl_blu.png]] [[Stampanti multifunzione]]
==== Stampanti USB ====
* [[Installare stampanti con porta USB utilizzando CUPS]]


<pre>FATAL: Module pci:v00008086d00002592sv000010CFsd000012E0bc03sc00i00 not found.
==== Stampanti con porta parallela ====
FATAL: Module serio:ty01pr00id00ex00 not found.</pre>
* [[Introduzione all'installazione di stampanti con porta parallela]]


Questo ci dice che non si trova un modulo che gestisce quel dispositivo. Questo non deve comunque interessare pi� di tanto, poich� alcuni dispositivi non hanno driver nel kernel che lavorino per loro.
==== Stampanti bluetooth ====
* [[Introduzione all'installazione di stampanti bluetooth]]


==Determinare il modulo corretto partendo da zero==
=== Scanner ===
Talvolta non c'� la possibilit� di avere un kernel funzionante su una macchina in modo da determinare quali moduli del kernel siano necessari per gestire l'hardware. Oppure si � aggiunto del nuovo hardware al sistema e bisogna trovare le opzioni della configurazione necessarie a farlo funzionare correttamente. Questa sezione illustrer� come determinare le opzioni di configurazione necessarie ad far funzionare l'hardware.
* ''Inserire qui eventuali altre guide su come far funzionare scanner con Debian''


Il modo pi� semplice per capire quale driver controlla un nuovo dispositivo � quello di compilare come moduli tutti i driver di quel tipo disponibili nei sorgenti del kernel, e lasciare che il processo di avvio tramite ''udev'' associ il driver al dispositivo. Una volta fatto ci�, si dovrebbe essere in grado di risalire al driver necessario seguendo i passi descritti precedentemente, ed infine ricompilare il kernel abilitando il solo driver necessario.
=== Palmari e cellulari ===
* [[UMTS/GPRS PCMCIA card (3g)]]
* [[Usare lcd4linux con un Palm]]
* [[Modem Alice Mobile Onda MT503HSA: installazione e configurazione]]


Se invece non si vogliono compilare tutti i driver, o questo meccanismo non funziona per qualche motivo, sar� necessario un p� pi� di lavoro per individuare il driver necessario. I passi successivi sono complessi e richiedono talvolta di dover cercare nei sorgenti del kernel. Non abbiate timore di ci�, sar� solo di aiuto a comprendere meglio l'hardware ed i sorgenti del kernel.
=== Server ===
* [[Debian su server HP Proliant: installazione del software HP]]


I passi necessari per trovare il driver corrispondente di un dispositivo cambiano a seconda del tipo di dispositivo in questione. In questo capitolo discuteremo le due tipologie  di dispositivi pi� comuni: PCI e USB. I metodi descritti qui saranno validi anche per altri tipi di dispositivi.
=== Altro hardware ===
* [[Tasti Multimediali: configurazione ed uso| '''Tasti Multimediali''': configurazione ed uso]]
* [[Utilizzare un UPS APC con Debian]]
* [[ Aggiornare il BIOS senza windows ]]
* [[SheevaPlug|Come installare Debian sullo SheevaPlug]]
===== CPU Scaling =====
* [[Modulare il funzionamento di una CPU | '''CPUFreq''', interfaccia del kernel per variare la frequenza della CPU]]
* [[Cpufreqd: Un demone per il CPU frequency scaling | '''Cpufreqd''']]


&Egrave; inoltre molto importante per il kernel di essere in grado di trovare tutti i filesystem presenti nel sistema, ed in particolare il filesystem di root. Approfondiremop questo aspetto successivamente in [[LKN: Personalizzare un Kernel#Root filesystem|"Root filesystem"]].
===== Dischi rigidi =====
* [[Controller RAID LSI Fusion-MPT SAS: installazione e monitoraggio dei dischi | '''Controller RAID LSI Fusion-MPT SAS''': installazione e monitoraggio dei dischi]]
* [[Gestire gli HD: stato di salute, badblocks e ripristino dati|'''Gestire gli HD:''' stato di salute, badblocks e ripristino dati]]
* [[Hdparm|'''hdparm''', monitoraggio e configurazione dischi]]
* [[Recuperare i dati da un Hard Disk danneggiato]]


===== Sensori Hardware =====
* [[Lm-sensors | '''Lm-sensors''', strumenti per monitorare temperatura e altro]]


===Dispositivi PCI===
==Portatili==
I dispositivi PCI si distinguono per ''vendor ID'' e ''device ID''; ogni combinazione di ''vendor ID'' e di ''device ID'' pu� richiedere un driver unico. Questa � la base per la ricerca mostrata in questa sezione.
===Laptop Debianizzati===
Troverete di seguito i resoconti d'installazione di Debian su dei portatili:


Per questo esempio useremo un scheda di rete PCI che supporremo non funzionante con l'attuare versione del kernele in esecuzione. Questo esempio sar� diverso dalla vostra situazione, con differenti device PCI e valori ID del bus, ma i passi salienti dovrebbero essere rilevanti per ogni tipo di dispositivo PCI per il quale vogliate trovare un driver funzionante.
* [[Debian Wheezy-Testing su HP 635 | Debian Wheezy-Testing su HP 635]]


In primo luogo troviamo nel sistema il dispositivo PCI che non st� funzionando. Per ottenere una lista di tutti i dispositivi PCI usiamo il programma <code>lspci</code>. Poich� a noi interessano solo dispositivi PCI ethernet restringeremo la nostra ricerca filtrado tra i risultati solo quelli che conterranno la parola ''ethernet'' (case-insensitive):
Infine un elenco di portatili, suddivisi per marca e modello, su cui Debian è stata installata con maggiore o minore successo:


<pre>
* [[Elenco laptop debianizzati]]
$ /usr/sbin/lspci | grep -i ethernet
06:04.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/
8139C/8139C+ (rev 10)
</pre>


Questo � il dispositivo che vorremmo fare funzionare.
===Altro===
* [[Synaptics touchpad]]
* [[Notebook: far funzionare i caratteri ALT-GR]]
* [[Disabilitare temporaneamente il touchpad]]
* [[Configurare fluxbox sui netbook]]
* Inserire qui anche link a risorse in italiano sui portatili


{{Box|Nota:|Potreste anche provare a cercare in tutta la configurazione del kernel un dispositivo che corrisponde alla stringa mostrata sopra (un dispositivo della Realtek Semiconductors con nome prodotto RTL-8139/8139C/8139C+), ma questo non funziona sempre. Per questo motivo useremo la via lunga in questo capitolo.}}
==Debian Live==
* [[Debian Live Project]]
* [[DebianLive multi-distro]]


::[[Immagine:Warning_65x68.jpg|left]] Quasi tutte le distribuzioni mettono il programma <tt>lspci</tt> in <tt>/usr/sbin/</tt>, ma alcune lo mettono in altri percorsi. Per trovare in quale posizione � stato messo digitare:
==Crittografia==
* [[Crittografia e Steganografia - L'Arte di nascondere le informazioni]]
* [[Introduzione alla crittografia]]
* [[Chiavi simmetriche e chiavi pubbliche]]
* [[Volumi criptati LUKS - Creazione e uso con cryptmount]]
* [[LUKS gestione manuale dei volumi: cryptsetup]]
* [[Immagine:Swirl blu.png]] [[Crittografia portami via|Creare una directory crittografata]]
* [[Truecrypt® - Installazione per Debian]]
* [[Mail criptate e/o firmate con standard OpenPGP usando Icedove/Thunderbird ed Enigmail]]


::<tt>$ '''which lspci'''</tt>
==Varie==
::<tt>/usr/sbin/lspci</tt>
* [[Debian Fun]]
 
* [[Umorismo informatico]]
Se state usando una distribuzione che mette ''lspci'' in una altra posizione usate il percorso corretto per il vostro caso negli esempi seguenti.
* [[Lista e-zine]]
 
* [[Ergonomia]]
Le primi bit d'informazione che l'output di ''lspci'' ci mostra sono l'ID del bus PCI per questo dispositivo, <tt>06:04.0</tt>. Questo � il valore che useremo quando guarderemo nel ''sysfs'' per trovare pi� informazioni riguardo questo dispositivo.
* [[Immagine:Swirl_blu.png]] [[Intervista a MaXer]]
 
* [[Immagine:Swirl_blu.png]] [[Intervista al Prof. Cantaro]]
Andiamo in ''sysfs'' dove tutti i dispositivi PCI sono elencati, e guardiamo i loro nomi:
* [[Immagine:Swirl_blu.png]] [[Informatica e Pubblica Amministrazione]]
 
* [[Immagine:Swirl_blu.png]] [[Intervista a Steve McIntyre]]
<pre>
* [[Immagine:Swirl_blu.png]] [[Free software, opensource, freeware]]
$ cd /sys/bus/pci/devices/
* [[Immagine:Swirl_blu.png]] [[Zack]]
$ ls
* [[Come formulare quesiti tecnici al forum]]
0000:00:00.0 0000:00:1d.0  0000:00:1e.0 0000:00:1f.3 0000:06:03.3
0000:00:02.0 0000:00:1d.1  0000:00:1f.0 0000:06:03.0 0000:06:03.4
0000:00:02.1 0000:00:1d.2  0000:00:1f.1 0000:06:03.1 0000:06:04.0
0000:00:1b.0 0000:00:1d.7  0000:00:1f.2 0000:06:03.2 0000:06:05.0
</pre>
 
Il kernel numera i dispositivi PCI con un <tt>0000:</tt> iniziale che non viene mostrato nell'output di ''lspci''. Dunque, aggiungiamo un <tt>0000:</tt> al numero datoci da ''lspci'' e entriamo in quella directory:
 
  $ cd 0000:06:04.0
 
In questa directory vogliamo conoscere il valori dei file ''vendor'' e ''device''.
 
<pre>
$ cat vendor
0x10ec
$ cat device
0x8139
</pre>
 
Questi sono il ''vednor ID'' ed il ''device ID'' per questo dispositivo PCI. Il kernel usa questi valori per associare correttamente un driver ad un dispositivo.
 
===Dispositivi USB===
 
===Root filesystem===
 
 
====Controller del disco====
 
Nell'output del comando appena mostrato, la prima porzione di linea mostra su quale dispositivo a blocchi il root filesystem � montato. In questo esempio, � /dev/sda2. Ora che il filesystem � correttamente configurato nel vostro kernel, dovete essere sicuri che questo dispositivo a blocchi funzioner� correttamente. Per trovare quali driver sono necessari per questo, dovete guardare in sysfs ancora.
Tutti i dispositivi a blocchi mostrati in sysfs sia in /sys/block o in /sys/class/block, dipendono dalla versione del kernel che state usando. In entrambi i posti, i dispositivi a blocchi sono un albero, con le partizioni differenti essendo figli del dispositivo principale:
 
$ tree -d /sys/block/ | egrep "hd|sd"
|-- hdc
|-- hdd
`-- sda  |-- sda1
  |-- sda2  |-- sda3
 
Data l'informazione nel comando di mount, dovete essere sicuri che il dispositivo sda2 � configurato correttamente. Poich� questa � una partizione (le partizioni di un disco sono numerate, mentre i dispositivi a blocchi principali non lo sono), l'intero dispositivo sda deve essere configurato. (Senza il dispositivo a blocchi principale, non c'� possibilit� di accedere alle partizioni individuali su quel dispositivo).
Il dispositivo a blocchi sda � rappresentato semplicemente come il dispositivo di rete che abbiamo visto precedentemente in questo capitolo. Esiste un symlink nella directory del dispositivo chiamato device che punta al dispositivo logico che controlla il dispositivo a blocchi:
 
$ ls -l /sys/block/sda
...
device -> ../../devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0
...
 
Ora avete bisogno di iniziare a scorrere la catena dei sispositivi nel sysfs per trovare quale driver sta controllando questo dispositivo:
 
$ ls -l /sys/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0
...
driver -> ../../../../../../bus/scsi/drivers/sd
...
 
Qui vediamo che il driver del controller del disco SCSI � responsabile per il funzionamento di questo dispositivo. Cos� sappiamo che dobbiamo configurare il supporto ai dischi SCSI nella nostra configurazione del kernel. Continuando a salire la catena delle directory in sysfs, provate a trovare dove � il driver che controlla l'hardware:
 
$ ls -l /sys/devices/pci0000:00/0000:00:1f.2/host0
...
 
Ancora, nessun driver qui. Continuando di un livello in su:
 
$ ls -l /sys/devices/pci0000:00/0000:00:1f.2
...
driver -> ../../../bus/pci/drivers/ata_piix
 
Ecco! Questo � il controller del disco di cui abbiamo bisogno da assicurare che sia nella nostra configurazione del kernel.
Cos� per questo root filesystem, abbiamo bisogno di abilitare l'ext3, sd, e ata_piix driver nella nostra configurazione del kernel cos� che saremo capaci di fare il boot con successo del nostro kernel su questo hardware.
 
===Un aiuto dallo script===
 
Come menzionato all'inizio del capitolo, file e directory nel sysfs cambiano da una versione del kernel a un altra. Qui c'� uno script che � alla portata di mano per determinare il driver del kernel necessario e il module name per ogni dispositivo nel sistema. E' stato sviluppato con gli sviluppatori del kernel responsabili per il sysfs e dovrebbe funzionare con successo con tutte le versioni future del kernel 2.6 .
Per esempio, fa un "short work" del precedente esempio, quando dovete prendere tutti i driver appropriati per i dispositivi a blocco sda:
 
<strong>$ get-driver.sh sda</strong>
looking at sysfs device: /sys/devices/pci0000:00/0000:00:1f.2/host0/
target0:0:0/0:0:0:0
found driver: sd
found driver: ata_piix
 
Posso anche trovare tutto sui driver appropriati necessari per cose complicate come i dispositivi USB-toserial:
 
<strong>$ get-driver.sh ttyUSB0</strong>
looking at sysfs device: /sys/devices/pci0000:00/0000:00:1d.3/usb4/4-2/4-2.
3/4-2.3:1.0/ttyUSB0
found driver: pl2303 from module: pl2303
found driver: pl2303 from module: pl2303
found driver: usb from module: usbcore
found driver: usb from module: usbcore
found driver: usb from module: usbcore
found driver: uhci_hcd from module: uhci_hcd
 
Potete scaricare un file di esempio contenente questo script dal web site del libro, fornito nella sezione "How to Contact Us" in Preface.
 
#!/bin/sh
#
# Find all modules and drivers for a given class device.
#
if [ $# != "1" ] ; then<br>
  echo<br>
  echo "Script to display the drivers and modules for a specified sysfs
  class device"
  echo "usage: $0 <CLASS_NAME>"
  echo
  echo "example usage:"
  echo " $0 sda"
  echo "Will show all drivers and modules for the sda block device."
  echo
  exit 1
fi
DEV=$1
if test -e "$1"; then
  DEVPATH=$1
else
  # find sysfs device directory for device
  DEVPATH=$(find /sys/class -name "$1" | head -1)
  test -z "$DEVPATH" && DEVPATH=$(find /sys/block -name "$1" | head -1)
  test -z "$DEVPATH" && DEVPATH=$(find /sys/bus -name "$1" | head -1)
  if ! test -e "$DEVPATH"; then
  echo "no device found"
  exit 1
  fi
fi
echo "looking at sysfs device: $DEVPATH"
if test -L "$DEVPATH"; then
  # resolve class device link to device directory
  DEVPATH=$(readlink -f $DEVPATH)
  echo "resolve link to: $DEVPATH"
fi
if test -d "$DEVPATH"; then
  # resolve old-style "device" link to the parent device
  PARENT="$DEVPATH";
  while test "$PARENT" != "/"; do
  if test -L "$PARENT/device"; then
    DEVPATH=$(readlink -f $PARENT/device)
    echo "follow 'device' link to parent: $DEVPATH"
    break
  fi
  PARENT=$(dirname $PARENT)
  done
fi
while test "$DEVPATH" != "/"; do
  DRIVERPATH=
  DRIVER=
  MODULEPATH=
  MODULE=
  if test -e $DEVPATH/driver; then
  DRIVERPATH=$(readlink -f $DEVPATH/driver)
  DRIVER=$(basename $DRIVERPATH)
  echo -n "found driver: $DRIVER"
  if test -e $DRIVERPATH/module; then
    MODULEPATH=$(readlink -f $DRIVERPATH/module)
    MODULE=$(basename $MODULEPATH)
    echo -n " from module: $MODULE"
  fi
  echo
  fi
  DEVPATH=$(dirname $DEVPATH)
done
 
 
----
This is an indipendent translation of the book [http://www.kroah.com/lkn/ Linux Kernel in a Nutshell] by [http://www.kroah.com/log/ Greg Kroah-Hartman]. This translation (like the original work) is available under the terms of [http://creativecommons.org/licenses/by-sa/2.5/ Creative Commons Attribution-ShareAlike 2.5].
----
 
[http://www.kernel.org/pub/linux/kernel/people/gregkh/lkn/lkn_pdf/ch07.pdf ''Capitolo originale'']
[[Categoria:Kernel]]

Versione attuale delle 17:05, 23 giu 2024

Banner-buster.png

Indice delle Guide

Di seguito troverete un indice parzialmente completo delle guide contenute su Wiki.

La totalità delle guide è disponibile nella lista delle categorie qua a destra.

Questo Wiki - Guide@Debianizzati.Org - vuole essere prima di tutto un punto di raccolta ideale per le conoscenze acquisite dai singoli durante l'uso di Debian GNU/Linux in ambito casalingo e/o lavorativo, in modo che il sapere di uno diventi quello di tutti.

Le guide ritenute meglio scritte e più approfondite, dopo un processo di controllo e revisione a cui tutti siete liberi di partecipare, vengono classificate Debianized e contrassegnate dalla Debian Swirl: Swirl.png. Per ulteriori informazioni sul processo di revisione vedere: Evoluzione delle guide.

Potete trovare un elenco completo delle guide Debianized in questa pagina.

Le guide contrassegnate da questa immagine Swirl blu.png rimandano ad articoli della e-zine di Debianizzati.

Mondo Debian

Introduzione a Debian

Installazione sistema operativo

Guide per immagini

Boot loader

Grub e Grub 2

Altri

Installazione e gestione dei pacchetti

Lato Client

Pacchetto apt
Altro software
  • "Fare il downgrade di uno o più pacchetti", accorpata a "Impedire e/o retrocedere la versione dei singoli pacchetti"

Lato Server

Repository

  • "APT uso avanzato: mixare releases diverse", accorpata a "I repository e il loro utilizzo".
  • "Introduzione al pinning", accorpata a "I repository e il loro utilizzo".

Manutenzione

Creazione e modifica dei pacchetti

  • "Pacchetti binari e sorgenti", inclusa nella guida "Introduzione all'apt system".

Configurazione Sistema

Autenticazione locale

Kernel

Ports

Sistema

Backup

Filesystem e supporti di memorizzazione permanente

Sincronizzazione file e directory

Sistema / Tips & Tricks:

Elaborazione testi

Desktop

Desktop / Tips & Tricks

Xorg / Xfree

Applicazioni Esterne

Emulatori e Virtualizzazione

Altro

Tips and Tricks

Bash

Altro

Networking

Server

Database

Condivisione risorse

Condividere directory/file tra macchine Linux
  • "Come montare cartelle condivise da MS Windows su Debian", accorpata a "Samba: guida estesa"
Samba
Creare un controller di dominio usando OpenLDAP e Samba
FTP
OpenLDAP

Mailing

Http

Altri servizi di rete

Amministrazione

Gestione Remota/Locale

Connettività

Sicurezza

Firewalling

Monitoraggio & Scanning

Proxy

Tunneling

File Sharing

Hardware

Fotocamere digitali e dispositivi di memorizzazione di massa removibili

Modem e periferiche di rete

Modem UMTS/3G/HDSA

Schede di rete Wireless

Installazione dei driver delle schede wireless

Altro

Schede Video

Stampanti

Stampanti USB

Stampanti con porta parallela

Stampanti bluetooth

Scanner

  • Inserire qui eventuali altre guide su come far funzionare scanner con Debian

Palmari e cellulari

Server

Altro hardware

CPU Scaling
Dischi rigidi
Sensori Hardware

Portatili

Laptop Debianizzati

Troverete di seguito i resoconti d'installazione di Debian su dei portatili:

Infine un elenco di portatili, suddivisi per marca e modello, su cui Debian è stata installata con maggiore o minore successo:

Altro

Debian Live

Crittografia

Varie