Debian Kernel Howto: differenze tra le versioni

→‎Installazione Pacchetti: chiarito (si spera) uso gruppo src
(→‎Installazione Pacchetti: chiarito (si spera) uso gruppo src)
Riga 1: Riga 1:
=Hardware=
Questa pagina raccoglie piccoli suggerimenti per sfruttare al meglio [http://www.vim.org/ Vim] e gVim con il linguaggio di programmazione [http://www.python.org/ Python].
* Processore: AMD AthlonXP-M 2600
* Memoria RAM: 512Mb
* Scheda Video: Nvidia GeForceGo
* Scheda Audio: nVidia Corporation nForce3
* Scheda Ethernet: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)
* Scheda Wireless: Broadcom Corporation BCM4306 802.11b/g Wireless LAN Controller (rev 03)


=Output di lspci=
== Syntax Higlight ==
<pre>Host bridge: nVidia Corporation nForce3 Host Bridge (rev a4)
La porima funzione che generlamente si abilita quando si usa un editor per programmazione � il syntax highlight.
ISA bridge: nVidia Corporation nForce3 LPC Bridge (rev a6)
SMBus: nVidia Corporation nForce3 SMBus (rev a4)
USB Controller: nVidia Corporation nForce3 USB 1.1 (rev a5)
USB Controller: nVidia Corporation nForce3 USB 1.1 (rev a5)
USB Controller: nVidia Corporation nForce3 USB 2.0 (rev a2)
Multimedia audio controller: nVidia Corporation nForce3 Audio (rev a2)
Modem: nVidia Corporation: Unknown device 00d9 (rev a2)
IDE interface: nVidia Corporation nForce3 IDE (rev a5)
PCI bridge: nVidia Corporation nForce3 PCI Bridge (rev a2)
PCI bridge: nVidia Corporation nForce3 AGP Bridge (rev a4)
Host bridge: Advanced Micro Devices [AMD] K8 NorthBridge
Host bridge: Advanced Micro Devices [AMD] K8 NorthBridge
Host bridge: Advanced Micro Devices [AMD] K8 NorthBridge
Host bridge: Advanced Micro Devices [AMD] K8 NorthBridge
VGA compatible controller: nVidia Corporation NV17 [GeForce4 440 Go 64M] (rev a3)
FireWire (IEEE 1394): Texas Instruments TSB43AB21 IEEE-1394a-2000 Controller (PHY/Link)
Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)
Network controller: Broadcom Corporation BCM4306 802.11b/g Wireless LAN Controller (rev 03)
CardBus bridge: Texas Instruments: Unknown device ac54 (rev 01)
CardBus bridge: Texas Instruments: Unknown device ac54 (rev 01)
System peripheral: Texas Instruments: Unknown device 8201 (rev 01)
</pre>


=Configurazione=
Per abilitarlo in Vim per i vari linguaggi (incluso pyton) � sufficiente decommentare in<tt>/etc/vim/vimrc</tt> la riga:


==Kernel==
  syntax on
Ho riscontrato problemi con la scheda ethernet con l'immagine del kernel ufficiale Debian.
Nonostante sia completamente supportata, veniva bloccata da watchdog dopo alcuni minuti di utilizzo corretto.
Ho risolto il problema ricompilando il kernel senza watchdog, anche se credo esistano soluzioni pi� eleganti...


==ACPI e Frequency Scaling==
Il supporto per l' ACPI (battery, button, fan, ecc...) funziona senza problemi,come anche il frequency scaling.


==Server grafico (Xfree86 e Xorg) e accellerazione 3D==
== Gestire l'indentazione: TAB, spazi e ''autoindent'' ==
La scheda funziona correttamente sia con i driver vesa che con i driver nv.Per l'accelerazione 3d per� ho dovuto installare i driver nvidia,i soli con cui ho raggiunto la risoluzione massima  di 1280x800.
In python � di vitale importanza gestire correttamente l'indentazione dato che (a differenza dei linguaggi ''free-form'' come C) questa � parte integrante della sintassi.


==Scheda Audio==
Il python di per se riconosce ogni tipo di indentazione (TAB, spazi, o un mix dei due). Nei moderni sistemi il TAB ha tuttavia una larghezza variabile ed impostabile a piacere. Per evitare dunque problemi di interoperabilit� tra persone che usano convezione diverse � universalmente consigliato di usare nei file di codice python solamente spazi oppure solamente TAB. Anche l'uso esclusivo di TAB pu� talvolta creare dei problemi di visualizzazione (e quindi difficolt� di lettura) a causa di una diversa larghezza usata. Per tagliare la testa al toro, dunque, il modo pi� robusto e portabile di programmare il python � quello di usare soltanto spazi. &Egrave; possibile impostare qualsiasi editor per programmazione in modo da sostituire automaticamente al TAB un numero di spazi pari alla larghezza dell'indentazione, e ovviamente anche vim non � da meno. La larghezza per una unit� di indentazione usata in modo quasi universalmente in python � pari ad una larghezza di 4 spazi. Per ricapitolare il nostro scopo � ottenere:
La scheda audio funziona perfettamente con ALSA.
E sufficiente installare ALSA con:
<pre># apt-get install alsa-base alsa-source alsa-utils alsamixergui</pre>
Configurarlo con:
<pre># alsaconf</pre>
E Sistemare i Livelli con:
<pre># alsamixergui</pre>


==Modem==
* Sostituzione alla pressione del tasto TAB con un numero equivalente di spazi
Non testato.
* Larghezza indentazione pari a 4 spazi.


