This is a collection of frequently asked questions and tips regarding FreeBSD and NVIDIA. This document is maintained by Munish Chopra, and is actively contributed to by Matthew N. Dodd and Christian Zander. It was last updated on November 12, 2002.
Your XFree86 ports must be up-to-date - this means you want
version 4.2.1 of these ports. It is strongly recommended that
you compile your kernel, XFree86-libraries, XFree86-clients,
XFree86-Servers, and the NVIDIA FreeBSD driver WITHOUT
OPTIMIZATIONS! This means, no -march
or
-mcpu
and no -OX
. If you are having
intermittent crashes, or other concerns, they may very well be related
to this!
Additionally, you should turn off APM/ACPI and set PnP OS to 'No'/'Disabled' in your BIOS. Try not to run a GENERIC-style kernel with all types of devices (especially ISA) that you don't need.
Please also pay attention to the hw.nvidia sysctl's (described further in the NVIDIA README). Having the right settings can make a world of difference.
At the end of this page, there is a list of apps/games that have been confirmed to work with FreeBSD. Questions regarding getting apps/games to install/run will be posted towards the end of the FAQ.
If you'd like to have a more interactive help session, try IRC. Some FreeBSD users tend to hang out in #nvidia and/or #freebsd-nvidia on irc.openprojects.net.
Q: OH MY GOD! CRAZY! AHH! WHAT'S THE PERFORMANCE LIKE?! AHH! CRAZY! WOW!
A: Though some people suggest substantial (15%) performance increases in, for instance, the Quake 3 timedemo, it's anywhere between highly unlikely and impossible that this is happening at a sane resolution. Performance will most likely be equal to Linux, with negligible differences. Unfortunately, especially at higher resolutions, both the FreeBSD and Linux drivers are currently outperformed considerably by their Windows counterparts.
Q: Will my TV-out work?
A: Yes.
Q: I've been told I need to generate custom modelines. How would I accomplish this?
A: Get gtf.c
, the source code
for a tool to generate mode timings using the GTF standard. Compile it
like this: cc gtf.c -o gtf -lm -Wall
. Execute it to
figure out how it works, and then drop your modeline into the
"Monitor"
section of your XF86Config
.
Q: I start X and get these weird vertical lines or just the NVIDIA logo, and the machine seems to hang. I can ssh in or reboot it with CTRL-ALT-DEL, but it just doesn't work. I have an SiS chipset.
A: Please see this page.
Q: My machine crashes now and then, but only when using the NVIDIA FreeBSD driver. What's going on?
A: First see the intro, did you compile without
optimizations? If you did, you may have a fragile chipset. Try
lowering your AGP rate in the BIOS or
nvidia_os_registry.c
. If you want to use
nvidia_os_registry.c
to do this, find the line that reads
{ "ReqAGPRate", "Force AGP Rate", 4,
0 }
, and change the last 0
to 1
. Now
you will be able to set the sysctl
hw.nvidia.registry.ReqAGPRate
to the value of the desired
AGP rate. You will of course need to rebuild/reinstall/reload the
kernel driver before attempting to set the sysctl.
Q: My system is just plain acting up.
A: The MTRRs sometimes don't play nicely with the rest of
the system. As of November 14, 2002 (projected MFC), there is a loader
tunable called machdep.disable_mtrrs
. Set it to
1
to turn off the MTRRs, or 0
to leave them
on, and reboot.
Q: Can I run this driver under -CURRENT?
A: The NVIDIA FreeBSD driver is not officially supported
under -CURRENT! Don't bitch if it doesn't work. If you want to try
though, comment out lines 24 through 34 in
src/nv-freebsd.h
or enclose the same lines in an #if
0/endif
directive.
Q: The driver kind of works under -CURRENT, but I get this
weird __sF
symbol stuff. What do I do?
A: -CURRENT recently staticized __sF
for a
while, but it was later decided that this was too much of a pain to
keep. As of revision 1.27 of src/lib/libc/stdio/findfp.c
(2002/11/10 00:44:38 PST), __sF
is restored. Update your
sources and rebuild -CURRENT. For the curious, as of 2002/11/09, no
more binaries or libraries will be generated with __sF
.
Q: When I start a multithreaded game/app under linux_compat all hell breaks loose and my machine dies.
A: There are still some troubles with multithreaded apps
under linux_compat. Set the environment variable
__GL_SINGLE_THREADED
- that should do the trick. In a
c-style shell, you can do this by executing setenv
__GL_SINGLE_THREADED
, or in a bourne-style shell by executing
export __GL_SINGLE_THREADED
. A fix for this is in the
works.
Q: The sound in my game/app using OpenAL skips.
A: Put the following in your ~/.openalrc: (define devices
'(sdl))
Q: How do I install Quake 3? I only have the Windows CD. [contributed by Joe Harris]
A: Get the latest Quake
3 Point Release and run it as root: sh
linuxq3apoint-1.32.x86.run
. It will install Quake 3 into
/usr/compat/linux/usr/games/quake3
, which you may want to
symlink to /usr/local/games/quake3
. Now you'll need to
get the file called pak0.pk3
from your Quake 3 CD and
copy it to /usr/compat/linux/usr/games/quake3/baseq3
. The
game executable is called quake3
and resides in the base
install directory.
Q: When I install Unreal Tournament 2003, it won't accept my CDs as the correct ones.
A: The Loki Setup tool, used for Unreal Tournament 2003,
among other games, looks at the SETUP_CDROM
variable to
find out where your CDs are. Set it to the correct path.
Q: When I install Unreal Tournament 2003, I can't enter the CD Key. It says this'll prevent me from playing the game!
A: Blame dirty Linux shell-scripting, bash'isms
suck. echo YOUR-UT2K3-KEY-HERE >
ut2003/System/cdkey
. Enjoy the game.
Q: I tried to use the Loki Update tool to update my Unreal
Tournament 2003 install, but the update didn't work. It says something
about ELF binary type "0" not known
.
A: The Loki Update tool and linux_compat don't play nicely
in this case. Set the sysctl kern.fallback_elf_brand
to
3
and echo "multi on" >>
/usr/compat/linux/etc/host.conf
. Alternatively, just download
the patch and run it manually.
Apps:
Games: