Installation and configuration of the NVIDIA FreeBSD Driver Set on a notebook is the same as for any desktop environment, with a few additions, as described below.
All notebook NVIDIA GPUs support power management, both S3 (also known as "Standby" or "Suspend to RAM") and S4 (also known as "Hibernate", "Suspend to Disk" or "SWSUSP"). Power management is system-specific and is dependent upon all the components in the system; some systems may be more problematic than other systems.
Most recent notebook NVIDIA GPUs also support PowerMizer, which monitors application work load to adjust system parameters to deliver the optimal balance of performance and battery life. However, PowerMizer is only enabled by default on some notebooks. Please see the known issues below for more details.
Mobile NVIDIA GPUs also have the capacity to react to a display change hotkey event, toggling between each of the connected display devices and each possible combination of the connected display devices (note that only 2 display devices may be active at a time).
Hotkey switching dynamically changes the TwinView configuration; a given hotkey event will indicate which display devices should be in use at that time, and all MetaModes currently configured on the X screen will be updated to use the new configuration of display devices.
Another important aspect of hotkey functionality is that you can dynamically connect and remove display devices to/from your notebook and use the hotkey to activate and deactivate them without restarting X.
Note that there are two approaches to implementing this hotkey support: ACPI events and polling.
Most recent notebooks use ACPI events to deliver hotkeys from the System BIOS to the graphics driver. This is the preferred method of delivering hotkey events, but is still a new feature under most UNIX platforms and may not always function correctly.
The polling mechanism requires checking during the vertical blanking interval for a hotkey status change. It is an older mechanism for handling hotkeys, and is therefore not supported on all notebooks and is not tested by notebook manufacturers. It also does not always report the same combinations of display devices that are reported by ACPI hotkey events.
The NVIDIA FreeBSD Driver will attempt to use ACPI hotkey events, if possible. In the case that ACPI hotkey event support is not available, the driver will revert back to trying hotkey polling. In the case that the notebook does not support hotkey polling, hotkeys will not work. Please see the known issues section below for more details.
When switching away from X to a virtual terminal, the VGA console will always be restored to the display device on which it was present when X was started. Similarly, when switching back into X, the same display device configuration will be used as when you switched away, regardless of what display change hotkey activity occurred while the virtual terminal was active.
All notebook NVIDIA GPUs support docking, however support may be limited by the OS or system. There are three types of notebook docking (hot, warm, and cold), which refer to the state of the system when the docking event occurs. hot refers to a powered on system with a live desktop, warm refers to a system that has entered a suspended power management state, and cold refers to a system that has been powered off. Only warm and cold docking are supported by the NVIDIA driver.
All notebook NVIDIA GPUs support TwinView. TwinView on a notebook can be configured in the same way as on a desktop computer (refer to Chapter 12, Configuring TwinView ); note that in a TwinView configuration using the notebook's internal flat panel and an external CRT, the CRT is the primary display device (specify its HorizSync and VertRefresh in the Monitor section of your X config file) and the flat panel is the secondary display device (specify its HorizSync and VertRefresh through the SecondMonitorHorizSync and SecondMonitorVertRefresh options).
The "UseEdidFreqs" X config option is enabled by default, so normally you should not need to specify the "SecondMonitorHorizSync" and "SecondMonitorVertRefresh" options. See the description of the UseEdidFreqs option in Appendix B, X Config Options for details).
There are a few known issues associated with notebooks:
Display change hotkey switching is not available on all notebooks. In some cases, the ACPI infrastructure is not fully supported by the NVIDIA FreeBSD Driver. Work is ongoing to increase the robustness of NVIDIA's support in this area. Toshiba and Lenovo notebooks are known to be problematic.
ACPI Display change hotkey switching is not supported by X.Org X servers earlier than 1.2.0; see EnableACPIHotkeys in Appendix B, X Config Options for details.
In many cases, suspending and/or resuming will fail. As mentioned above, this functionality is very system-specific. There are still many cases that are problematic. Here are some tips that may help:
In some cases, hibernation can have bad interactions with the PCI Express bus clocks, which can lead to system hangs when entering hibernation. This issue is still being investigated, but a known workaround is to leave an OpenGL application running when hibernating.
On some notebooks, PowerMizer is not enabled by default. This issue is being investigated, and there is no known workaround.
ACPI is not currently supported on FreeBSD As a result, ACPI hotkey events are not supported.
On GeForce 6- and 7-series GPUs, the video overlay only works on the first display device on which you started X. For example, if you start X on the internal LCD, run a video application that uses the video overlay (uses the "Video Overlay" adapter advertised through the XV extension), and then hotkey switch to add a second display device, the video will not appear on the second display device. To work around this, you can either configure the video application to use the "Video Blitter" adapter advertised through the XV extension (this is always available), or hotkey switch to the display device on which you want to use the video overlay *before* starting X.