==Scheda Ethernet==
Per ottenere questo comportamento in Vim/gVim si pu� inserire il seguente codice nel file di configurazione <tt>/etc/vim/vimrc</tt>:
Il supporto alla scheda ethernet � fornito nel kernel. Funziona anche con le immagini del kernel 2.6.8 installate da Debian per default.L'unico problema � trattato nella sezione Kernel.Il modulo che ho scelto di utilizzare �: Realtek RTL-8139 PCI Fast Ethernet Adapter, escludendo il modulo 8139 C+ in quanto sembra che dia dei problemi.


==Scheda Wireless==
  filetype plugin indent on
Le schede wireless broadcom non sono al momento supportate da linux. Per un funzionamento immediato per� si pu� ricorrere all'utilizzo di ndiswrapper con i driver proprietari per windows.Funziona in modo corretto con i driver forniti nel dvd di ripristino.
  autocmd FileType python      setlocal sw=4 sts=4 et tw=78 sta


----
La prima riga abilita l'indentazione automatica per i vari linguaggi di programmazione. In particolare per il python, se ad esempio dichiariamo una funzione su una riga, andando a capo avremo gi� il cursore indentato per poter scrivere il corpo della funzione con la giusta indenzatione. Stessa cosa vale per i vari <tt>'''if'''</tt>, <tt>'''for'''</tt>, ecc... Questa funzione � utile anche per accorgersi di errori sintattici come la mancanza dei :, poiche la loro assenza fa si che il cursono non venga indentato.
Autore: [[Utente:Jango|jango]]
 
[[Categoria:Laptop]]
La seconda riga imposta per i tipi di file python le seguenti impostazioni:
 
;<tt>tabstop<tt> o <tt>ts</tt>: larghezza del carattere TAB quando incontrato nel file. Noi non useremo caratteri TAB quindi questa impostazione pu� essere ignorata (e non � riportata infatti nell'esempio precendente). Viene elencata qui solo per chiarezza e completezza.
 
;<tt>expandtab</tt> o <tt>et</tt>: riempe con spazi le indentazioni generate dalla pressione del tasto TAB.
 
;<tt>softtabstop</tt> o <tt>sts</tt>: larghezza di un rientro causato dalla pressione di un TAB. Il rientro � creato inserendo spazi se <tt>'''et'''</tt> � settato, altrimenti viene usata una combinazione di spazi e caratteri TAB (questi ultimi hanno larghezza <tt>'''ts'''</tt>).
 
;<tt>shiftwidth</tt> o <tt>sw</tt>: larghezza di un rientro dell'indentazione automatica. &Egrave; usato anche per definire la larghezza del rientro che si aggiunge o toglie ad un blocco di testo quando si seleziona (con '''v''') e poi si indenta/deintenta con '''>''' o con '''<''.
 
;<tt>smarttab</tt> o <tt>sta</tt>: In combinazione con le opzioni precendenti questa impostazione permette di cancellare un rientro (4 spazi ''reali ''nel nostro caso) con una sola pressione del tasto '''BS''' (o '''BackSpace''').
 
== Folding: le piegature nel codice ==
Una funzione comoda durante la programmazione � la possibilit� di ripiegare del codice (ad esempio una funzione o una classe) in modo di avere una visione pi� compatta del file e facilitare la navigazione.
 
Questo � possibile in Vim tramite il ''folding'' (''piegature''). Esistono dei plugin per Vim che riconoscono le trutture sintattiche del python e creano automaticamente le piegature. Tuttavia il metodo illustrato di seguito � ancora pi� semplice: piegature autmatiche in base all'indentazione. Nel caso del python questo semplice metodo � particolarmente efficace.
 
Per abilitarlo basta inserire in <tt>/etc/vim/vimrc</tt>:
 
  set foldmethod=indent
 
Di seguito sono elencati i principali comandi per gestire le piegature:
 
;zo oppure Spazio: apre la piegature sotto il cursore (un solo livello)
;zO: apre la piegature sotto il cursore e ricorsivamente tutte le piegature in essa contenute
;zc: chiude la piegatura alla quale appartiene il blocco di codice indicato dal cursore (un solo livello)
;zC: chiude la piegatura alla quale appartiene il blocco di codice indicato dal cursore e ricorsivamente tutte le piegature che la contengono
;zr: apre tutte le piegature del file corrente di un livello
;zR: apre completamente le piegature contenute nel file corrente (tutti i livelli)
;zm: chiude tutte le piegature del file corrente di un livello
;zM: chiude completamente le piegature contenute nel file corrente (tutti i livelli)
 
 
== Eseguire python da Vim ==
Vim possiede caratteristiche avanzate che permettono di impostare i compilatori da usare per ogni linguaggio e il metodo di esecuzione del make.
 
Nel caso del python propongo una soluzione ''quick and dirty'' che associa ad un tasto l'esecuzione dello script.
 
Aggiungendo nell'ormai famoso <tt>/etc/vim/vimrc</tt>:
 
  map <f5> :w<CR>:!python %<CR>
 
alla pressione del tasto F5 verr� eseguito python passando come paramentro il file corrente (indicato da '''%''').
 
== Autocompletamento (aka omnicompletion) e documentazione integrata ==
Dalla versione 7 in Vim � stata inserita una funzione di autocompletamento intelligente per i vari linguaggi simile a quella presente in alcuni IDE pi� avanzati.
 
Per il python questa funzione permette di completare i nomi delle classi dei metodi e degli attributi tramite un comodo menu contestuale. Inoltre viene anche visualizzata contemporaneamente la docstring del metodo o della classe che si st� completando.
 
Una immagine vale pi� di mille parole:
 
{{stub}}
1 760

contributi