Project

General

Profile

Ambiente Isolato per wine a 32 bit » History » Version 38

Fluidone Morinmoto, 12/06/2025 06:58 PM

1 1 Fluidone Morinmoto
h1. Ambiente Isolato per wine a 32 bit
2
3
4
Puoi isolare l'Aurora Toolset in un ambiente separato, in cui libgd3:i386 sia installata senza interferire con il sistema principale.
5
6
Installa schroot
7
8
<pre>
9
$ sudo apt install schroot debootstrap
10
</pre>
11
12
Configura un ambiente chroot a 32-bit:
13
14
h2. Debian
15
16 13 Fluidone Morinmoto
Installa pacchetti base base:
17
18
<pre>
19
$ sudo apt install bash-completion vim wget curl
20
</pre>
21
22
23 1 Fluidone Morinmoto
<pre>
24
$ sudo debootstrap --arch=i386 bullseye /srv/chroot/nwn32 http://deb.debian.org/debian
25
</pre>
26
27
Modifica il file /etc/schroot/schroot.conf e aggiungi:
28
29
<pre>
30
[nwn32]
31
description=Debian 32-bit environment for Neverwinter Nights Toolset
32
directory=/srv/chroot/nwn32
33
root-users=tuo-utente
34
type=directory
35
users=tuo-utente
36
</pre>
37
38
Avvia schroot come utente root e installa sudo:
39
40
<pre>
41
$ sudo schroot -c nwn32 -u root
42
(nwn32)$ apt update
43
(nwn32)$ apt install sudo
44
(nwn32)$ usermod -aG sudo tuo-utente
45
(nwn32)$ exit
46
</pre>
47
48
Adesso entra nell'ambiente nwn32 e installa wine32 ed eventuali pacchetti necessari:
49
50
<pre>
51
$ schroot -c nwn32
52
(nwn32)$ sudo dpkg --add-architecture i386
53
(nwn32)$ sudo apt install wget gnupg2 libgd3:i386 libwine:i386 wine32 mesa-utils
54
</pre>
55
56
Librerie necessarie:
57
58
Core OpenGL / Mesa
59
60
<pre>
61
(nwn32)$ sudo apt install libgl1-mesa-glx:i386 libgl1-mesa-dri:i386 libglu1-mesa:i386 libglapi-mesa:i386 libxatracker2:i386 libdrm2:i386
62
</pre>
63
64
X11 e estensioni
65
66
<pre>
67
(nwn32)$ sudo apt install libx11-6:i386 libxext6:i386 libxrandr2:i386 libxi6:i386 libxrender1:i386 libxfixes3:i386 libxdamage1:i386 libxcomposite1:i386 libxcursor1:i386 libxinerama1:i386 libxss1:i386 libxtst6:i386
68
</pre>
69
70
Font / Rendering
71
72
<pre>
73
(nwn32)$ sudo apt install libfreetype6:i386 libfontconfig1:i386 libpng16-16:i386 libsm6:i386 libice6:i386
74
</pre>
75
76
Audio / OpenAL
77
<pre>
78
(nwn32)$ sudo apt install libopenal1:i386 libasound2:i386 libasound2-plugins:i386
79
</pre>
80
81
Extra per Wine / compatibilità
82
<pre>
83 11 Fluidone Morinmoto
(nwn32)$ sudo apt install libc6:i386  libgcc-s1:i386 libstdc++6:i386 libtinfo6:i386 libncurses6:i386
84 1 Fluidone Morinmoto
</pre>
85
86
Driver video 32-bit (se NVIDIA/AMD proprietari)
87
88
<pre>
89
(nwn32)$ sudo apt install libnvidia-glx:i386 libnvidia-glvkspirv:i386
90
</pre>
91
92
Esportare il display per avviare finestre dentro l'ambiente:
93
94
<pre>
95
(nwn32)$ export DISPLAY=:0
96
</pre>
97
98
h4. winetricks extra sources
99
100
Aggiungere a /etc/apt/sources.list:
101
102
<pre>
103
deb http://deb.debian.org/debian bullseye main contrib non-free
104
deb http://deb.debian.org/debian bullseye-updates main contrib non-free
105
deb http://security.debian.org/debian-security bullseye-security main contrib non-free
106
</pre>
107
108
poi:
109
110
<pre>
111
(nwn32)$ sudo apt update
112
(nwn32)$ sudo apt install winetricks
113
</pre>
114
115
h4. Librerie NVidia in posizioni non standard
116
117
118
Dentro schroot installa le librerie corrispondenti alla versione del driver host:
119
120
<pre>
121
(nwn32)$ sudo dpgk --add-architecture i386
122
(nwn32)$ sudo apt update
123
(nwn32)$ sudo apt install nvidia-driver-libs:i386
124
</pre>
125
126
Nel sistema host verifica dove si trovano le librerie:
127
128
<pre>
129
$ cd /usr/lib
130
$ find . -name "libGLX_nvidia.so.0"
131
</pre>
132
133
Individua nell'output le librerie i386 e poi monta la directory delle librerie dal sistema host nel sistema schroot:
134
135
<pre>
136
$ sudo mount --bind /usr/lib/i386-linux-gnu/ /srv/chroot/nwn32/usr/lib/i386-linux-gnu/nvidia/current/
137
</pre>
138
139
Verifica dove si trovano le tue librerie @.so@ nvidia e adatta i link simbolici di conseguenza. Per me su Lubuntu 24.04 sono in /usr/lib/i386-linux-gnu/nvidia/current/, ma in debian dentro il schroot il sistema se le aspetta in /usr/lib32/nvidia
140
141
<pre>
142
(nwn32)$ sudo mkdir -p /usr/lib32
143
(nwn32)$ cd /usr/lib32
144
(nwn32)$ sudo mkdir -p nvidia
145
(nwn32)$ sudo ln -sf /usr/lib/i386-linux-gnu/nvidia/current/libGLX_nvidia.so.0 nvidia/libGLX.so.0
146
(nwn32)$ sudo ln -sf /usr/lib/i386-linux-gnu/nvidia/current/libEGL_nvidia.so.0 nvidia/libEGL.so.1
147
(nwn32)$ sudo ln -sf /usr/lib/i386-linux-gnu/nvidia/current/libGLESv2_nvidia.so.2 nvidia/libGLESv2.so.2
148
(nwn32)$ sudo ln -sf /usr/lib/i386-linux-gnu/nvidia/current/libGLESv1_CM_nvidia.so.1 nvidia/libGLESv1_CM.so.1
149
(nwn32)$ sudo ln -sf /usr/lib/i386-linux-gnu/nvidia/current/libcuda.so.1 nvidia/libcuda.so.1
150
</pre>
151
152
Poi impostare LD_LIBRARY_PATH:
153
154
<pre>
155
(nwn32)$ export LD_LIBRARY_PATH=/usr/lib32/nvidia:$LD_LIBRARY_PATH
156 18 Fluidone Morinmoto
(nwn32)$ WINEPREFIX="$HOME/.wine32/" WINEARCH=win32  wine nwtoolset.exe
157 1 Fluidone Morinmoto
158
</pre>
159
160
h4. Montare un percorso esterno 
161
162
Modifica il file @/etc/schroot/default/fstab@ :
163
164
<pre>
165
/media/tuo-utente/VOLUME_ESTERNO/Giochi/Neverwinter/Neverwinter_Enhanced_Installed /srv/chroot/nwn32/mnt/nwn_game none rw,bind 0 0
166
</pre>
167
168
Crea il punto di mount nel sistema host:
169
170
<pre>
171
$ sudo mkdir -p /srv/chroot/nwn32/mnt/nwn_game
172
</pre>
173
174
h3. Installare i font
175
176
<pre>
177
$ sudo apt install ttf-mscorefonts-installer
178
$ cp /usr/share/fonts/truetype/msttcorefonts/* /home/user/.wine_prefix_dir/drive_c/windows/Fonts
179
</pre>
180
181
Installare font aggiuntivi
182
183
<pre>
184
$ winetricks corefonts
185
$ winetricks tahoma
186
$ winetricks allfonts
187
</pre>
188
189
h2. Ubuntu 20.04
190
191 8 Fluidone Morinmoto
Installa una versione @minimal@ di ubuntu, quindi poi vanno aggiunti i repository manualmente:
192
193 1 Fluidone Morinmoto
<pre>
194 7 Fluidone Morinmoto
$ sudo debootstrap --arch=i386 --variant=minbase focal /srv/chroot/nwn32 http://archive.ubuntu.com/ubuntu/
195 1 Fluidone Morinmoto
</pre>
196
197 9 Fluidone Morinmoto
Installa pacchetti base base:
198
199
<pre>
200 12 Fluidone Morinmoto
$ sudo apt install bash-completion vim wget curl
201 9 Fluidone Morinmoto
</pre>
202
203 8 Fluidone Morinmoto
Aggiungi i repository manualmente nel file @/etc/apt/sources.list@:
204
205
<pre>
206
deb http://archive.ubuntu.com/ubuntu/ focal main restricted universe multiverse
207
deb http://archive.ubuntu.com/ubuntu/ focal-updates main restricted universe multiverse
208
deb http://archive.ubuntu.com/ubuntu/ focal-security main restricted universe multiverse
209
</pre>
210 1 Fluidone Morinmoto
Modifica il file /etc/schroot/schroot.conf e aggiungi:
211
212
<pre>
213
[nwn32]
214
description=Debian 32-bit environment for Neverwinter Nights Toolset
215
directory=/srv/chroot/nwn32
216
root-users=tuo-utente
217
type=directory
218
users=tuo-utente
219
</pre>
220
221
Avvia schroot come utente root e installa sudo:
222
223
<pre>
224
$ sudo schroot -c nwn32 -u root
225
(nwn32)$ apt update
226
(nwn32)$ apt install sudo
227
(nwn32)$ usermod -aG sudo tuo-utente
228
(nwn32)$ exit
229
</pre>
230
231 2 Fluidone Morinmoto
Adesso entra nell'ambiente nwn32 aggiungi architettura i386, installa software-properties-common e aggiungi i repository universe e multiverse:
232 1 Fluidone Morinmoto
233
<pre>
234
$ schroot -c nwn32
235
(nwn32)$ sudo dpkg --add-architecture i386
236 2 Fluidone Morinmoto
(nwn32)$ sudo apt install software-properties-common
237
(nwn32)$ sudo add-apt-repository universe
238
(nwn32)$ sudo add-apt-repository multiverse
239
</pre>
240
241 3 Fluidone Morinmoto
e installa wine32, winetricks ed eventuali pacchetti necessari:
242 2 Fluidone Morinmoto
243
<pre>
244 32 Fluidone Morinmoto
(nwn32)$ sudo apt install wget gnupg libgd3:i386 libwine:i386 wine32 winetricks winbind
245 1 Fluidone Morinmoto
</pre>
246
247
Librerie necessarie:
248
249
Core OpenGL / Mesa
250
251
<pre>
252
(nwn32)$ sudo apt install libgl1-mesa-glx:i386 libgl1-mesa-dri:i386 libglu1-mesa:i386 libglapi-mesa:i386 libxatracker2:i386 libdrm2:i386
253
</pre>
254
255
X11 e estensioni
256
257
<pre>
258
(nwn32)$ sudo apt install libx11-6:i386 libxext6:i386 libxrandr2:i386 libxi6:i386 libxrender1:i386 libxfixes3:i386 libxdamage1:i386 libxcomposite1:i386 libxcursor1:i386 libxinerama1:i386 libxss1:i386 libxtst6:i386
259
</pre>
260
261
Font / Rendering
262
263
<pre>
264
(nwn32)$ sudo apt install libfreetype6:i386 libfontconfig1:i386 libpng16-16:i386 libsm6:i386 libice6:i386
265
</pre>
266
267
Audio / OpenAL
268
<pre>
269
(nwn32)$ sudo apt install libopenal1:i386 libasound2:i386 libasound2-plugins:i386
270
</pre>
271
272
Extra per Wine / compatibilità
273
<pre>
274 15 Fluidone Morinmoto
(nwn32)$ sudo apt install libc6:i386 libgcc-s1:i386 libstdc++6:i386 libtinfo6:i386 libncurses6:i386
275 1 Fluidone Morinmoto
</pre>
276
277 20 Fluidone Morinmoto
Driver Audio
278
<pre>
279
(nwn32)$ sudo apt-get install pulseaudio pulseaudio-utils libpulse0:i386
280
</pre>
281
282 1 Fluidone Morinmoto
Driver video 32-bit (se NVIDIA/AMD proprietari)
283
284
<pre>
285
(nwn32)$ sudo apt install libnvidia-glx:i386 libnvidia-glvkspirv:i386
286
</pre>
287
288 6 Fluidone Morinmoto
Installa le librerie corrispondenti alla versione del driver host:
289 1 Fluidone Morinmoto
290
<pre>
291 6 Fluidone Morinmoto
(nwn32)$ sudo dpkg --add-architecture i386
292
(nwn32)$ sudo add-apt-repository ppa:graphics-drivers/ppa
293
(nwn32)$ sudo apt update
294
(nwn32)$ sudo apt install nvidia-driver-470
295 1 Fluidone Morinmoto
</pre>
296
297 16 Fluidone Morinmoto
Oppure se non puoi aggiungere il repository in quel modo, crea il file @/etc/apt/sources.list.d/nvidia.list@ con :
298
299
<pre>
300
deb http://ppa.launchpad.net/graphics-drivers/ppa/ubuntu focal main
301
</pre>
302
303 17 Fluidone Morinmoto
Scarica e aggiungi la chiave:
304
305
<pre>
306 21 Fluidone Morinmoto
(nwn32)$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys FCAE110B1118213C
307 19 Fluidone Morinmoto
308
# $ wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub
309
# $ sudo apt-key add 7fa2af80.pub
310 17 Fluidone Morinmoto
</pre>
311 1 Fluidone Morinmoto
312 21 Fluidone Morinmoto
<pre>
313
(nwn32)$ sudo apt-get install libnvidia-gl-470
314
</pre>
315 16 Fluidone Morinmoto
316 1 Fluidone Morinmoto
317 6 Fluidone Morinmoto
Esportare il display per avviare finestre dentro l'ambiente:
318 4 Fluidone Morinmoto
319 5 Fluidone Morinmoto
<pre>
320 6 Fluidone Morinmoto
(nwn32)$ export DISPLAY=:0
321 5 Fluidone Morinmoto
</pre>
322 6 Fluidone Morinmoto
323 29 Fluidone Morinmoto
h3. Init di un ambiente wine per nwntoolset
324
325
Crea un file init-wine-env.sh per esportare le variabili d'ambiente nel schroot ed evitare di esportarle tutte le volte:
326
327
<pre>
328
#! /bin/bash
329
330
export DISPLAY=:0
331
export WINEPREFIX="$HOME/.wine32"
332 37 Fluidone Morinmoto
export WINEARCH=win32
333 29 Fluidone Morinmoto
</pre>
334
335
attiva l'esportazione delle variabili:
336 1 Fluidone Morinmoto
337
<pre>
338
(nwn32)$ . init-wine-env.sh
339
</pre>
340 30 Fluidone Morinmoto
341
Crea l'ambiente nel prefix specificato nella variabile WINEPREFIX che se esportata non serve specificare:
342
343
<pre>
344
(nwn32)$ WINEPREFIX="$HOME/.wine32" winecfg
345
</pre>
346 37 Fluidone Morinmoto
347
Spostare Graphics > Screen Resolution su 144 DPI e selezionare Windows XP come sistema operativo.
348 30 Fluidone Morinmoto
349 34 Fluidone Morinmoto
Installare cabextract necessario per winetricks per installare i font, ma visto che non è disponibile nella versione 32 bit, va aggiunta l'architettura amd64
350
351
<pre>
352
(nwn32)$ sudo dpkg --add-architecture amd64
353
(nwn32)$ sudo apt update
354
(nwn32)$ sudo apt install cabextract
355
(nwn32)$ WINEPREFIX="$HOME/.wine32/" winetricks corefonts dotnet462
356
</pre>
357 30 Fluidone Morinmoto
358 35 Fluidone Morinmoto
Opzionale installa le librerie legacy che possono causare warning:
359 1 Fluidone Morinmoto
360 29 Fluidone Morinmoto
<pre>
361 36 Fluidone Morinmoto
(nwn32)$ winetricks mdac28 mfc42 vb6run gdiplus
362 1 Fluidone Morinmoto
</pre>
363 29 Fluidone Morinmoto
364
365 35 Fluidone Morinmoto
Installa tutte le librerie .NET, i corefonts, i font tahoma e allfonts
366
367 31 Fluidone Morinmoto
<pre>
368 35 Fluidone Morinmoto
(nwn32)$ WINEPREFIX="$HOME/.wine32" winetricks corefonts dotnet462 tahoma allfonts
369 31 Fluidone Morinmoto
</pre>
370 29 Fluidone Morinmoto
371 6 Fluidone Morinmoto
h4. Librerie NVidia in posizioni non standard
372 1 Fluidone Morinmoto
373
Nel sistema host verifica dove si trovano le librerie:
374
375
<pre>
376
$ cd /usr/lib
377
$ find . -name "libGLX_nvidia.so.0"
378
</pre>
379
380
Individua nell'output le librerie i386 e poi monta la directory delle librerie dal sistema host nel sistema schroot:
381
382
<pre>
383
$ sudo mount --bind /usr/lib/i386-linux-gnu/ /srv/chroot/nwn32/usr/lib/i386-linux-gnu/nvidia/current/
384
</pre>
385
386
Verifica dove si trovano le tue librerie @.so@ nvidia e adatta i link simbolici di conseguenza. Per me su Lubuntu 24.04 sono in /usr/lib/i386-linux-gnu/nvidia/current/, ma in debian dentro il schroot il sistema se le aspetta in /usr/lib32/nvidia
387
388
<pre>
389
(nwn32)$ sudo mkdir -p /usr/lib32
390
(nwn32)$ cd /usr/lib32
391
(nwn32)$ sudo mkdir -p nvidia
392
(nwn32)$ sudo ln -sf /usr/lib/i386-linux-gnu/nvidia/current/libGLX_nvidia.so.0 nvidia/libGLX.so.0
393
(nwn32)$ sudo ln -sf /usr/lib/i386-linux-gnu/nvidia/current/libEGL_nvidia.so.0 nvidia/libEGL.so.1
394
(nwn32)$ sudo ln -sf /usr/lib/i386-linux-gnu/nvidia/current/libGLESv2_nvidia.so.2 nvidia/libGLESv2.so.2
395
(nwn32)$ sudo ln -sf /usr/lib/i386-linux-gnu/nvidia/current/libGLESv1_CM_nvidia.so.1 nvidia/libGLESv1_CM.so.1
396
(nwn32)$ sudo ln -sf /usr/lib/i386-linux-gnu/nvidia/current/libcuda.so.1 nvidia/libcuda.so.1
397
</pre>
398
399
Poi impostare LD_LIBRARY_PATH:
400
401
<pre>
402
(nwn32)$ export LD_LIBRARY_PATH=/usr/lib32/nvidia:$LD_LIBRARY_PATH
403 22 Fluidone Morinmoto
(nwn32)$ WINEPREFIX="$HOME/.wine32" WINEARCH=win32 LIBGL_ALWAYS_SOFTWARE=1 wine ~/Giochi/Neverwinter/game/bin/win32/nwtoolset.exe 
404 1 Fluidone Morinmoto
</pre>
405
406
h4. Montare un percorso esterno 
407
408
Modifica il file @/etc/schroot/default/fstab@ :
409
410
<pre>
411
/media/tuo-utente/VOLUME_ESTERNO/Giochi/Neverwinter/Neverwinter_Enhanced_Installed /srv/chroot/nwn32/mnt/nwn_game none rw,bind 0 0
412
</pre>
413
414
Crea il punto di mount nel sistema host:
415
416
<pre>
417
$ sudo mkdir -p /srv/chroot/nwn32/mnt/nwn_game
418
</pre>
419
420
h3. Installare i font
421
422 23 Fluidone Morinmoto
Installare cabextract necessario per winetricks per installare i font, ma visto che non è disponibile nella versione 32 bit, va aggiunta l'architettura amd64
423
<pre>
424
(nwn32)$ sudo dpkg --add-architecture amd64
425
(nwn32)$ sudo apt update
426
(nwn32)$ sudo apt install cabextract
427 25 Fluidone Morinmoto
(nwn32)$ WINEPREFIX="$HOME/.wine32/" winetricks corefonts dotnet462
428 23 Fluidone Morinmoto
</pre>
429
430 1 Fluidone Morinmoto
Installare font aggiuntivi
431
432
<pre>
433 25 Fluidone Morinmoto
(nwn32)$ WINEPREFIX="$HOME/.wine32/" winetricks corefonts
434
(nwn32)$ WINEPREFIX="$HOME/.wine32/" winetricks tahoma
435
(nwn32)$ WINEPREFIX="$HOME/.wine32/" winetricks allfonts
436 24 Fluidone Morinmoto
</pre>
437
438
se alcuni font non dovessero essere disponibili in wine, installarli nella macchina host e copiarli nella cartella Fonts del drive C: di wine
439
440
<pre>
441
$ sudo apt install ttf-mscorefonts-installer
442
$ cp /usr/share/fonts/truetype/msttcorefonts/* /home/user/.wine_prefix_dir/drive_c/windows/Fonts
443 1 Fluidone Morinmoto
</pre>
444 26 Fluidone Morinmoto
445 27 Fluidone Morinmoto
h4. Aumentare dimensione dei font e correggere MS Sans Serif mappato male
446
447 28 Fluidone Morinmoto
Controlla che in ~/.wine32/drive_c/windows/Fonts ci siano i font. Altrimenti copiali dal sistema host:
448 27 Fluidone Morinmoto
449
<pre>
450 28 Fluidone Morinmoto
cp /usr/share/fonts/truetype/msttcorefonts/*.ttf ~/.wine32/drive_c/windows/Fonts
451 27 Fluidone Morinmoto
</pre>
452 1 Fluidone Morinmoto
453 28 Fluidone Morinmoto
Apri regedit
454 27 Fluidone Morinmoto
455
<pre>
456 28 Fluidone Morinmoto
(nwn32)$ regedit
457 27 Fluidone Morinmoto
</pre>
458
459 28 Fluidone Morinmoto
e valorizza le sostituzioni nel percorso:
460 27 Fluidone Morinmoto
461
<pre>
462 1 Fluidone Morinmoto
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\FontSubstitutes
463 27 Fluidone Morinmoto
</pre>
464
465 28 Fluidone Morinmoto
per i valori
466 1 Fluidone Morinmoto
467 27 Fluidone Morinmoto
<pre>
468 38 Fluidone Morinmoto
"MS Shell Dlg"="Arial Black"
469
"MS Shell Dlg 2"="Arial Black"
470 1 Fluidone Morinmoto
</pre>
471 27 Fluidone Morinmoto
472 1 Fluidone Morinmoto
Questo rende più leggibili la maggior parte dei font dell'interfaccia, ma il font dei "Dialog" delle proprietà rimangono molto sottili.
473 27 Fluidone Morinmoto
474
Sapendo che Aurora Toolset è scritto in Delphi e aprendolo con ResourceHacker (http://www.angusj.com/resourcehacker/) si nota che i componenti vengono creati dinamicamente e utilizzano font "MS Sans Serif".
475
476 38 Fluidone Morinmoto
Crea un sostituto di "MS Sans Serif" con un font riconoscibile (Tipo Arial Black):
477 27 Fluidone Morinmoto
478
<pre>
479 38 Fluidone Morinmoto
"MS Sans Serif"="Arial Black" 
480 27 Fluidone Morinmoto
</pre>
481
482 28 Fluidone Morinmoto
Se il font è ancora troppo sottile, bisogna ingannare il sistema per fargli usare la versione bold di courier al posto della versione plain.
483
Copia il font in versione bold al posto della versione plain (magari fatti prima un backup):
484 27 Fluidone Morinmoto
485
<pre>
486
(nwn32)$ cd ~/.wine32/drive_c/windows/Fonts
487 28 Fluidone Morinmoto
(nwn32)$ mv cour.ttf cour.ttf.bak
488
(nwn32)$ cp courbd.ttf cour.ttf
489 27 Fluidone Morinmoto
</pre>
490 28 Fluidone Morinmoto
491
Per rendere effettive le modifiche avviare winecfg.