LKN: Bibliografia: differenze tra le versioni

Vai alla navigazione Vai alla ricerca
m
nessun oggetto della modifica
(Avvio traduzione)
mNessun oggetto della modifica
Riga 1: Riga 1:
== Introduzione ==
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].


Questo how-to spiegher� come installare i driver proprietari forniti da ATI per generare il modulo <tt>fglrx</tt> necessario al funzionamento del motore 3d delle schede grafiche.
== Syntax Higlight ==
La prima funzione che generalmente si abilita quando si usa un editor per programmazione � il ''syntax highlight''.


Come � noto i driver ATI soffrono di una difficile installazione e configurazione. Sfortunatamente (o forse no) esistono molteplici configurazioni hardware che ostacolano l'installazione dei driver. Spesso, anche seguendo un guida perfetta, non si riesce ad attivare l'accelerazione 3D al primo colpo (molto raramente si hanno anche problemi di visualizzazione nel desktop). Solamente con i successivi tentativi (variando anche il metodo, o la guida) solitamente si raggiunge lo scopo prefisso. Il modesto consiglio � di non disperarsi, magari tirare cazzotti pesanti al case, ma provare finch� non si riesce.
Per abilitarlo in Vim per i vari linguaggi (incluso pyton) � sufficiente decommentare in<tt>/etc/vim/vimrc</tt> la riga:


== Software richiesto ==
  syntax on


Sebbene i pacchetti per la generazione del modulo <tt>fglrx</tt> siano disponibili nel repository di Debian, il consiglio quello di utilizzare l'installer fornito da ATI in quanto pi aggiornato.
Oltre a questo, nel caso in cui si voglia compilare il modulo senza sfruttare l'installer, sar necessario disporre dei sorgenti del kernel (o gli header), quindi del pacchetto linux-source e di tutti i pacchetti correlati a questo e necessari per la compilazione (<tt>build-essential</tt>).


{{ Warningbox | Prima di far partire l'installazione di nuovi driver:
== Gestire l'indentazione: TAB, spazi e ''autoindent'' ==
In python � di vitale importanza gestire correttamente l'indentazione dato che (a differenza dei linguaggi ''free-form'' come C) questa � parte integrante della sintassi.


* Salvate una copia di <tt>/etc/X11/xorg.conf</tt> , che in caso di problemi andra' sostituita a quella nuova (creata dal configurer).
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 in 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 quasi universalmente in python � pari ad una larghezza di 4 spazi. Per ricapitolare il nostro scopo � ottenere:
* Verificate che non sia presente la cartella <tt>/usr/share/fglrx/</tt>. Se � presente, significa che sono installati dei vecchi driver fglrx. Per rimuoverli:
<pre># cd /usr/share/fglrx/
# sh ./fglrx-uninstall.sh</pre>
e seguite le istruzioni.
* Fate un '''<tt>aptitude purge</tt>''' di vecchi pacchetti di vecchi driver, se sono installati. Per esempio (i nomi dei pacchetti potrebbero essere diversi):
<pre># aptitude purge fglrx-driver fglrx-kernel-src fglrx-control fglrx-kernel-2.6.17-2-686</pre>
}}


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


Per quanto riguarda l'intallazione di quelli nuovi, esistono essenzialmente <u>3 metodi alternativi</u>:
Per ottenere questo comportamento in Vim/gVim si pu� inserire il seguente codice nel file di configurazione <tt>/etc/vim/vimrc</tt>:
# usare l'eseguibile Ati
# creare i pacchetti ''.deb'' partendo dall'eseguibile Ati
# installare i driver dai repository


=== Intallazione attraverso l'installer ATI ===
  filetype plugin indent on
  autocmd FileType python      setlocal sw=4 sts=4 et tw=78 sta


Da un terminale spostatevi nella cartella dove avete scaricato il file e date i permessi di esecuzione:
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 :, poich� la loro assenza fa si che il cursore non venga indentato.
<pre>$ chmod +x ati-driver-installer-8.26.18-x86.run</pre> quindi, da root:
<pre># sh ./ati-driver-installer-8.26.18.x86.run</pre>
e seguite le istruzioni.
Poi, sempre con i permessi di root, aggiornate il file di configurazione <tt>xorg.conf</tt>:
<pre># cd /etc/X11/
# aticonfig --initial
# aticonfig --overlay-type=Xv</pre>
e se volete settare meglio la configurazione:
<pre># aticonfig</pre>
il quale ci dar� un lungo output con la descrizione di tutte le opzioni che possiamo usare con <tt>aticonfig</tt>.


