Ambiente Isolato per wine a 32 bit » History » Revision 10
Revision 9 (Fluidone Morinmoto, 11/30/2025 11:54 AM) → Revision 10/38 (Fluidone Morinmoto, 11/30/2025 12:00 PM)
h1. Ambiente Isolato per wine a 32 bit
Puoi isolare l'Aurora Toolset in un ambiente separato, in cui libgd3:i386 sia installata senza interferire con il sistema principale.
Installa schroot
<pre>
$ sudo apt install schroot debootstrap
</pre>
Configura un ambiente chroot a 32-bit:
h2. Debian
<pre>
$ sudo debootstrap --arch=i386 bullseye /srv/chroot/nwn32 http://deb.debian.org/debian
</pre>
Modifica il file /etc/schroot/schroot.conf e aggiungi:
<pre>
[nwn32]
description=Debian 32-bit environment for Neverwinter Nights Toolset
directory=/srv/chroot/nwn32
root-users=tuo-utente
type=directory
users=tuo-utente
</pre>
Avvia schroot come utente root e installa sudo:
<pre>
$ sudo schroot -c nwn32 -u root
(nwn32)$ apt update
(nwn32)$ apt install sudo
(nwn32)$ usermod -aG sudo tuo-utente
(nwn32)$ exit
</pre>
Adesso entra nell'ambiente nwn32 e installa wine32 ed eventuali pacchetti necessari:
<pre>
$ schroot -c nwn32
(nwn32)$ sudo dpkg --add-architecture i386
(nwn32)$ sudo apt install wget gnupg2 libgd3:i386 libwine:i386 wine32 mesa-utils
</pre>
Librerie necessarie:
Core OpenGL / Mesa
<pre>
(nwn32)$ sudo apt install libgl1-mesa-glx:i386 libgl1-mesa-dri:i386 libglu1-mesa:i386 libglapi-mesa:i386 libxatracker2:i386 libdrm2:i386
</pre>
X11 e estensioni
<pre>
(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
</pre>
Font / Rendering
<pre>
(nwn32)$ sudo apt install libfreetype6:i386 libfontconfig1:i386 libpng16-16:i386 libsm6:i386 libice6:i386
</pre>
Audio / OpenAL
<pre>
(nwn32)$ sudo apt install libopenal1:i386 libasound2:i386 libasound2-plugins:i386
</pre>
Extra per Wine / compatibilità
<pre>
(nwn32)$ sudo apt install libc6:i386 libc6-dev-i386 libgcc-s1:i386 libstdc++6:i386 libtinfo6:i386 libncurses6:i386
</pre>
Driver video 32-bit (se NVIDIA/AMD proprietari)
<pre>
(nwn32)$ sudo apt install libnvidia-glx:i386 libnvidia-glvkspirv:i386
</pre>
Esportare il display per avviare finestre dentro l'ambiente:
<pre>
(nwn32)$ export DISPLAY=:0
</pre>
h4. winetricks extra sources
Aggiungere a /etc/apt/sources.list:
<pre>
deb http://deb.debian.org/debian bullseye main contrib non-free
deb http://deb.debian.org/debian bullseye-updates main contrib non-free
deb http://security.debian.org/debian-security bullseye-security main contrib non-free
</pre>
poi:
<pre>
(nwn32)$ sudo apt update
(nwn32)$ sudo apt install winetricks
</pre>
h4. Librerie NVidia in posizioni non standard
Dentro schroot installa le librerie corrispondenti alla versione del driver host:
<pre>
(nwn32)$ sudo dpgk --add-architecture i386
(nwn32)$ sudo apt update
(nwn32)$ sudo apt install nvidia-driver-libs:i386
</pre>
Nel sistema host verifica dove si trovano le librerie:
<pre>
$ cd /usr/lib
$ find . -name "libGLX_nvidia.so.0"
</pre>
Individua nell'output le librerie i386 e poi monta la directory delle librerie dal sistema host nel sistema schroot:
<pre>
$ sudo mount --bind /usr/lib/i386-linux-gnu/ /srv/chroot/nwn32/usr/lib/i386-linux-gnu/nvidia/current/
</pre>
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
<pre>
(nwn32)$ sudo mkdir -p /usr/lib32
(nwn32)$ cd /usr/lib32
(nwn32)$ sudo mkdir -p nvidia
(nwn32)$ sudo ln -sf /usr/lib/i386-linux-gnu/nvidia/current/libGLX_nvidia.so.0 nvidia/libGLX.so.0
(nwn32)$ sudo ln -sf /usr/lib/i386-linux-gnu/nvidia/current/libEGL_nvidia.so.0 nvidia/libEGL.so.1
(nwn32)$ sudo ln -sf /usr/lib/i386-linux-gnu/nvidia/current/libGLESv2_nvidia.so.2 nvidia/libGLESv2.so.2
(nwn32)$ sudo ln -sf /usr/lib/i386-linux-gnu/nvidia/current/libGLESv1_CM_nvidia.so.1 nvidia/libGLESv1_CM.so.1
(nwn32)$ sudo ln -sf /usr/lib/i386-linux-gnu/nvidia/current/libcuda.so.1 nvidia/libcuda.so.1
</pre>
Poi impostare LD_LIBRARY_PATH:
<pre>
(nwn32)$ export LD_LIBRARY_PATH=/usr/lib32/nvidia:$LD_LIBRARY_PATH
(nwn32)$ export WINEPREFIX="$HOME/.wine32/" WINEARCH=win32 wine nwtoolset.exe
</pre>
h4. Montare un percorso esterno
Modifica il file @/etc/schroot/default/fstab@ :
<pre>
/media/tuo-utente/VOLUME_ESTERNO/Giochi/Neverwinter/Neverwinter_Enhanced_Installed /srv/chroot/nwn32/mnt/nwn_game none rw,bind 0 0
</pre>
Crea il punto di mount nel sistema host:
<pre>
$ sudo mkdir -p /srv/chroot/nwn32/mnt/nwn_game
</pre>
h3. Installare i font
<pre>
$ sudo apt install ttf-mscorefonts-installer
$ cp /usr/share/fonts/truetype/msttcorefonts/* /home/user/.wine_prefix_dir/drive_c/windows/Fonts
</pre>
Installare font aggiuntivi
<pre>
$ winetricks corefonts
$ winetricks tahoma
$ winetricks allfonts
</pre>
h2. Ubuntu 20.04
Installa una versione @minimal@ di ubuntu, quindi poi vanno aggiunti i repository manualmente:
<pre>
$ sudo debootstrap --arch=i386 --variant=minbase focal /srv/chroot/nwn32 http://archive.ubuntu.com/ubuntu/
</pre>
Installa pacchetti base base:
<pre>
$ sudo apt install bash-completion vim wget
</pre>
Aggiungi i repository manualmente nel file @/etc/apt/sources.list@:
<pre>
deb http://archive.ubuntu.com/ubuntu/ focal main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ focal-updates main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ focal-security main restricted universe multiverse
</pre>
Modifica il file /etc/schroot/schroot.conf e aggiungi:
<pre>
[nwn32]
description=Debian 32-bit environment for Neverwinter Nights Toolset
directory=/srv/chroot/nwn32
root-users=tuo-utente
type=directory
users=tuo-utente
</pre>
Avvia schroot come utente root e installa sudo:
<pre>
$ sudo schroot -c nwn32 -u root
(nwn32)$ apt update
(nwn32)$ apt install sudo
(nwn32)$ usermod -aG sudo tuo-utente
(nwn32)$ exit
</pre>
Adesso entra nell'ambiente nwn32 aggiungi architettura i386, installa software-properties-common e aggiungi i repository universe e multiverse:
<pre>
$ schroot -c nwn32
(nwn32)$ sudo dpkg --add-architecture i386
(nwn32)$ sudo apt install software-properties-common
(nwn32)$ sudo add-apt-repository universe
(nwn32)$ sudo add-apt-repository multiverse
</pre>
e installa wine32, winetricks ed eventuali pacchetti necessari:
<pre>
(nwn32)$ sudo apt install wget gnupg libgd3:i386 libwine:i386 wine32 mesa-utils winetricks
</pre>
Librerie necessarie:
Core OpenGL / Mesa
<pre>
(nwn32)$ sudo apt install libgl1-mesa-glx:i386 libgl1-mesa-dri:i386 libglu1-mesa:i386 libglapi-mesa:i386 libxatracker2:i386 libdrm2:i386
</pre>
X11 e estensioni
<pre>
(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
</pre>
Font / Rendering
<pre>
(nwn32)$ sudo apt install libfreetype6:i386 libfontconfig1:i386 libpng16-16:i386 libsm6:i386 libice6:i386
</pre>
Audio / OpenAL
<pre>
(nwn32)$ sudo apt install libopenal1:i386 libasound2:i386 libasound2-plugins:i386
</pre>
Extra per Wine / compatibilità
<pre>
(nwn32)$ sudo apt install libc6:i386 libc6-dev-i386 libgcc-s1:i386 libstdc++6:i386 libtinfo6:i386 libncurses6:i386
</pre>
Driver video 32-bit (se NVIDIA/AMD proprietari)
<pre>
(nwn32)$ sudo apt install libnvidia-glx:i386 libnvidia-glvkspirv:i386
</pre>
Installa le librerie corrispondenti alla versione del driver host:
<pre>
(nwn32)$ sudo dpkg --add-architecture i386
(nwn32)$ sudo add-apt-repository ppa:graphics-drivers/ppa
(nwn32)$ sudo apt update
(nwn32)$ sudo apt install nvidia-driver-470
</pre>
Esportare il display per avviare finestre dentro l'ambiente:
<pre>
(nwn32)$ export DISPLAY=:0
</pre>
h4. Librerie NVidia in posizioni non standard
Nel sistema host verifica dove si trovano le librerie:
<pre>
$ cd /usr/lib
$ find . -name "libGLX_nvidia.so.0"
</pre>
Individua nell'output le librerie i386 e poi monta la directory delle librerie dal sistema host nel sistema schroot:
<pre>
$ sudo mount --bind /usr/lib/i386-linux-gnu/ /srv/chroot/nwn32/usr/lib/i386-linux-gnu/nvidia/current/
</pre>
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
<pre>
(nwn32)$ sudo mkdir -p /usr/lib32
(nwn32)$ cd /usr/lib32
(nwn32)$ sudo mkdir -p nvidia
(nwn32)$ sudo ln -sf /usr/lib/i386-linux-gnu/nvidia/current/libGLX_nvidia.so.0 nvidia/libGLX.so.0
(nwn32)$ sudo ln -sf /usr/lib/i386-linux-gnu/nvidia/current/libEGL_nvidia.so.0 nvidia/libEGL.so.1
(nwn32)$ sudo ln -sf /usr/lib/i386-linux-gnu/nvidia/current/libGLESv2_nvidia.so.2 nvidia/libGLESv2.so.2
(nwn32)$ sudo ln -sf /usr/lib/i386-linux-gnu/nvidia/current/libGLESv1_CM_nvidia.so.1 nvidia/libGLESv1_CM.so.1
(nwn32)$ sudo ln -sf /usr/lib/i386-linux-gnu/nvidia/current/libcuda.so.1 nvidia/libcuda.so.1
</pre>
Poi impostare LD_LIBRARY_PATH:
<pre>
(nwn32)$ export LD_LIBRARY_PATH=/usr/lib32/nvidia:$LD_LIBRARY_PATH
(nwn32)$ export WINEPREFIX="$HOME/.wine32/" WINEARCH=win32 wine nwtoolset.exe
</pre>
h4. Montare un percorso esterno
Modifica il file @/etc/schroot/default/fstab@ :
<pre>
/media/tuo-utente/VOLUME_ESTERNO/Giochi/Neverwinter/Neverwinter_Enhanced_Installed /srv/chroot/nwn32/mnt/nwn_game none rw,bind 0 0
</pre>
Crea il punto di mount nel sistema host:
<pre>
$ sudo mkdir -p /srv/chroot/nwn32/mnt/nwn_game
</pre>
h3. Installare i font
<pre>
$ sudo apt install ttf-mscorefonts-installer
$ cp /usr/share/fonts/truetype/msttcorefonts/* /home/user/.wine_prefix_dir/drive_c/windows/Fonts
</pre>
Installare font aggiuntivi
<pre>
$ winetricks corefonts
$ winetricks tahoma
$ winetricks allfonts
</pre>