# Nvidia drivers support
alias char-major-195 nvidia
alias /dev/nvidiactl char-major-195

# To tweak the driver the following options can be used, note that
# you should be careful, as it could cause instability!! For more 
# options see /usr/share/doc/PACKAGE/README 
#
#   To enable Side Band Adressing:  NVreg_EnableAGPSBA=1
#
#   To enable Fast Writes: NVreg_EnableAGPFW=1
#
# To enable both for instance, uncomment following line:
#
#options nvidia NVreg_EnableAGPSBA=1 NVreg_EnableAGPFW=1
# If you have a mobile chip, you may need to enable this option
# if you have hard lockups when starting X.
#
# See: Appendix I. Configuring your laptop
# In /usr/share/doc/PACKAGE/README for full details
#
# Choose the appropriate value for NVreg_Mobile from the table:
#        Value		Meaning
#        ----------	--------------------------------------------------
#        0xFFFFFFFF	let the kernel module autodetect the correct value
#        1		Dell laptops
#        2		non-Compal Toshiba laptops
#        3		all other laptops
#        4		Compal Toshiba laptops
#        5		Gateway laptops
#
#options nvidia NVreg_SoftEDIDs=0 NVreg_Mobile=3


# !!! SECURITY WARNING !!!
# DO NOT MODIFY OR REMOVE THE DEVICE FILE RELATED OPTIONS UNLESS YOU KNOW
# WHAT YOU ARE DOING.
# ONLY ADD TRUSTED USERS TO THE VIDEO GROUP, THESE USERS MAY BE ABLE TO CRASH,
# COMPROMISE, OR IRREPARABLY DAMAGE THE MACHINE.
options nvidia NVreg_DeviceFileMode=432 NVreg_DeviceFileUID=0 NVreg_DeviceFileGID=VIDEOGID NVreg_ModifyDeviceFiles=1
