To get wine (which is a 32 bit application) running on a 64 bit FreeBSD installation you have 2 options:
- Get the wine-fbsd64 packages from mediafire.
- Build it manually.
In my case the second option was necessary because my system was running pkgng and there are no pkgng packages for FreeBSD 8 available. Before you start be sure to have enough disk space for the /compat/i386 directory. You’ll need around 2 gb.
At first we create the necessary directory structure and build an i386 system into the compat directory. Then we mount our ports directory, copy our system source directory, chroot into the compat directory, start ldconfig and mount our /dev directory.
# mkdir -p /compat/i386 # cd /usr/src # make buildworld TARGET=i386 DESTDIR=/compat/i386 # make distrib-dirs TARGET=i386 DESTDIR=/compat/i386 # make distribution TARGET=i386 DESTDIR=/compat/i386 # make installworld TARGET=i386 DESTDIR=/compat/i386 # cp /etc/resolv.conf /compat/i386/etc # mkdir -p /compat/i386/usr/ports # mount -t nullfs /usr/ports /compat/i386/usr/ports # cd /compat/i386/usr/src # cp -a /usr/src/ . # chroot /compat/i386 # mount -t devfs devfs /dev # /etc/rc.d/ldconfig start
Now we need to set our environment variables and build the wine port.
# setenv MACHINE i386 # setenv UNAME_p i386 # setenv UNAME_m i386 # cd /usr/ports/emulators/wine # make install clean
To enable 3D on nvidia cards you’ll have to build the corresponding nvidia driver into the compat directory.
# cd /usr/ports/x11/nvidia-driver # make install clean
Now leave the chroot environment.
Last but not least you need some aliases for your shell:
alias winecfg="LD_32_LIBRARY_PATH=/compat/i386/usr/local/lib PATH=/compat/i386/usr/local/bin:$PATH /compat/i386/usr/local/bin/winecfg" alias wine32="LD_32_LIBRARY_PATH=/compat/i386/usr/local/lib PATH=/compat/i386/usr/local/bin:$PATH /compat/i386/usr/local/bin/wine"
That’s all folks! :-)