A questo punto non ci resta che compilare il modulo del kernel fglrx. I metodi possono essere 2:
La seconda riga associa ai tipi di file python le seguenti impostazioni:


1) Usare module-assistant un pacchetto fornito per compilare moduli contenenti nel kernel-headers
;<tt>tabstop</tt> oppure <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.


2) Compilare a mano il modulo.
;<tt>expandtab</tt> oppure <tt>et</tt>: riempe con spazi le indentazioni generate dalla pressione del tasto TAB.


Preferendo la seconda via perch� non richiede il pacchetto kernel-header e perch� applicabile a qualsiasi tipo di kernel sia quello distribuito dai debian repository che i kernel vanilla di www.kernel.org il metodo � il seguente:
;<tt>softtabstop</tt> oppure <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>).


Spostarci nella directory /lib/module/fglrx/build_mod da utenti root:
;<tt>shiftwidth</tt> oppure <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/deindenta con '''>''' o con '''<'''.


In questa directory adesso basta lanciare
;<tt>smarttab</tt> oppure <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''').


<pre>./make.sh</pre>


Accertarsi che tutto sia andato a buon fine con una scritta "done" e poi spostarci nella directory precedente a build_mod ovvero /lib/modules/fglrx
== Folding: le piegature nel codice ==
A questo punto lanciare il comando
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.


<pre>./make_install.sh </pre>
Questo � possibile in Vim tramite il ''folding'' (''piegature''). Esistono dei plugin per Vim che riconoscono le strutture sintattiche del python e creano automaticamente le piegature. Tuttavia il metodo illustrato di seguito � ancora pi� semplice: piegature automatiche in base all'indentazione. Nel caso del python questo semplice metodo � particolarmente efficace.  


Se tutto � andato a buon fine avete compilato il vostro bel modulo fglrx e per evitare di riavviare il sistema basta semplicemente entrare in linea di comando con CTRL + ALT + F1, effettuare il login come utente root e poi digitare
Per abilitarlo basta inserire in <tt>/etc/vim/vimrc</tt>:


<pre> /etc/init.d/gdm o kdm stop </pre>
  set foldmethod=indent


montare il modulo fglrx con
Di seguito sono elencati i principali comandi per gestire le piegature:


<pre> modprobe fglrx </pre>
;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)


e riavviare il sistema


<pre> /etc/init.d/gdm o kdm restart </pre>
== 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 <code>make</code>.


Per controllare che la vostra accelerazione 3D funzioni basta digitare da shell come utente normale
Nel caso del python propongo una soluzione ''quick and dirty'' che associa ad un tasto l'esecuzione dello script.


<pre> fglrxinfo </pre>
Aggiungendo nell'ormai famoso <tt>/etc/vim/vimrc</tt>:
Nel mio caso l'output � il seguente:


<pre>display: :0.0  screen: 0
  map <f5> :w<CR>:!python %<CR>
OpenGL vendor string: ATI Technologies Inc.
OpenGL renderer string: ATI Radeon Xpress Series
OpenGL version string: 2.0.6473 (8.37.6)</pre>


<pre>glxinfo | grep rendering </pre>
alla pressione del tasto F5 verr� eseguito <tt>python</tt> passando come paramentro il file corrente (indicato da '''%''').


e aspettare che vi dia come output


<pre>direct rendering: Yes</pre>
== 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 degli IDE pi� avanzati.


N.B.: Se non avete glxinfo installare il pacchetto mesa-utils
[[image: Python-gvim-7-omnicompletion.png|thumb|Screenshot della funzione di omnicompletion di Vim 7 con linguaggio di programmazione Python.]]


Questo metodo risulta pi� semplice ed efficace della pacchettizzazione. Se usate kernel vanilla la procedura � la medesima. Attenzione ad usare i kernel 2.6.20 poich� hanno un bug e quindi viene corretto da una patch al modulo fglrx.Tale patch � possibile trovarla in rete.
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.


===Installazione manuale con generazione pacchetti specifici per Debian===
Una immagine vale pi� di mille parole. Potete notare la funzione di omnicompletion in funzione nello screenshot qui a fianco. Notare come sulla parte superiore della finestra sia apparsa automaticamente la documentazione della classe sulla quale si st� operando l'autocompletamento.


Con i privilegi di root, rimuoviamo i vecchi pacchetti del modulo <tt>fglrx</tt>, se presenti:
Per effettuare l'autocompletamento basta premere "CTRL+x o", ma ricordate che � necessaria la versione 7 (o successive) di Vim. &Egrave; opportuno scaricare anche la versione aggiornata del file che gestisce l'autocompletamento in python. Ecco un link:
<pre># rm /usr/src/fglrx-kernel*.deb</pre>
E' necessario installare i seguenti pacchetti:
<pre># apt-get install module-assistant build-essential fakeroot dh-make debconf libstdc++5 gcc-3.4-base</pre>
Spostiamoci nella cartella dove abbiamo scaricato l'eseguibile Ati e diamogli i permessi di esecuzione:
<pre>$ chmod +x ati-driver-installer-8.26.18-x86.run</pre>
Poi, per creare i 5 pacchetti .deb:
<pre>$ sh ./ati-driver-installer-8.26.18-x86.run --buildpkg Debian/[release]</pre>
Ad esempio:
<pre>$ sh ./ati-driver-installer-8.26.18-x86.run --buildpkg Debian/testing</pre>
Per installarli (installiamo solo quelli fondamentali):
<pre>$ su
Password:
# dpkg -i fglrx-driver_8.26.18-1_i386.deb
# dpkg -i fglrx-kernel-src_8.26.18-1_i386.deb
# dpkg -i fglrx-control_8.26.18-1_i386.deb</pre>


====Compilazione del modulo <tt>fglrx</tt>====
* [http://www.vim.org/scripts/script.php?script_id=1542 pythoncomplete.vim]


Adesso va compilato il modulo <tt>fglrx</tt>, con <tt>module-assistant</tt> (m-a):
A volte � anche comodo effettuare un autocompletamento ''non intelligente'', basato sulle parole presenti nel file corrente. Questo autompletamento si ottiene premendo "CTRL+n". Quest'ultimo metodo pu� risultare utile per completare nomi di variabili o di funzioni.
<pre># m-a prepare
# m-a update
# m-a build fglrx
# m-a install fglrx
# depmod -a</pre>
Quindi muoviamoci in <tt>/etc/X11/</tt>:
<pre># cd /etc/X11/</pre>
e aggiorniamo il file di configurazione di X:
<pre># aticonfig --initial
# aticonfig --overlay-type=Xv</pre>
Naturalmemte � possibile modificare <tt>etc/X11/xorg.conf</tt> anche a manina (per fare questo consultate...uhm, forse c'� qualche cosa in <tt>man xorg.conf</tt>) oppure consultando e usando <tt>aticonfig</tt>.


Riavviamo '''X'''.


{{ Warningbox | Ad ogni aggiornamento del kernel bisogna ricompilare il modulo <tt>fglrx</tt>. }}
== Tips and Tricks ==
 
Alcuni ulteriori consigli nell'uso di Vim:
===Installazione dei driver dai repository===
 
Innanzi tutto installiamo i pacchetti necessari:
<pre># apt-get install fglrx-control fglrx-driver fglrx-driver-dev fglrx-kernel-src</pre>
Siccome il modulo di cui abbiamo bisogno (<tt>fglrx</tt>) � sotto forma di sorgenti (<tt>fglrx-kernel-src</tt>), lo compiliamo e lo installiamo utilizzando <tt>module-assistant</tt>, come descritto [[#Compilazione del modulo fglrx|qui]].
 
In teoria abbiamo finito, bisogna solamente configurare [[#Struttura del file xorg.conf|<tt>/etc/X11/xorg.conf</tt>]] e riavviare '''X'''.
 
'''Nota:''' Consultate anche il manuale di <tt>fglrx</tt> . ( <tt>man fglrx</tt> ).
 
== Struttura del file xorg.conf ==
 
Un esempio di <tt>/etc/X11/xorg.conf</tt>
 
<pre>
 
### /etc/X11/xorg.conf ###
 
Section "ServerLayout"
Identifier    "Default Layout"
Screen      0  "aticonfig-Screen[0]" 0 0
InputDevice    "Keyboard"
InputDevice    "Mouse"
InputDevice    "Touchpad"
EndSection
 
Section "Files"
# path to defoma fonts
FontPath    "/usr/share/fonts/X11/misc"
FontPath    "/usr/share/fonts/X11/100dpi/:unscaled"
FontPath    "/usr/share/fonts/X11/75dpi/:unscaled"
FontPath    "/usr/share/fonts/X11/Type1"
FontPath    "/usr/share/fonts/X11/100dpi"
FontPath    "/usr/share/fonts/X11/75dpi"
FontPath    "/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType"
EndSection
 
Section "Module"
Load  "synaptics"
Load  "bitmap"
Load  "ddc"
Load  "dri"
Load  "extmod"
Load  "freetype"
Load  "glx"
Load  "int10"
Load  "type1"
Load  "vbe"
#      Load  "GLcore"
EndSection
 
Section "InputDevice"
Identifier  "Keyboard"
Driver      "kbd"
Option     "CoreKeyboard"
Option     "XkbRules" "xorg"
Option     "XkbModel" "pc105"
Option     "XkbLayout" "it"
EndSection
 
Section "InputDevice"
Identifier  "Mouse"
Driver      "mouse"
Option     "CorePointer"
Option     "Device" "/dev/input/mice"
Option     "Protocol" "ExplorerPS/2"
Option     "Emulate3Buttons" "true"
EndSection
 
Section "InputDevice"
Identifier  "Touchpad"
Driver      "synaptics"
Option     "Device" "/dev/psaux"
Option     "Protocol" "auto-dev"
Option     "LeftEdge" "1700"
Option     "RightEdge" "5300"
Option     "TopEdge" "1700"
Option     "BottomEdge" "4200"
Option     "FingerLow" "25"
Option     "FingerHigh" "30"
Option     "MaxTapTime" "180"
Option     "MaxTapMove" "220"
Option     "VertScrollDelta" "100"
Option     "MinSpeed" "0.10"
Option     "MaxSpeed" "0.30"
Option     "AccelFactor" "0.0150"
Option     "SHMConfig" "on"
        Option      "AlwaysCore" "true"
EndSection
 
Section "Monitor"
Identifier  "aticonfig-Monitor[0]"
HorizSync    30.0 - 70.0
VertRefresh  50.0 - 100.0
Option     "VendorName" "ATI Proprietary Driver"
Option     "ModelName" "Generic Autodetecting Monitor"
Option     "DPMS" "true"
EndSection
 
Section "Monitor"
Identifier  "aticonfig-Monitor[1]"
Option     "DPMS" "true"
EndSection
 
Section "Device"
Identifier  "aticonfig-Device[0]"
Driver      "fglrx"
Option     "VideoOverlay" "on"
Option     "OpenGLOverlay" "off"
Option     "DesktopSetup" "horizontal,reverse"
BusID      "PCI:1:0:0"
EndSection
 
Section "Screen"
Identifier "aticonfig-Screen[0]"
Device    "aticonfig-Device[0]"
Monitor    "aticonfig-Monitor[0]"
DefaultDepth    24
SubSection "Display"
Viewport  0 0
Depth    24
Modes    "1280x800" "1280x1024" "1024x768" "800x600" "640x480"
EndSubSection
EndSection
 
Section "DRI"
Mode        0666
EndSection
 
### End Of File ###
</pre>
 
== Alcuni Test ==
 
Per verificare se abbiamo installato tutto correttamente:
<pre>$ fglrxinfo</pre>
dovrebbe dare un output simile a questo:
<pre>display: :0.0  screen: 0
OpenGL vendor string: ATI Technologies Inc.
OpenGL renderer string: MOBILITY RADEON 9700 Generic
OpenGL version string: 2.0.5879 (8.26.18)</pre>
Se al posto di ATI compare Mesa, c'� qualcosa che non va. L'installazione non � andata a buon fine.
 
Per testare l'accelerazione:
<pre>$ fgl_glxgears</pre>
Dovrebbe comparire un cubo rotante con sulle sei faccie degli ingranaggi rotanti e, sul terminale la conta dei frame:
<pre>Using GLX_SGIX_pbuffer
1610 frames in 5.0 seconds = 322.000 FPS
1640 frames in 5.0 seconds = 328.000 FPS
2093 frames in 5.0 seconds = 418.600 FPS</pre>
Se invece compaiono 4-5 righe di errori, c'� qualcosa che non va. L'installazione non � andata a buon fine. Ritenta, forse sarai pi� fortunat*.


Per testare l'accelerazione � possibile utilizzare anche i tools di Mesa:
# '''Commentare un blocco di codice'''
<pre># apt-get install mesa-utils
#* Premere CTRL+v e selezionare le righe di codice interessate
$ glxgears -printfps</pre>
#* premere <tt>'''I'''</tt> (i grande) e digitare il carattere interessato (solitamente #)
Appaiono tre ingranaggi rotanti e la conta dei fotogrammi:
#* premere ESC
<pre>14045 frames in 5.0 seconds = 2808.862 FPS
# '''Indentare e deindentare un blocco di codice'''
14115 frames in 5.0 seconds = 2822.858 FPS
#* Premere <tt>'''V</tt>''' (shift + v) ed entrare in Visual Mode
14196 frames in 5.0 seconds = 2839.177 FPS</pre>
#* Selezionare la parte di codice da in/deindentare
#* Premere <tt>'''></tt>''' per indentare o <tt>'''<</tt>''' per deindentare di 1 TAB


==File di log==
== Conclusioni ==
Questi sono solo piccoli suggerimenti per programmare in python con Vim. Come al solito, ogni correzione, suggerimento o aggiunta � ben accetto e anzi incoraggiato.


l file di log principale '''<tt>/var/log/Xorg.0.log</tt>''' e seguenti. Da spulciare, analizare, bruciare, supplicare. Insomma qui c' di tutto di pi. Ma a volte si pu anche non trovare nulla di anomalo e magari <tt>fgl_glxgears</tt> non funziona lo stesso. 8(


Se abbiamo installato i driver con l'installer Ati, esiste anche questo piccolo log: <tt>/usr/share/fglrx/fglrx-install.log</tt>
== Link ==
* [http://www.vim.org/ Homepage di Vim]
* [http://www.python.org/ Homepage di Python]
* [http://mail.python.org/pipermail/python-list/2005-July/330551.html Folding in Vim (thread su python list)]


== Tips and Tricks ==
* Una cosa importante, ma che resta comunque strana, scrivere, in <tt>/etc/X11/xorg.conf</tt>, i moduli <tt>dri</tt>, <tt>glx</tt> e <tt>GLcore</tt>, in questo ordine. Se ad esempio si mette <tt>GLcore</tt> per primo, l'accelerazione non andr e il log <tt>/var/log/Xorg.0.log</tt> riporter una serie di errori, tra cui warning sulla libreria <tt>/usr/lib/xorg/modules/extensions/libGLcore.so</tt> e  un errore verso la fine, tristemente incorniciato. Questo errore non so se sia circoscritto alla mia configurazione o se sia un cosa generale. L'unica cosa fare un po' di test.
* A volte si ottengono risultati migliori installando i driver con '''X non avviato'''.
* Se i driver sono molto recenti il modulo <tt>GLcore</tt> non bisognerebbe inserirlo in <tt>/etc/X11/xorg.conf</tt> : viene caricato automaticamente.
* Aggiornando le librerie Mesa (<tt>libgl1-mesa-dri</tt> oppure <tt>libgl1-mesa-glx</tt> ad esempio), ahim, pu capitare che l'accelerazione sparisca all'improvviso. L'unica cosa da fare probabilmente disinstallare i driver e installarli di nuovo.
* Per quanto riguarda le trasparenze di KDE, credo non siano supportate a livello hardware. Io non sono riuscito ad attivarle, infatti se aggiungo a <tt>/etc/X11/xorg.conf</tt> la sezione:
<pre>Section "Extensions"
Option "Composite" "Enable"
EndSection</pre>
l'accelerazione 3D non viene caricata.


----
----
Autore iniziale: [[Utente:TheNoise|~ The Noise]]


Autore: [[User:rasca|rasca]] 09:04, 17 July 2006 (CEST)
[[Categoria:Desktop]][[Categoria:Tips&Tricks]]
 
Ampliato da: [[Utente:Superflieriam|Superflieriam]]
 
[[Categoria:Hardware]]
[[Categoria:Desktop]]
[[Categoria:Kernel]]
27

contributi

Menu di navigazione