Project

General

Profile

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

Fluidone Morinmoto, 12/01/2025 09:14 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 14 Fluidone Morinmoto
(nwn32)$ sudo apt install wget gnupg libgd3:i386 libwine:i386 wine32 winetricks
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
h4. Librerie NVidia in posizioni non standard
324 1 Fluidone Morinmoto
325
Nel sistema host verifica dove si trovano le librerie:
326
327
<pre>
328
$ cd /usr/lib
329
$ find . -name "libGLX_nvidia.so.0"
330
</pre>
331
332
Individua nell'output le librerie i386 e poi monta la directory delle librerie dal sistema host nel sistema schroot:
333
334
<pre>
335
$ sudo mount --bind /usr/lib/i386-linux-gnu/ /srv/chroot/nwn32/usr/lib/i386-linux-gnu/nvidia/current/
336
</pre>
337
338
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
339
340
<pre>
341
(nwn32)$ sudo mkdir -p /usr/lib32
342
(nwn32)$ cd /usr/lib32
343
(nwn32)$ sudo mkdir -p nvidia
344
(nwn32)$ sudo ln -sf /usr/lib/i386-linux-gnu/nvidia/current/libGLX_nvidia.so.0 nvidia/libGLX.so.0
345
(nwn32)$ sudo ln -sf /usr/lib/i386-linux-gnu/nvidia/current/libEGL_nvidia.so.0 nvidia/libEGL.so.1
346
(nwn32)$ sudo ln -sf /usr/lib/i386-linux-gnu/nvidia/current/libGLESv2_nvidia.so.2 nvidia/libGLESv2.so.2
347
(nwn32)$ sudo ln -sf /usr/lib/i386-linux-gnu/nvidia/current/libGLESv1_CM_nvidia.so.1 nvidia/libGLESv1_CM.so.1
348
(nwn32)$ sudo ln -sf /usr/lib/i386-linux-gnu/nvidia/current/libcuda.so.1 nvidia/libcuda.so.1
349
</pre>
350
351
Poi impostare LD_LIBRARY_PATH:
352
353
<pre>
354
(nwn32)$ export LD_LIBRARY_PATH=/usr/lib32/nvidia:$LD_LIBRARY_PATH
355 22 Fluidone Morinmoto
(nwn32)$ WINEPREFIX="$HOME/.wine32" WINEARCH=win32 LIBGL_ALWAYS_SOFTWARE=1 wine ~/Giochi/Neverwinter/game/bin/win32/nwtoolset.exe 
356 1 Fluidone Morinmoto
</pre>
357
358
h4. Montare un percorso esterno 
359
360
Modifica il file @/etc/schroot/default/fstab@ :
361
362
<pre>
363
/media/tuo-utente/VOLUME_ESTERNO/Giochi/Neverwinter/Neverwinter_Enhanced_Installed /srv/chroot/nwn32/mnt/nwn_game none rw,bind 0 0
364
</pre>
365
366
Crea il punto di mount nel sistema host:
367
368
<pre>
369
$ sudo mkdir -p /srv/chroot/nwn32/mnt/nwn_game
370
</pre>
371
372
h3. Installare i font
373
374 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
375
<pre>
376
(nwn32)$ sudo dpkg --add-architecture amd64
377
(nwn32)$ sudo apt update
378
(nwn32)$ sudo apt install cabextract
379
</pre>
380
381 1 Fluidone Morinmoto
Installare font aggiuntivi
382
383
<pre>
384
$ winetricks corefonts
385
$ winetricks tahoma
386
$ winetricks allfonts
387 24 Fluidone Morinmoto
</pre>
388
389
se alcuni font non dovessero essere disponibili in wine, installarli nella macchina host e copiarli nella cartella Fonts del drive C: di wine
390
391
<pre>
392
$ sudo apt install ttf-mscorefonts-installer
393
$ cp /usr/share/fonts/truetype/msttcorefonts/* /home/user/.wine_prefix_dir/drive_c/windows/Fonts
394 1 Fluidone Morinmoto
</pre>