My laptop (which I've had for about 4 years now) uses an Nvidia Quadro FX 770M (G96GL); after an initial (brief) test of using the nv driver, I switched to x11/nvidia-driver and have been using it since.
Now, I have multiple branches of FreeBSD on the laptop (stable/9, stable/10, and head); each on its own slice. And unless something interferes with my ability to do so, I update each of these slices, as well as the installed ports (which are -- with few exceptions -- only built under stable/9, as /usr/local is common to each of the slices) on a daily basis. The general sequence of operations is: * Boot from the stable/9 slice. * While "portmaster -aF --index" is running, update stable/9. * Reboot stable/9; smoke test. * Update installed ports ("portmaster -ad --index"). * Update stable/10 sources. * Reboot to stable/10. * Update stable/10. * Reboot stable/10; smoke test. * Update head sources. * Reboot to head. * Update head. * Reboot head; smoke test. * Reboot -- usually to stable/9 -- for usual day-to-day work. (With slight changes to the above numbers (and port update tools), that approach has generally served me well for over a decade.) Now, x11/nvidia-driver involves a (3rd-party) kernel module. Therefore, I include the line: PORTS_MODULES=x11/nvidia-driver in /etc/src.conf -- for each of the slices/branches. Thus, the laptop gets a fair amount of practice building & installing that port. And this has tended to Just Work -- the notable exceptions are when there's a new version of x11/nvidia-driver, just built under stable/9 (which populated /usr/local/lib), then I switch to a different branch, and there's a mis-match, causing nvidia-driver to whine. In the past, running "portmaster x11/nvdia-driver" (then unloading the old kernel module & reloading the new one) has taken care of this. Today, however, things Got Weird. In a fairly bad way. First, immediately after building the kernel proper, I see: ... objcopy --only-keep-debug kernel.debug kernel.symbols objcopy --strip-debug --add-gnu-debuglink=kernel.symbols kernel.debug kernel ===> Ports module x11/nvidia-driver (all) cd ${PORTSDIR:-/usr/ports}/x11/nvidia-driver; PATH=/usr/obj/usr/src/tmp/legacy/usr/sbin:/usr/obj/usr/src/tmp/legacy/usr/bin:/usr/obj/usr/src/tmp/legacy/usr/games:/usr/obj/usr/src/tmp/legacy/bin:/usr/obj/usr/src/tmp/usr/sbin:/usr/obj/usr/src/tmp/usr/bin:/usr/obj/usr/src/tmp/usr/games:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin:/usr/local/sbin SRC_BASE=/usr/src OSVERSION=902506 WRKDIRPREFIX=/usr/obj/usr/src/sys/CANARY /usr/obj/usr/src/make.i386/make -B clean all And then I get a dialog menu: +[ ] ACPI_PM ACPI Power Management support +[x] DOCS Build and/or install documentation +[ ] LINUX Linux compatibility support +[ ] WBINVD Flush CPU caches directly with WBINVD Docs seem OK, so I leave that. Depending on how much of the daily routine I get through before I need to hop on the bike to catch a train to get to work, it's not at all uncommon for me to perceive a need to suspend the machine until after I've boarded the train, then resume building head or read for a bit. So I checked ACPI_PM. I'm unclear on what "Linux compatibility support" means for me, so I leave it alone. I've no real clue what "WBINVD" is, so I leave it alone. The next thing from the typescript file: ===> Found saved configuration for nvidia-driver-331.20 ===> Fetching all distfiles required by nvidia-driver-331.20 for building ===> Extracting for nvidia-driver-331.20 => SHA256 Checksum OK for NVIDIA-FreeBSD-x86-331.20.tar.gz. ===> Patching for nvidia-driver-331.20 ===> Applying extra patch /common/ports/x11/nvidia-driver/files/extra-patch-mk__nvidia.lib.mk ===> Applying extra patch /common/ports/x11/nvidia-driver/files/extra-patch-x11__driver__Makefile ===> nvidia-driver-331.20 depends on file: /usr/local/libdata/pkgconfig/glproto.pc - found ===> nvidia-driver-331.20 depends on file: /usr/local/libdata/pkgconfig/dri2proto.pc - found ===> nvidia-driver-331.20 depends on file: /usr/local/libdata/pkgconfig/xorg-server.pc - found ===> nvidia-driver-331.20 depends on shared library: libGL.so - found ===> Configuring for nvidia-driver-331.20 ===> Building for nvidia-driver-331.20 ===> src (all) ...[boring build stuff elided -- dhw]... ld -Bshareable -d -warn-common -o nvidia.ko nvidia.kld objcopy --strip-debug nvidia.ko ===> lib (all) ===> lib/libGL (all) ===> lib/libnvidia-tls (all) ===> lib/libnvidia-cfg (all) ===> lib/libnvidia-glcore (all) ===> lib/libvdpau_nvidia (all) ===> x11 (all) ===> x11/driver (all) ===> x11/extension (all) ===> doc (all) -------------------------------------------------------------- >>> Kernel build for CANARY completed on Sat Feb 1 06:15:06 PST 2014 -------------------------------------------------------------- Sat Feb 1 06:15:06 PST 2014 /usr/ports /usr/src /usr/ports/x11/nvidia-driver /usr/ports /usr/src ===> Cleaning for nvidia-driver-331.20 /usr/ports /usr/src /usr/ports/print/acroreadwrapper /usr/ports /usr/src ===> Cleaning for acroreadwrapper-0.0.20130208 /usr/ports /usr/src /usr/src Sat Feb 1 06:15:06 PST 2014 -------------------------------------------------------------- >>> Installing kernel CANARY -------------------------------------------------------------- cd /usr/obj/usr/src/sys/CANARY; MAKEOBJDIRPREFIX=/usr/obj MACHINE_ARCH=i386 MACHINE=i386 CPUTYPE= GROFF_BIN_PATH=/usr/obj/usr/src/tmp/legacy/usr/bin GROFF_FONT_PATH=/usr/obj/usr/src/tmp/legacy/usr/share/groff_font GROFF_TMAC_PATH=/usr/obj/usr/src/tmp/legacy/usr/share/tmac PATH=/usr/obj/usr/src/tmp/legacy/usr/sbin:/usr/obj/usr/src/tmp/legacy/usr/bin:/usr/obj/usr/src/tmp/legacy/usr/games:/usr/obj/usr/src/tmp/legacy/bin:/usr/obj/usr/src/tmp/usr/sbin:/usr/obj/usr/src/tmp/usr/bin:/usr/obj/usr/src/tmp/usr/games:/sbin:/bin:/usr/sbin:/usr/bin /usr/obj/usr/src/make.i386/make KERNEL=kernel install ... kldxref /boot/kernel ===> Ports module x11/nvidia-driver (install) cd ${PORTSDIR:-/usr/ports}/x11/nvidia-driver; PATH=/usr/obj/usr/src/tmp/legacy/usr/sbin:/usr/obj/usr/src/tmp/legacy/usr/bin:/usr/obj/usr/src/tmp/legacy/usr/games:/usr/obj/usr/src/tmp/legacy/bin:/usr/obj/usr/src/tmp/usr/sbin:/usr/obj/usr/src/tmp/usr/bin:/usr/obj/usr/src/tmp/usr/games:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin:/usr/local/sbin SRC_BASE=/usr/src OSVERSION=902506 WRKDIRPREFIX=/usr/obj/usr/src/sys/CANARY /usr/obj/usr/src/make.i386/make -B deinstall deinstall reinstall ===> Deinstalling for x11/nvidia-driver ===> Deinstalling nvidia-driver-331.20 pkg_delete: '/boot/modules/nvidia.ko' fails original MD5 checksum - deleted anyway. pkg_delete: unable to completely remove directory '/compat/linux/usr/lib/vdpau' pkg_delete: couldn't entirely delete package `nvidia-driver-331.20' (perhaps the packing list is incorrectly specified?) and now I see another dialog box: +[ ] ACPI_PM ACPI Power Management support +[x] DOCS Build and/or install documentation +[ ] LINUX Linux compatibility support +[ ] WBINVD Flush CPU caches directly with WBINVD Err.... didn't we go through this already??!? OK; fine. I re-select ACPI_PM & hit Enter; then: ===> Staging for nvidia-driver-331.20 ===> nvidia-driver-331.20 depends on file: /usr/local/libdata/pkgconfig/xorg-server.pc - found ===> nvidia-driver-331.20 depends on shared library: libGL.so - found ===> Generating temporary packing list ===> src (install) install -o root -g wheel -m 555 nvidia.ko /usr/obj/usr/src/sys/CANARY/common/ports/x11/nvidia-driver/work/stage/boot/modules ... ====> Compressing man pages (compress-man) ===> Building package for nvidia-driver-331.20 Creating package /usr/obj/usr/src/sys/CANARY/common/ports/x11/nvidia-driver/work/nvidia-driver-331.20.tbz Registering depends: xorg-server-1.7.7_11,1 dri-7.6.1_3,2 libXxf86misc-1.0.3 libGL-7.6.1_4 libXxf86vm-1.1.3 libXinerama-1.1.3,1 libXaw-1.0.12,2 libXp-1.0.2,1 libXmu-1.1.2,1 libXpm-3.5.11 libXext-1.3.2,1 libXdamage-1.1.4 libXfixes-5.0.1 libxkbui-1.0.2_1 libXt-1.1.4,1 hal-0.5.14_22 consolekit-0.4.3 polkit-0.105_1 gobject-introspection-1.36.0_2 policykit-0.9_6 dbus-glib-0.100.2 glib-2.36.3_1 python-2.7_1,2 xkbcomp-1.2.4 libxkbfile-1.0.8 dbus-1.6.18 libX11-1.6.2,1 python2-2_2 python27-2.7.6_1 gettext-0.18.3.1 libxcb-1.9.3 xkeyboard-config-2.10.1 libxml2-2.8.0_3 libiconv-1.14_1 icu-50.1.2 libffi-3.0.13_1 libdrm-2.4.17_1 libpciaccess-0.13.2 libpthread-stubs-0.3_4 libvolume_id-0.81.1 pcre-8.33 pkgconf-0.9.4 perl5-5.16.3_6 gnomehier-3.0 pciids-20131225 libXfont-1.4.7,1 freetype2-2.5.2 dmidecode-2.12 gnome_subr-1.0 expat-2.1.0 fontsproto-2.1.2 libfontenc-1.1.2 damageproto-1.2.1 dri2proto-2.8 fixesproto-5.0 kbproto-1.0.6 libSM-1.2.2,1 libICE-1.0.8,1 libXau-1.0.8 libXdmcp-1.1.1 pixman-0.32.4 printproto-1.0.5 xextproto-7.2.1 xf86miscproto-0.9.3 xf86vidmodeproto-2.3.1 xineramaproto-1.2.1 xproto-7.0.25. Creating bzip'd tar ball in '/usr/obj/usr/src/sys/CANARY/common/ports/x11/nvidia-driver/work/nvidia-driver-331.20.tbz' tar: lib/libEGL.so: Cannot stat: No such file or directory tar: lib/libEGL.so.1: Cannot stat: No such file or directory tar: lib/libGLESv1_CM.so: Cannot stat: No such file or directory tar: lib/libGLESv1_CM.so.1: Cannot stat: No such file or directory tar: lib/libGLESv2.so: Cannot stat: No such file or directory tar: lib/libGLESv2.so.2: Cannot stat: No such file or directory tar: lib/libnvidia-eglcore.so: Cannot stat: No such file or directory tar: lib/libnvidia-eglcore.so.1: Cannot stat: No such file or directory tar: lib/libnvidia-glsi.so: Cannot stat: No such file or directory tar: lib/libnvidia-glsi.so.1: Cannot stat: No such file or directory tar: Error exit delayed from previous errors. pkg_create: make_dist: tar command failed with code 256 *** [do-package] Error code 1 Stop in /common/ports/x11/nvidia-driver. *** [install] Error code 1 Stop in /common/ports/x11/nvidia-driver. *** [reinstall] Error code 1 Stop in /common/ports/x11/nvidia-driver. *** [ports-install] Error code 1 Stop in /common/S1/obj/usr/src/sys/CANARY. *** [installkernel] Error code 1 Stop in /usr/src. *** [installkernel] Error code 1 Stop in /usr/src. Well. That's a disruption. :-( Hmmm... so I figured that maybe it would benefit from a "normal" port upgrade process. I issue "portmaster x11/nvidia-driver". ===>>> Port directory: /usr/ports/x11/nvidia-driver ===>>> Gathering distinfo list for installed ports ===>>> Launching 'make checksum' for x11/nvidia-driver in background And I get the dialog box again. And I re-select ACPI_PM. Then: ===>>> Gathering dependency list for x11/nvidia-driver from ports ===>>> Initial dependency check complete for x11/nvidia-driver 0;portmaster: x11/nvidia-driver^G ===>>> Starting build for x11/nvidia-driver <<<=== ===>>> All dependencies are up to date ===> Cleaning for nvidia-driver-331.20 And I get the dialog box again. And I re-select ACPI_PM. Then: ===> License NVIDIA accepted by the user ===> Found saved configuration for nvidia-driver-331.20 ===> Fetching all distfiles required by nvidia-driver-331.20 for building ===> Extracting for nvidia-driver-331.20 => SHA256 Checksum OK for NVIDIA-FreeBSD-x86-331.20.tar.gz. ===> Patching for nvidia-driver-331.20 ===> Applying extra patch /common/ports/x11/nvidia-driver/files/extra-patch-mk__nvidia.lib.mk ===> Applying extra patch /common/ports/x11/nvidia-driver/files/extra-patch-x11__driver__Makefile ===> nvidia-driver-331.20 depends on file: /usr/local/libdata/pkgconfig/glproto.pc - found ===> nvidia-driver-331.20 depends on file: /usr/local/libdata/pkgconfig/dri2proto.pc - found ===> nvidia-driver-331.20 depends on file: /usr/local/libdata/pkgconfig/xorg-server.pc - found ===> nvidia-driver-331.20 depends on shared library: libGL.so - found ===> Configuring for nvidia-driver-331.20 ===> Building for nvidia-driver-331.20 ===> src (all) @ -> /usr/src/sys machine -> /usr/src/sys/i386/include :> opt_acpi.h x86 -> /usr/src/sys/x86/include ... ld -Bshareable -d -warn-common -o nvidia.ko nvidia.kld objcopy --strip-debug nvidia.ko ===> lib (all) ===> lib/libGL (all) ===> lib/libnvidia-tls (all) ===> lib/libnvidia-cfg (all) ===> lib/libnvidia-glcore (all) ===> lib/libvdpau_nvidia (all) ===> x11 (all) ===> x11/driver (all) ===> x11/extension (all) ===> doc (all) And I get the dialog box again. And I re-select ACPI_PM. Then: ===> Staging for nvidia-driver-331.20 ===> Generating temporary packing list ===> src (install) install -o root -g wheel -m 555 nvidia.ko /common/ports/x11/nvidia-driver/work/stage/boot/modules ===> lib (install) ===> lib/libGL (install) ... ===> Building package for nvidia-driver-331.20 Creating package /common/ports/x11/nvidia-driver/work/nvidia-driver-331.20.tbz Registering depends: xorg-server-1.7.7_11,1 dri-7.6.1_3,2 libXxf86misc-1.0.3 libGL-7.6.1_4 libXxf86vm-1.1.3 libXinerama-1.1.3,1 libXaw-1.0.12,2 libXp-1.0.2,1 libXmu-1.1.2,1 libXpm-3.5.11 libXext-1.3.2,1 li bXdamage-1.1.4 libXfixes-5.0.1 libxkbui-1.0.2_1 libXt-1.1.4,1 hal-0.5.14_22 consolekit-0.4.3 polkit-0.105_1 gobject-introspection-1.36.0_2 policykit-0.9_6 dbus-glib-0.100.2 glib-2.36.3_1 python-2.7_1,2 xkb comp-1.2.4 libxkbfile-1.0.8 dbus-1.6.18 libX11-1.6.2,1 python2-2_2 python27-2.7.6_1 gettext-0.18.3.1 libxcb-1.9.3 xkeyboard-config-2.10.1 libxml2-2.8.0_3 libiconv-1.14_1 icu-50.1.2 libffi-3.0.13_1 libdrm-2 .4.17_1 libpciaccess-0.13.2 libpthread-stubs-0.3_4 libvolume_id-0.81.1 pcre-8.33 pkgconf-0.9.4 perl5-5.16.3_6 gnomehier-3.0 pciids-20131225 libXfont-1.4.7,1 freetype2-2.5.2 dmidecode-2.12 gnome_subr-1.0 ex pat-2.1.0 fontsproto-2.1.2 libfontenc-1.1.2 damageproto-1.2.1 dri2proto-2.8 fixesproto-5.0 kbproto-1.0.6 libSM-1.2.2,1 libICE-1.0.8,1 libXau-1.0.8 libXdmcp-1.1.1 pixman-0.32.4 printproto-1.0.5 xextproto-7. 2.1 xf86miscproto-0.9.3 xf86vidmodeproto-2.3.1 xineramaproto-1.2.1 xproto-7.0.25. Creating bzip'd tar ball in '/common/ports/x11/nvidia-driver/work/nvidia-driver-331.20.tbz' tar: lib/libEGL.so: Cannot stat: No such file or directory tar: lib/libEGL.so.1: Cannot stat: No such file or directory tar: lib/libGLESv1_CM.so: Cannot stat: No such file or directory tar: lib/libGLESv1_CM.so.1: Cannot stat: No such file or directory tar: lib/libGLESv2.so: Cannot stat: No such file or directory tar: lib/libGLESv2.so.2: Cannot stat: No such file or directory tar: lib/libnvidia-eglcore.so: Cannot stat: No such file or directory tar: lib/libnvidia-eglcore.so.1: Cannot stat: No such file or directory tar: lib/libnvidia-glsi.so: Cannot stat: No such file or directory tar: lib/libnvidia-glsi.so.1: Cannot stat: No such file or directory tar: Error exit delayed from previous errors. pkg_create: make_dist: tar command failed with code 256 *** [do-package] Error code 1 Stop in /common/ports/x11/nvidia-driver. *** [install] Error code 1 Stop in /common/ports/x11/nvidia-driver. ===>>> Installation of nvidia-driver-331.20 (x11/nvidia-driver) failed ===>>> Aborting update ===>>> Killing background jobs Terminated ===>>> You can restart from the point of failure with this command line: portmaster <flags> x11/nvidia-driver ===>>> Exiting So what do I need to do to make this work? The system is running: FreeBSD g1-251.catwhisker.org 9.2-STABLE FreeBSD 9.2-STABLE #656 r261314M/261318:902506: Fri Jan 31 04:46:38 PST 2014 r...@g1-251.catwhisker.org:/usr/obj/usr/src/sys/CANARY i386 and I had just updated sources to r261347 and ports to r342118. Peace, david -- David H. Wolfskill da...@catwhisker.org Taliban: Evil cowards with guns afraid of truth from a 14-year old girl. See http://www.catwhisker.org/~david/publickey.gpg for my public key.
pgpaFMVT0PlhM.pgp
Description: PGP signature