Summary of xorg -> 7.4 with nvidia driver without hal

Lars Eighner portsuser at
Thu Feb 12 00:00:34 PST 2009

Summary of experiences upgrading xorg -> 7.4 with nvidia-driver without hal

I have had many misadventures in upgrading to xorg 7.4 with nvidia-driver.
This is a summary of what worked.  Most of these things are not original
but have been derived of things posted here and to the ports mailing list.
I have however tried to eliminate some of the stuff that seemed unnecessary
or did not help.

This assumes you have been more or less sucessfully been running xorg 7.3
with the nvidia driver with or without hal and want to upgrade to xorg 7.4
without hal.

1.  If you have previously built xorg with hal, beware of manually changing
/var/db/ports/xorg/options manually unless you know what you are doing.  In
general the *value* of config flags is never tested, but only the existence
of the flags.  So changing WITH_HAL=true is *not* likely to work.  Instead,
this flag needs to be replaced by WITHOUT_HAL=true (that is *not* by

2.  If you did not rebuild libxcb and all its dependancies as advised in
UPGRADING 20090123 do not do so until you are ready to upgrade xorg.  This
is merely a time-saving measure.  The dependencies of libxcb include pretty
much everything x-related, so there is no point in doing it with the old
ports tree, if you are immediately going to build xorg with a newer ports

3.  Upgrade xorg.  If you do this immediately after 2, there won't be much
to it.

4. Rebuild nvidia-driver.

5. Now the problem is, the nvidia-driver version of is broken.
When nvidia-driver built, it should have preserved the xorg lib as
XXX-libwfb... If you have done things in exactly this order, so you know the
backed up xorg lib is the right one, you can simply change the symbolic link
which is to the backed up (XXX-etc.) xorg lib.  However, if you
have any doubts about the backed up lib being the right one do this:
            a.  force reinstallation of xorg-server, and
            b.  replace in /usr/local/xorg/modules with a symbolic
link to (which is nvidia verson of this lib).

6. Add the line
         option	"AllowEmptyInput" "off"
to the server layout section of /etc/X11/xorg.conf.  The whole section
should then look something like:

Section "ServerLayout"
     Identifier     "Layout0"
     Screen      0  "Screen0" 0 0
     InputDevice    "Keyboard0" "CoreKeyboard"
     InputDevice    "Mouse0" "CorePointer"
     option	"AllowEmptyInput" "off"

Some reports suggest that this really belongs in a ServerFlags section,
but this seems to work.

7. Verify that


is effective in /etc/rd.conf.  Remember that rd.conf cascades on itself and
the default rd.conf, so that the *last* option entered wins.  You can use
the configure option of /usr/sbin/sysinstall to be sure that moused works
and that a winning entry is in /etc/rd.conf, but just checking and editing
manually will also work.

8. reboot.

Reports are that you cannot load the new nvidia kernel module manually
with kldload (although this may have worked in the past).

9.  If the keyboard in X still does not work, you may have to force
reinstallation of xf86-input-keyboard.  This worked for me after I had done
everything else and the mouse was working.

Lars Eighner
8800 N IH35 APT 1191 AUSTIN TX 78753-5266

More information about the freebsd-ports mailing list