Changes

12,049 bytes added ,  22:28, 14 July 2010
Created page with 'Benvenuti nella pagina Wiki di Simone Giustetti. Languages: [http://www.giustetti.net/wiki/index.php/en/wine_multilib English] - '''Italiano''' ---- == Wine 64 bit <nowiki>&…'
Benvenuti nella pagina Wiki di Simone Giustetti.


Languages: [http://www.giustetti.net/wiki/index.php/en/wine_multilib English] - '''Italiano'''

----


== Wine 64 bit <nowiki>&amp;</nowiki> Slackware ==


Istruzioni per installare Wine su Slackware64 con il supporto per software a 32 bit.

Con la versione 13.0 Slackware, la distribuzione Linux pi<nowiki>&ugrave;</nowiki> vecchia e duratura, ha ufficialmente esteso il supporto all'architettura x86_64 a 64 bit. Come per gli altri port esistenti, anche la nuova Slackware64 <nowiki>&egrave;</nowiki> sviluppata su di un tree dedicato e non ha contatti con la versione standard. Slackware 64 <nowiki>&egrave;</nowiki> una distribuzione “64 bit only” vale a dire che pu<nowiki>&ograve;</nowiki> far girare esclusivamente software compilato a 64 bit: mancano le librerie di compatibilit<nowiki>&agrave;</nowiki> per eseguire codice a 32 bit che i processori a 64 bit comunque supporterebbero. Tutto il software normalmente distribuito con la versione ufficiale <nowiki>&egrave;</nowiki> ovviamente stato ricompilato per funzionare a 64 bit: Apache, Mysql, Kde, Gimp e molti altri pacchetti ancora; purtroppo per<nowiki>&ograve;</nowiki> molti pacchetti di terze parti sono tutt'ora disponibili esclusivamente nella versione a 32 bit. Tra questi vale la pena citare Wine, la soluzione pi<nowiki>&ugrave;</nowiki> diffusa quando si ha la necessit<nowiki>&agrave;</nowiki> di eseguire programmi sviluppati esclusivamente per sistemi operativi Microsoft. Nel seguito del presente articolo ''verr<nowiki>&agrave;</nowiki> eseguita una installazione funzionante di Wine con supporto ai 32 bit su Slackware 13.1 a 64 bit''.

La procedura di installazione consta dei passi seguenti:
* Installazione di uno strato di compatibilit<nowiki>&agrave;</nowiki> ai 32 bit su Slackware64.
* Configurazione del sistema per il multi-libreria.
* Selezione ed installazione della versione di Wine pi<nowiki>&ugrave;</nowiki> adatta.


== Slackware64 Multilib ==


Il primo passo consiste nell'estendere il supporto di Slackware64 alle librerie ed ai pacchetti compilati a 32 bit. Come anticipato nel paragrafo precedente, il design di Slackware64 <nowiki>&egrave;</nowiki> “64 bit only”, ma la distribuzione <nowiki>&egrave;</nowiki> anche “Multilib ready” in grado cio<nowiki>&egrave;</nowiki> di essere estesa perch<nowiki>&egrave;</nowiki> esegua e compili software a 32 bit senza stravolgimenti al sistema. I prerequisiti per eseguire l'operazione consistono nella disponibilit<nowiki>&agrave;</nowiki> dei pacchetti dell'installazione a 32 bit. Il Dvd ufficiale contiene i pacchetti 32 bit sul lato opposto di quelli a 64. Chi non possiede tale Dvd dovr<nowiki>&agrave;</nowiki> invece scaricare l'albero di installazione a 32 bit dalle fonti istituzionali:

[http://www.slackware.org/getslack/ Slackware repository]

Oltre all'albero di installazione <nowiki>&egrave;</nowiki> necessario scaricare alcuni pacchetti specifici per un sistema multi libreria con cui sostituire quelli istituzionali. Si tratta di aggiornare le glibc, la libreria C di Gnu, e il gcc, il compilatore standard Linux, con versioni compilate ad hoc. La fonte da cui reperire suddetti pacchetti <nowiki>&egrave;</nowiki>:
[http://connie.slackware.com/~alien/multilib/13.1/ Alien repository]

Si crei una nuova directory vuota e vi si scarichino i pacchetti
mkdir /tmp/multilib

Per aggiornare il sistema si lanci il comando:
cd /tmp/multilib
upgradepkg --reinstall *.t?z
installpkg compat32-tools*.t?z

Tra i pacchetti installati compat32-tools contiene alcuni strumenti che verranno utilizzati per convertire i pacchetti a 32 bit in versioni adatte ad un sistema a 64 bit multilibreria. Si proceda alla creazione della directory /tmp/compat32 in cui andremo a generare i pacchetti.
mkdir /tmp/compat32

Supponiamo che l'albero di installazione di Slackware 32 bit sia disponibile nel percorso /mnt/slackiso/slack-13.1/slackware/. Subito al di sotto di tale directory si troveranno le sottodirectory a/, ap/, d/, l/, ecc.
root@darkstar:~# ls -la /mnt/slackiso/slack-13.1/slackware/
total 2920
drwxr-xr-x 17 4015 4015 1024 2010-05-18 08:57 ./
drwxr-xr-x 11 4015 4015 1024 2010-05-18 09:04 ../
-rw-r--r-- 1 4015 4015 209001 2010-05-18 08:57 CHECKSUMS.md5
-rw-r--r-- 1 4015 4015 259707 2010-05-18 08:55 FILE_LIST
-rw-r--r-- 1 4015 4015 2334599 2010-05-18 08:57 MANIFEST.bz2
lrwxrwxrwx 1 4015 4015 15 2008-05-08 04:04 PACKAGES.TXT -> ../PACKAGES.TXT
-rw-r--r-- 1 4015 4015 242 2002-06-13 05:46 README.TXT
drwxr-xr-x 2 4015 4015 17408 2010-05-18 01:20 a/
drwxr-xr-x 2 4015 4015 10240 2010-05-16 07:05 ap/
drwxr-xr-x 2 4015 4015 7168 2010-05-18 18:55 d/
drwxr-xr-x 2 4015 4015 1024 2010-05-09 05:35 e/
drwxr-xr-x 2 4015 4015 1024 2010-05-02 02:02 f/
drwxr-xr-x 2 4015 4015 1024 2010-05-14 21:40 k/
drwxr-xr-x 2 4015 4015 6144 2010-05-18 04:42 kde/
drwxr-xr-x 2 4015 4015 16384 2010-05-06 23:09 kdei/
drwxr-xr-x 2 4015 4015 26624 2010-05-14 21:40 l/
drwxr-xr-x 2 4015 4015 18432 2010-05-18 01:20 n/
drwxr-xr-x 2 4015 4015 1024 2010-05-18 01:20 t/
drwxr-xr-x 2 4015 4015 1024 2009-12-07 03:23 tcl/
drwxr-xr-x 2 4015 4015 49152 2010-05-14 21:40 x/
drwxr-xr-x 2 4015 4015 7168 2010-05-17 06:30 xap/
drwxr-xr-x 2 4015 4015 1024 2010-05-16 07:05 y/

compat32-tools ha installato 2 script di conversione: convertpkg-compat32 e massconvert32.sh. Il primo <nowiki>&egrave;</nowiki> utile per convertire singoli pacchetti mentre il secondo <nowiki>&egrave;</nowiki> consigliato per eseguire una conversione di massa dei pacchetti di un sistema. Lo script massconvert32.sh contiene una lista dei pacchetti che verranno convertiti. Purtroppo alcuni pacchetti necessari per Wine non fanno parte della lista. Il problema pu<nowiki>&ograve;</nowiki> essere risolto in due modi:
# Usando lo script massconvert32.sh standard e quindi lanciando convertpkg-compat32 per i pacchetti mancanti.
# Usando una versione modificata del comando che pu<nowiki>&ograve;</nowiki> essere scaricata qui: [http://www.giustetti.net/resource/script/massconvert32.sh Updated massconvert32.sh]

Si supponga di utilizzare lo script modificato. Procederemo alla conversione attraverso i comandi:
cd /tmp/compat32
massconvert32.sh -i /mnt/slackiso/slack-13.1/slackware/

Il comando si occuper<nowiki>&agrave;</nowiki> della conversione. La procedura potrebbe richiedere un po' di tempo, ma al termine in /tmp/compat32 saranno disponibili circa 60 Mb di nuovi pacchetti suddivisi nelle directory a/, ap/, d/, l/, ecc.

Si proceda all'installazione dei nuovi pacchetti ottenuti:
installpkg /tmp/compat32/*/*.t?z

Il sistema cos<nowiki>&igrave;</nowiki> ottenuto sar<nowiki>&agrave;</nowiki> in grado di eseguire codice compilato per i 32 bit.

Se avessimo fatto ricorso allo script istituzionale, avremmo dovuto convertire ulteriori quattro pacchetti attraverso il comando convertpkg-compat32. Segue la lista dei quattro pacchetti:

/mnt/slackiso/slack-13.1/slackware/l/libusb-1.0.6-i486-1.txz

/mnt/slackiso/slack-13.1/slackware/l/libieee1284-0.2.11-i486-2.txz

/mnt/slackiso/slack-13.1/slackware/xap/sane-1.0.21-i486-1.txz

/mnt/slackiso/slack-13.1/slackware/xap/xsane-0.996-i486-2.txz

Si esegua la conversione
convertpkg-compat32 -i /mnt/slackiso/slack-13.1/slackware/l/libusb-1.0.6-i486-1.txz -d /tmp/compat32/l
convertpkg-compat32 -i /mnt/slackiso/slack-13.1/slackware/l/libieee1284-0.2.11-i486-2.txz -d /tmp/compat32/l
mkdir /tmp/compat32/xap
convertpkg-compat32 -i /mnt/slackiso/slack-13.1/slackware/xap/sane-1.0.21-i486-1.txz -d /tmp/compat32/xap
convertpkg-compat32 -i /mnt/slackiso/slack-13.1/slackware/xap/xsane-0.996-i486-2.txz -d /tmp/compat32/xap

E si installino quindi i pacchetti con i comandi standard per la gestione dei pacchetti:
installpkg ./l/libusb*.t?z
installpkg ./l/libieee1284*.t?z
installpkg ./xap/sane*.t?z
installpkg ./xap/xsane *.t?z


== Configurazione ==

Una volta installato le librerie a 32 bit, <nowiki>&egrave;</nowiki> consigliato reinstallare i driver della scheda video in modo che usino le librerie a 64 bit per le applicazioni a 64 bit e quelli a 32 per le applicazioni a 32. I pacchetti proprietari forniti dai produttori di schede video dovrebbero contenere sia i driver a 32 che quelli a 64 bit, ma <nowiki>&egrave;</nowiki> molto probabile che solo i secondi siano stati installati su Slackware64.

Nel caso di driver Ati proprietari:
Si scarichi il pacchetto di installazione dal sito [http://www.amd.com/us/Pages/AMDHomePage.aspx Ati].
Si scarichino eventuali patch salvandole nella directory /etc/ati/patch.
Si esegua quindi il comando:
sh ./<file>.run --buildpkg=Slackware/All
Che creer<nowiki>&agrave;</nowiki> due pacchetti uno contenente il modulo del kernel ed il secondo contenente le librerie. Si noti che il secondo avr<nowiki>&agrave;</nowiki> dimensione circa doppia del normale.
Si rimuovano i vecchi paccheti e si installino i nuovi:
removepkg /var/log/packages/fglrx-*
installpkg fglrx*.t?z
Si aggiorni la configurazione del file xorg.conf
aticonfig --initial
E si proceda quindi al reboot della machina perch<nowiki>&egrave;</nowiki> i nuovi driver vengano caricati all'avvio ed utilizzati dal sistema.

Potrebbe capitare che alcune applicazioni che fanno un uso diffuso della grafica 3-D, i giochi ad esempio, abbiano difficolt<nowiki>&agrave;</nowiki> a riconoscere quale versione dei driver utilizzare. I sintomi consistono in un basso frame rate nonostante una configurazione conservativa degli effetti grafici, nel disegno non corretto dei poligoni tridimensionali, nell'apparizione e sparizione delle texture, nella mancata definizione delle ombre o altro ancora.
Per ovviare a difetti sopra citati si pu<nowiki>&ograve;</nowiki> imporre alle applicazioni l'impiego dei driver a 32 bit. Per farlo <nowiki>&egrave;</nowiki> necessario lanciare da shell il comando:
export LIBGL=usr/lib/xorg/modules/dri
prima del lancio di Wine.

Per far si che la configurazione venga caricata automaticamente al login <nowiki>&egrave;</nowiki> possibile modificare il file .profile nella propria home directory aggiungendo il comando precedente in una riga dedicata.


== Installare Wine ==

Siamo quasi giunti alla fine del viaggio. Una volta che il sistema <nowiki>&egrave;</nowiki> multilib compliant tutto quel che serve per far girare software a 32 bit <nowiki>&egrave;</nowiki> installarlo. Per usare la versione 32 bit di Wine lo si scarichi dal repository Slackware, [http://sourceforge.net/projects/wine/files/ Wine download], quindi lo si installi:
installpkg wine-1.2-rc3-i486-1sg.txz

Tutto il software Windows a 32 bit in grado di girare su di un sistema operativo Slackware a 32 bit dovrebbe funzionare senza problemi anche su Slackware64.

Il pacchetto di Wine a 64 bit wine-1.2-rc3-x86_64-1sg.txz contiene sia i binari a 64 bit che il sottosistema WoW64. WoW64 <nowiki>&egrave;</nowiki> l'abbreviazione di Windows on Windows 64. Un sosttosistema in grado di far girare binari per Windows a 32 bit su un sistema a 64. Il pacchetto consente di eseguire binari sia a 32 che a 64 bit sfruttando un'unico $WINEPREFIX. WoW64 <nowiki>&egrave;</nowiki> una delle novit<nowiki>&agrave;</nowiki> della versione 1.2. Il pacchetto <nowiki>&egrave;</nowiki> stabile, ma rilasciato a scopo di test; Si raccomanda l'uso della versione 32 bit di Wine per il quotidiano.
Maggiori dettagli circa WoW64 possono essere reperiti dal sito: [http://wiki.winehq.org/Wine64ForPackagers WineHq].


External links
----
* [http://www.winehq.org/ Wine home page]
* [http://www.slackware.org/ Slackware home page]
* [http://alien.slackbook.org/dokuwiki/doku.php?id=slackware:multilib Pagina dedicata a Slackware multilib di Alien Bob]
* [http://it.wikipedia.org/wiki/Slamd64 Pagina di Wikipedia dedicata a Slamd64]


----

Languages: [http://www.giustetti.net/wiki/index.php/en/wine_multilib English] - '''Italiano'''