|
|
Riga 1: |
Riga 1: |
| == Introduzione == | | == Introduzione == |
| Questa una breve guida su come configurare il sistema per poter eseguire applicazioni audio realtime.
| |
|
| |
|
| Per chi non conoscesse il mondo dell'audio professionale su GNU/Linux consiglio questo magnifico sito introduttivo:
| | Questo how-to spiegher� come installare i driver proprietari forniti da ATI per generare il modulo fglrx necessario al funzionamento del motore 3d delle schede grafiche. |
|
| |
|
| * [http://www.emillo.net/audio_midi emillo.net]
| | 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. |
|
| |
|
| Ci sono '''due passi''' distinti illustrati nella guida: ''il primo'' � patchare un kernel 2.6 con la patch '''realtime-preemption''' di ''Ingo Molnar'' per ottenere un kernel con la pi� bassa latenza possibile; ''il secondo'' � invece permettere a normali utenti l'esecuzione di applicazioni in modalit� realtime.
| | == Software richiesto == |
|
| |
|
| Il kernel 2.6 ha raggiunto ormai delle prestazioni molto buone per quanto riguarda la latenza (anni luce avanti rispetto al 2.4). Normalmente � dunque sufficiente configurare il sistema per permettere ai normali utenti di eseguire applicazioni realtime (''secondo passo'').
| | Sebbene i pacchetti per la generazione del modulo fglrx siano disponibili nel repository di Debian SID, 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 degli header), quindi del pacchetto linux-source e di tutti i pacchetti correlati a questo e necessari per la compilazione (<tt>build-essential</tt>). |
|
| |
|
| Se invece, si vuole non solo ridurre sotto la soglia (indicativa) dei ~ 5 ms la latenza minima ottenibile, ma soprattutto, aumentare notevolmente l'affidabilit� del sistema nel rispettare le basse latenze bisogna usare la patch realtime-preemption (''primo passo''). E' questo il caso, ad esempio, se si vuole lavorare in full-duplex su diverse tracce in realtime, ''senza correre il rischio di xrun'' (ovvero interruzioni del flusso audio). Oppure se si vuole suonare un sintetizzatore software usando la minima latenza possibile.
| | {{ Warningbox | Prima di far partire l'installazione di nuovi driver: |
|
| |
|
| La patch realtime-preemption (per quanto perfettamente usabile) continua ad essere sviluppata incessantemente, e le release sono spesso giornaliere. Il kernel a cui si applica la patch � sempre l'ultimo kernel stabile o, spesso, l'ultimo RC. Nella guida, a puro titolo esemplificativo, mi riferir� ad un kernel e ad una versione di patch specifica, anche se queste versioni diventeranno presto obsolete.
| | *Salvate una copia di <tt>/etc/X11/xorg.conf</tt> , che in caso di problemi andra' sostituita a quella nuova (creata dal configurer). |
| | * 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> |
| | }} |
|
| |
|
| {{Warningbox|Se non siete a vostro completo agio a compilare e patchare il kernel questa non � la via che fa per voi. Consiglio, in tal caso, di usare un setup per l'audio professionale pronto per l'uso, come la distrubuzione [http://64studio.com/ 64 Studio] (disponibile sia per processori 64 bit che per 32bit). Se volete invece informazioni dettagliate su come compilare il kernel alla ''debian-way'': [[Debian Kernel Howto]]. }}
| | == Metodologie di installazione == |
|
| |
|
| == Dal kernel stabile all'RC ==
| | Per quanto riguarda l'intallazione di quelli nuovi, esistono essenzialmente 3 metodi <u>alternativi</u>: |
| Consiglio di compilare l'ultima versione stabile del kernel, configurandola e testandola fino ad ottenere una configurazione ben funzionante. Come spunto potete usare [[Esempio configurazione kernel|questa configurazione]]. Nel mio caso ho usato il kernel 2.6.13.2 e la [[Debian Kernel Howto|debian-way]] di compilare il kernel.
| | # usare l'eseguibile Ati (indipendente dalla release di Debian) |
| | # creare i pacchetti .deb partendo dall'eseguibile Ati (indipendente dalla release di Debian) |
| | # ''Installare i driver dai repository. Valido solo per Etch e Sid. Driver meno aggiornati di quelli dal sito Ati''. |
|
| |
|
| Una guida completa sulla configurazione e l'ottimizzazione di un [[kernel vanilla]] (e non solo) per applicazioni audio � la seguente:
| | === Intallazione attraverso l'installer ATI === |
|
| |
|
| * [http://demudi.agnula.info/wiki/Low-latencyKernelBuildingHowto Low-latency Kernel Building Howto].
| | Da un terminale spostatevi nella cartella dove avete scaricato il file e date i permessi di esecuzione: |
| | <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>. |
|
| |
|
| La patch realtime-preemption pi� recente si applica solitamente ai kernel RC (Release Candidate). Questo perch� Ingo Molnar segue sempre il kernel pi� recente (quindi usa le RC come base di partenza per la sua patch). Quando viene rilasciato un nuovo kernel stabile Ingo Molnar rilascia pach per il nuovo kernel stabile, ma dopo alcune settimane passa nuovamente a seguire l'ultima RC uscita nel frattempo.
| | Riavviamo '''X'''. |
|
| |
|
| Quindi, si hanno due possibilit�:
| | Tutto dovrebbe essere a posto. |
| # compilare l'ultimo kernel stabile con l'ultima patch rilasciata per quel kernel
| |
| # compilare l'ultimo kernel rc e usare la versione corrente della pacth.
| |
|
| |
|
| Attualmente, ad esempio, l'ultimo kernel stabile, per il quale sia stata rilasciata la patch realtime preemption � il [ftp://ftp.it.kernel.org/pub/linux/kernel/v2.6/linux-2.6.14.tar.bz2 2.6.14] (non i successivi 2.6.14.x). Per tale kernel l'ultima patch disponibile � la [http://people.redhat.com/mingo/realtime-preempt/older/patch-2.6.14-rt22 2.6.14-rt22], come si pu� vedere [http://people.redhat.com/mingo/realtime-preempt/older/ qui].
| | ===Installazione manuale con generazione pacchetti specifici per Debian=== |
|
| |
|
| Se invece si vuole usare l'[http://people.redhat.com/mingo/realtime-preempt/ ultima patch] realtime-preemption (attualmente 2.6.15-rc5-rt2) bisogna usare anche l'[ftp://ftp.it.kernel.org/pub/linux/kernel/v2.6/testing/ ultimo kernel RC].
| | Con i privilegi di root, rimuoviamo i vecchi pacchetti del modulo <tt>fglrx</tt>, se presenti: |
| | <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> |
|
| |
|
| Per passare da un kernel stabile ad un RC basta fare un <tt>make oldconfig</tt> in modo da configurare solo le nuove voci. Questo metodo "a due passi" permette di separare i problemi dovuti ad un eventuale errore di configurazione del kernel stabile dai problemi potenzialmente introdotti dall'uso di un kernel RC non stabile.
| | ====Compilazione del modulo <tt>fglrx</tt>==== |
|
| |
|
| == La patch realtime-preemption ==
| | Adesso va compilato il modulo <tt>fglrx</tt>, con <tt>module-assistant</tt> (m-a): |
| L'archivio delle patch realtime-premption si trova a [http://people.redhat.com/mingo/realtime-preempt/ questo indirizzo]. La patch realtime-preemption usata di seguito (a puro titolo esemplificativo) � la 2.6.14-rc5-rt5, voi usate la versione pi� recente disponibile. La patch � un semplice file di testo. Il suo nome � del tipo <tt>patch-''<kernel version>''-''<patch version>''</tt>. Bisogna applicare la patch all'esatta versione del kernel indicata dal nome. Di seguito viene usata la [http://people.redhat.com/mingo/realtime-preempt/older/patch-2.6.14-rc5-rt5 versione rt5 applicata al kernel 2.6.14-rc5]. Tenete presente che nuove versioni della patch vengono rilasciate giornalmente.
| | <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>. |
|
| |
|
| Per applicare la patch basta copiarla in <tt>/usr/src</tt>, entrare della dir del kernel e lanciare il comando, nel mio esempio:
| | Riavviamo '''X'''. |
|
| |
|
| $ cat ../patch-2.6.14-rc3-rt2 | patch -p1 -t
| | {{ Warningbox | Ad ogni aggiornamento del kernel bisogna ricompilare il modulo <tt>fglrx</tt>. }} |
|
| |
|
| A questo punto nuovamente un <tt>make oldconfg</tt> ci permetter� di configurare le voci inserite dalla patch. Assicurarsi di scegliere '''Complete Preemption (Real-Time)''' in:
| | ===Installazione dei driver dai repository=== |
|
| |
|
| <pre>
| | '''Attenzione''': Questo metodo � valido solo per chi possiede Debian Etch o Sid. |
| Processor type and features --->
| |
| Preemption Mode (Complete Preemption (Real-Time))
| |
| </pre>
| |
|
| |
|
| per il resto ho lasciato tutte le altre nuove voci su NO (la maggior parte di esse serve, infatti, per attivare vari strumenti di debug).
| | 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]]. |
|
| |
|
| Non ci resta che compilare il kernel:
| | In teoria abbiamo finito, bisogna solamente configurare [[#Struttura del file xorg.conf|<tt>/etc/X11/xorg.conf</tt>]] e riavviare '''X'''. |
|
| |
|
| $ fakeroot make-kpkg --append-to-version -realtime --revision 0.1 kernel_image
| | '''Nota:''' Consultate anche il manuale di <tt>fglrx</tt> . ( <tt>man fglrx</tt> ). |
|
| |
|
| ed installare il pacchetto, per ulteriori informazioni su questo passaggio: [[Debian Kernel Howto]].
| | == Struttura del file xorg.conf == |
|
| |
|
| | Un esempio di <tt>/etc/X11/xorg.conf</tt> |
|
| |
|
| == Modalit� realtime e realtime scheduling ==
| | <pre> |
|
| |
|
| La modalit� realtime � un particolare privileggio di esecuzione che un'applicazione pu� avere . Questa modalit� permette ad una applicazione di avere accesso alla CPU con la massima priorita (rispetto ad ogni altra applicazione in attesa) ogni volta che venga richiesto, impedendo inoltre che un'altra applicazione possa a sua volta interrompere l'esecuzione (a meno che non sia anch'essa realtime).
| | ### /etc/X11/xorg.conf ### |
|
| |
|
| Questo permette di tenere in esecuzione applicazioni a bassa latenza, senza il rischio che altre applicazioni non-realtime possano disturbarle. Si capisce come questa modalit� sia importantisissima nelle applicazioni audio professionali (ad esempio una sessione di registrazione non verr� mai interrotta anche se molte applicazioni non realtime saturano la CPU!).
| | Section "ServerLayout" |
| | Identifier "Default Layout" |
| | Screen 0 "aticonfig-Screen[0]" 0 0 |
| | InputDevice "Keyboard" |
| | InputDevice "Mouse" |
| | InputDevice "Touchpad" |
| | EndSection |
|
| |
|
| D'altro canto, questa modalit�, pone dei seri problemi di sicurezza dato che un'applicazione potrebbe (a causa di un errore o di un comportamento malevolo) occupare la CPU per un tempo indefinito, senza poter essere interrrotta, impedendo dunque la normale applicazione degli altri programmi.
| | 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 |
|
| |
|
| Normalemente, quindi, solo root ha i privileggi per lanciare applicazioni in modalit� realtime. Questo � un problema, dato che (ad esempio) Jack e tutte le applicazioni che vi si connettono dovrebbero essere lanciate da root per poter funzionare in modalit� realtime, e questo costituirebbe un ancor pi� grosso problema di sicurezza.
| | 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 |
|
| |
|
| Per risolvere il problema bisogna consentire l'uso della modalit� realtime anche a normali utenti ma in maniera "controllata".
| | Section "InputDevice" |
| | Identifier "Keyboard" |
| | Driver "kbd" |
| | Option "CoreKeyboard" |
| | Option "XkbRules" "xorg" |
| | Option "XkbModel" "pc105" |
| | Option "XkbLayout" "it" |
| | EndSection |
|
| |
|
| Attualmente esistono due approcci per raggiungere lo scopo:
| | Section "InputDevice" |
| | Identifier "Mouse" |
| | Driver "mouse" |
| | Option "CorePointer" |
| | Option "Device" "/dev/input/mice" |
| | Option "Protocol" "ExplorerPS/2" |
| | Option "Emulate3Buttons" "true" |
| | EndSection |
|
| |
|
| # Usare il modulo <code>realtime-lsm</code>
| | Section "InputDevice" |
| # Usare gli '''rlimits'''
| | 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 |
|
| |
|
| Entrambi gli approcci possono essere usati sia con kernel vanilla che con kernel realtime-preemption.
| | 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 |
|
| |
|
| === Il modulo <tt>realtime-lsm</tt> ===
| | Section "Device" |
| Il modulo <code>realtime-lsm</code> permette ad un normale utente inserito nel gruppo <code>audio</code> di eseguire applicazioni in modalit� realtime. Questo � il vecchio approccio, che verr� man mano sostituito nelle varie distro dall'uso degli rlimits (vedi oltre).
| | Identifier "aticonfig-Device[0]" |
| | Driver "fglrx" |
| | Option "VideoOverlay" "on" |
| | Option "OpenGLOverlay" "off" |
| | Option "DesktopSetup" "horizontal,reverse" |
| | BusID "PCI:1:0:0" |
| | EndSection |
|
| |
|
| Su debian l'installazione del modulo � molto semplice: basta installare il pacchetto <code>realtime-lsm-source</code> ed usare <tt>[[Pagina di manuale di module-assistant|module-assistant]]</tt> per compilare e pacchettizzare il modulo.
| | 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 |
|
| |
|
| In pratica, dopo aver fatto il boot del kernel per il quale si vuole installare il modulo, (e aver installato <code>realtime-lsm-source</code>) basta il seguente comando:
| | Section "DRI" |
| | Mode 0666 |
| | EndSection |
|
| |
|
| $ m-a build realtime-lsm
| | ### End Of File ### |
| | |
| per compilare e creare un pacchetto per il modulo. A questo punto non ci resta che installare il pacchetto <code>realtime-lsm</code> creato.
| |
| | |
| Questo modulo non � stato accettato (ne lo sar� mai) nel tree ufficiale del kernel per i potenziali problemi di sicurezza legati al suo utilizzo. In particolare per il suo corretto funzionamento devono essere attivate le seguenti voci di configurazione del kernel:
| |
| | |
| <pre>
| |
| Security options --->
| |
| [*] Enable different security model
| |
| <M> Default Linux Capabilities
| |
| </pre> | | </pre> |
|
| |
|
| ''(l'ultima voce deve necessariamente essere un modulo!)''
| | == Alcuni Test == |
|
| |
|
| Nei recenti kernel binari di Etch le precendenti condizioni non sono soddisfatte, percui il modulo '''realtime-lsm''' non funzioner� con tali kernel. Inoltre il modulo realtime-lsm � ormai ufficialmente deprecato in debian Etch.
| | 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. |
|
| |
|
| In questi casi bisogner� ricompilare il kernel oppure usare l'approccio tramite rlimits.
| | 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*. |
|
| |
|
| === Usare gli rlimits === | | Per testare l'accelerazione � possibile utilizzare anche i tools di Mesa: |
| | <pre># apt-get install mesa-utils |
| | $ glxgears -printfps</pre> |
| | Appaiono tre ingranaggi rotanti e la conta dei fotogrammi: |
| | <pre>14045 frames in 5.0 seconds = 2808.862 FPS |
| | 14115 frames in 5.0 seconds = 2822.858 FPS |
| | 14196 frames in 5.0 seconds = 2839.177 FPS</pre> |
|
| |
|
| È gi� presente nel kernel un nuovo meccanismo pi� sicuro per concedere i privileggi di realtime chiamato rlimits che sostituisce completamente il modulo <tt>realtime-lsm</tt>.
| | ==File di log== |
|
| |
|
| Gli rlimits sono supportati da PAM dalla versione 0.80, le versioni precendenti richiedono una patch. Attualmente in Debian Sid ed Etch � presente la 0.79, mentre in Sarge c'� la 0.76. Ci sono dei pacchetti non ufficiali, gi� pachati, che possono essere usati nelle varie versioni di debian:
| | 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�( |
|
| |
|
| * '''Debian Sarge''': installare libpam-modules da [http://techweb.rfa.org/debrfa/dists/sarge/main/binary-i386/ qui].
| | Se abbiamo installato i driver con l'installer Ati, esiste anche questo piccolo log: <tt>/usr/share/fglrx/fglrx-install.log</tt> |
| * '''Debian Etch''': si pu� usare senza problemi il pacchetto <tt>[http://www.ubuntustudio.com/uploads/breezy/libpam-modules_0.76-22ubuntu3studio1_i386.deb libpam-modules]</tt> fornito da [http://www.ubuntustudio.com/ ubuntustudio]. Assicuratevi inoltre di mettere il pacchetto in ''hold'' per evitare alla versione pi� recente (la 0.79) presente in etch. Per mettere in ''hold'' il paccheto basta selezionarlo in [[aptitude]] e premere <tt>'''='''</tt>.
| |
| * '''Debian Sid''': c'� un pacchetto specifico per sid creato da ''Burkhard Ritter'' a [http://seite9.de/~burkhard/pam_debian_rlimits/ questo indirizzo].
| |
|
| |
|
| Se invece non vi fidate e volete patchare il vostro pacchetto <tt>libpam-modules</tt> da soli trovate la patch [http://fsb.gotdns.org/~froh/files/pam-rlimits_debian/ qui] (''originale'') e [http://www.ubuntustudio.com/uploads/pam-0.76-rlimits.patch qui] (''modificata da ubuntustudio''). Le differenze tra le due patch dovrebbero essere solo cosmetiche. Una veloce guida su come applicare la patch e ricompilare il pacchetto la trovate [http://www.ubuntustudio.com/wiki/index.php/Breezy:Rlimits-Aware_PAM qui].
| | == Tips and Tricks == |
|
| |
|
| Una volta installato il pacchetto, in un modo o nell'altro, dovrete assicurarvi che di aver impostato i giusti permessi in <tt>/etc/security/limits.con</tt> per gli utenti del gruppo <tt>audio</tt>. Ad esempio: | | * 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. |
|
| |
|
| @audio - nice -10
| | ---- |
| @audio - rtprio 99
| |
| @audio - memlock 250000
| |
| | |
| == Conclusioni ==
| |
| Con un kernel cos� ottimizzato si raggiungono prestazioni realtime davvero spinte. Io ad esempio, con una modestissima SB Audigy 1 posso fare partire jack a 32 frame x 2 periodi @ 48000Hz (latenza 1.3 ms!) in modalit� solo playback. Qualche xrun avviene ancora a latenze cos� basse se si eseguono altre operazioni sulla macchina. Per avere la massima affidabilit� in full-duplex utilizzo usualmente jack a 128x2 @ 48000Hz.
| |
| | |
| In bocca al lupo e...
| |
|
| |
|
| Happy Debian!
| | Autore: [[User:rasca|rasca]] 09:04, 17 July 2006 (CEST) |
| | |
| == Links ==
| |
| | |
| * http://www.emillo.net/home
| |
| * http://www.djcj.org/LAU/guide/index.php
| |
| * http://tapas.affenbande.org/?page_id=3
| |
| * [http://demudi.agnula.org/wiki/Low-latencyKernelBuildingHowto Low-latency Kernel Building How-to]
| |
| * [http://alsa.opensrc.org/RealtimeKernelAndPAM Alsa Wiki: Realtime Kernel And PAM]
| |
| | |
| ----
| |
|
| |
|
| Autore: [[Utente:TheNoise|~ The Noise]]
| | Ampliato da: [[Utente:Superflieriam|Superflieriam]] |
|
| |
|
| [[Categoria:Kernel]] | | [[Categoria:Kernel]] |
| [[Categoria:Audio]]
| |