techAdmin
Status: Site Admin
Joined: 26 Sep 2003
Posts: 1597
Location: East Coast, West Coast? I know it's one of them.
Back to top
Posted: Aug 10, 07, 18:22    Debian nVidia / ATI graphics driver installer script sgfxi
(Page last updated 2009-11-28)
sgfxi Debian sid/testing + sidux nVidia, fglrx + xorg driver installer/configuration
This script is designed for Debian sid, testing, and stable, as well as derived distros like Mepis, Antix, or sidux.

NEW: Ubuntu/Arch Linux support is under development, this is the current status:
Working:
sgfxi (or sgfxi -c if you want composite enabled): nvidia non free direct download from nvidia.com, selects proper driver for your card, extracts, installs, cleans up, removes all previous drivers.
Ubuntu:sgfxi -F fglrx direct download from ati.com, builds debs for Ubuntu. Tested and seems to work.
Ubunut: sgfxi -s install distro supplied drivers, configure xorg.conf, remove any previous drivers. Works in theory for fglrx but not confirmed, works for nvidia, confirmed.
Arch: sgfxi -f or sgfxi: for fglrx binary direct install. Assumed to be working until we hear otherwise.

Free xorg driver reinstall, remove non free binaries.
sgfxi -n (native driver install nv/ati, removes all binary non free parts)
sgfxi -N <ati|radeon|radeonhd|nv|nouveau|vesa> (like: sgfxi -N vesa) (upgrades xorg.conf to use specified free xorg driver, removes all binary.

Not Working:
Ubuntu: sgfxi -f (or sgfxi) - For fglrx, not working. Use -F if you want the latest fglrx driver, direct download/install does not work so far in my tests.
Arch: sgfxi -F / sgfxi -s - not yet, don't know if it's feasible.

New Features:
  • -f deprecated, direct binary fglrx install is now script default. -F is now optional way to try the constantly failing fglrx run package deb builder/installer method.
  • -L [d|f|n] option. Shows current, live, from sgfxi server, driver/fglrx/nvidia status information. Can be run in X, not as root.
  • Automatic beta driver install (nVidia only). -B automatically tests for present beta driver support for your card type, if available, uses it, if not, uses correct stable driver version.
  • Support for new vanilla/default Debian Xen enabled kernels (kernels > 2.6.25 now in Debian sid/testing) + driver installer run packages from ATI/Nvidia (patch source).
  • Install onto new kernel from old kernel, using -K option, like this:
    :: Code ::
    sgfxi -c -K 2.6.25-2

    This would enable composite (-c) and install to kernel 2.6.25-2 no matter what kernel you're in now. No longer supported for default fglrx install, does work for debian-driver method (sgfxi -s) and fglrx -F method (which is not reliable in general)
  • Much improved patch handling, now downloads and runs patches as required for nvidia/fglrx (when fglrx actually works, of course).


script information and resources:
  • script documentation. Useful items:

  • script svn - Home to sgfxi code. This is always the current code. Includes most script development tools, patches, and all script files.
  • #smxi on irc.oftc.net - irc smxi / sgfxi / svmi support for all Debian based distro users trying out smxi or other scripts - bughunters with output welcomed. If someone is in the channel, ask a question, then check back later, it might take some time to get an answer. To check available factoids from the Amy bot, type in: !categories in your irc client.

Script functions
This script downloads the binary graphic driver installers from either nvidia or ATI, prepares system, installs, then sets up xorg.conf, all in a fairly clean, reasonably intuitive way.

sgfxi allows you to easily switch between proprietary non free drivers like ATI's fglrx and nVidia's nvidia driver and the free xorg drivers. Simply use the -n option to do any automatic install for nvidia, ati, intel, and 3dfx, or -N <xorg driver name> for others.

Debian packaged nvidia or ati drivers tend to be fairly unreliable for cutting edge kernels and systems, but the script makes it easy to install either the run installer from nVidia/ATI, or using Debian methods.

If you want to switch between the debian nvidia/fglrx drivers and the straight installs from ATI/Nvidia, you can easily do that by using: sgfxi -s
-s forces debian driver method instead of downloaded binaries. You can switch back and forth easily, in case one works and another doesn't.

Script requirements
  • Must be run as root/su (except to view help -h menu)
  • Script does not run in x, must be in console, and it will shut down detected instances of kde/gnome etc
  • Please run script from /usr/local/bin to avoid errors in the future. That's where it expects to be
  • Debian sid / testing / stable based systems only officially supported.
  • Must have a working internet connection to update itself and download drivers if required.

Script download / install
Download the sgfxi script here or just run the following command string as root user in terminal/console [recommended]:

:: Code ::
cd /usr/local/bin;wget -Nc smxi.org/sgfxi;chmod +x sgfxi;sgfxi
# for help, or lists of available drivers etc, do:
sgfxi -h


Script features the following:

  • sgfxi -h shows available drivers, options, and if your system is supported.
  • Script updates itself automatically every time to latest version
  • Full logging of install located /var/log/sgfxi/<time stamped log of install>
  • sgfxi will also detect multiple video cards and ask which you want to install a driver for.
  • Pre setup configuration
  • Script detects card type and determines which driver and driver version to install, for example, for legacy nvidia cards, it will automatically select the proper legacy nvidia driver.
  • Download/extraction of binary installers from either ATI or nVidia. Note: script will download to this location: /usr/src and will then reuse the driver if you need to reinstall it due to xorg or kernel updates.
  • System cleanup, removes all previously installed graphics drivers
  • Installs drivers - or creates debs for driver install (ATI sgfxi -F method only)
  • Configures and installs driver debs (sgfxi -F for ATI only)
  • Creates a time stamped backup of xorg.conf, like so: xorg.conf-bu-20070812....
  • Reconfigures xorg.conf, cleans up all legacy cruft that it can find, then redoes it to work as expected
  • Script also features option to simply install xorg drivers such as intel, nv, ati, radeon, etc.

Script options
Here are some examples of typical installs and useage:
:: Code ::
# for normal nvidia install, with composite enabled
sgfxi -c
# for normal fglrx install (direct binary install, no debs)
sgfxi
# fglrx binary run package install: debs created/installed
# like sgfxi for nVidia, installs binaries without debian packaging
sgfxi -F
# for installing normal ati xorg driver
sgfxi -n
# for installing special xorg radeon driver
sgfxi -N radeon
# for installing an older nvidia driver, with composite
sgfxi -co 100.14.19

The following is what the -h help menu gives as options and system information, as an example.

Latest nvidia stable/beta drivers are usually added the day of release, unless there are problems. Generally only current fglrx version, sometimes also one prior, is supported due to consistent problems with fglrx drivers and cutting edge distros:

:: Code ::
sgfxi -h
While you can run this script in X, we recommend you run it in terminal.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Script Requirements: Only true Debian based systems. No *buntus.
Xorg version required: 7.1/1.1 or greater - Your X version: 1.6
Linux Kernel required: 2.6.18 or greater - Your kernel: 2.6.30-5.dmz.4-liquorix-686
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
'default:' - This is the driver installed automatically unless it is not supported by
your card. Some older cards will force an override of this basic default. Script will
print out what driver it will install when you start it up, with option to exit.

'supported-drivers:' choices require -o <see -o for correct syntax> to install.
fglrx: default: 9-8 supported-drivers: 9-8 9-3 8-12 9-7 9-6 9-5 9-4 9.2 9-1 8-11 8-10 8-9 8-8 8-7 8-6 8-5 8-4
nvidia: default: 185.18.36      supported-drivers: 185.18.36 173.14.20 96.43.13 71.86.11 185.18.31 185.18.29 185.18.14 180.60 180.51 180.44 177.82 173.14.18 173.14.12 169.12 100.14.19 96.43.11 71.86.09 71.86.06
The following drivers are available for testing purposes:
nvidia: 190.25 190.18 185.19 180.53 96.43.10
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
These are your supported options:
-A Run the install non-interactively. Will not restart x at end.
-b Enable tripleBuffer (nvidia only). triplebuffer can reduce 3d performance on cards
   with low graphics memory (64 mB or less). Default is disabled/off.
-B Use latest Beta Driver for your card type. Autodetects card type/beta driver (nVidia cards only).
   If no beta driver is available, the current stable driver for your card type is used.
-c Use composite mode. For things like Beryl/Compiz (nVidia cards only).
-C Skip Xorg configuration. Only use this if your Xorg is already working with your driver.
   Main use is if you have dual card output and don't want xorg.conf changed.
-f Install direct fglrx with FGLRX binary run package, without creating deb files (ATI Only).
   Deprecated. Because of constant deb builder failures, the direct install method is now default.
-F Build Debian debs for fglrx with FGLRX binary run package, then install them (ATI Only).
   Because of constant deb builder failures, the direct install method is recommended and default for sgfxi.
-h View this help menu.
-j Alternate text/output script colors. Requires this syntax: -j 0 (sets to monochrome )
   -j 1 (script default); -j 2 (alternate color scheme); -j 3 (nice earthy scheme)
-K Installs nVidia/fglrx driver for another kernel. Syntax: sgfxi -K 2.6.25-2
   sgfxi will double check that the kernel exists.
-L List current live driver or status data then exit. Requires extra argument: d to show current drivers;
   n to show current nvidia support status; f to show current fglrx support status.
-n Automatically installs correct native xorg nv, intel, or ati driver for your system.
   Cleans up old binary driver stuff, updates xorg.conf with new driver information,
   and cleans nvidia and fgrlx stuff out of xorg.conf
-N Force install of specific xorg driver. Syntax: sgfxi -N <one of the drivers from the list, like -N radeon>
   Supported Xorg drivers: apm ark ati chips cirrus cyrix fbdev glint i128 i740 intel i810 imstt mach64 mga neomagic nsc nv openchrome radeon radeonhd rendition s3 s3virge savage siliconmotion sis sisusb tdfx tga trident tseng vesa vga openchrome via voodoo vmware v4l
   Also configures xorg.conf as required. Full radeon xorg 3d configuration automatically.
-o Override default: install a specific driver, this is an absolute override - syntax:
   -o 177.68 (for nVidia) or: -o 8-6 (for fglrx)
-Q Skip start X Question, automatically start X post driver install.
-r Remove mode lines from xorg.conf
-t Enables dynamic twinview (nVidia only) - LEGACY, unused now. Default is on, enabled.
-R Skips self updating feature. No restart.
-s Installs Debian nVidia/fglrx drivers. ATI/nVidia cards only.
-S Skips automatic logout and X startup when script is run in standalone mode.
-U Forces sgfxi to update itself, must be root, but can be in x. Exits after.
-v Prints sgfxi current version information. Exits after.
-W Skip all wget downloads and connection tests. Only use this to reinstall a driver
   that has already been downloaded using sgfxi at least once previously.
-x Reverts to default libXvMC.so.1 for system instead of nVidia package (nVidia only)
-X Use to skip auto X start/stop. Do not use this unless you have a good reason to not
   want X start/stop tests to run. Gives start X option on completion if not in X.
-Z Skips connection test. Use this if sgfxi gives you connection failed error but
   you are sure your connection is fine.

This script is actively maintained, and usually includes support for the latest drivers when they come out, except sometimes for ATI, when their drivers totally break, which seems to be about as often as they work, sadly.

The free ATI radeon/radeonhd drivers are improving quickly, but the fglrx stuff is still a constant problem, they are having trouble keeping up with both xorg and kernel development release to release.

While the script is officially only supported for sidux, it should work fine with Debian sid/unstable and testing, and probably with Etch. Some support can be found on oftc.net irc, #smxi channel. Or just use these smxi forums to get the latest news and updates.
Display posts from previous:   

All times are GMT - 8 Hours