In advance sorry for the long post.
First off if you're new to Unix type systems in general avoid using vi (or vim, elvis, vile, etc), instead use pico or nano (they're very similar to edit from MS-DOS). Pico is installed with PINE the newsreader, nano is a separate package. Both can be gotten at freshmeat.net and/or sourceforge.net (or at least they used to be).
These are the steps to follow:
1. Install your drivers. This should go without a hitch.
2. Run this command at your prompt assuming you are a normal user:
% su -c "XFree86 -configure"
or as root
% XFree86 -configure
NOTE: We assume here that you have XFree86 in your PATH environment variable. If this is not the case (i.e. you get command not found stuff), try using the absolute path which is usually /usr/X11R6/bin/XFree86 like so:
% /usr/X11R6/bin/XFree86 -configure
That % is a shell prompt, if you use bash (standard on Linux) it'll be a # (and yes you need root access).
This makes a dummy XF86Config file in your /root directory.
3. Move your old XF86Config file to a backup spot. (if applicable)
% mv /etc/X11/XF86Config /etc/X11/XF86Config.bak
4. Move your generated one to /etc/X11
% mv /root/XF86Config.new /etc/X11/XF86Config
Check to make sure that that is the name of the file (XF86Config.new) in the root directory.
5. Edit the file if you need to. On most regular desktop systems you don't need to do anything, but keep reading anyways.
You can put your modes under the Screen section, it'll look like this:
DefaultDepth (some number)
# Note there are multiple sub-sections like the next one
Depth (some number)
Modes (Some modes)
(some number) should be replaced by a bit-depth for color settings. I recommend 16.
(Some modes) is a list of different resolution modes that should be quoted and separated by space. e.g. "1280x1024" "1024x768" "800x600"
In most cases you don't have to specify modes and in that case X will try all possible modes (highest first) and then pick one it feels good with. This might mean that without specifying a mode you will get by default 1600x1200 (or higher like 1920x1440) resolution.
Also you may want to add your monitor's frequencies so that it won't try a setting out of range. On most monitors nowadays this does not matter. On older monitors (i.e. anything older than about 12 years give or take) you should set this. In addition you can control what resolutions it will pool from if you change these. It should look like the following:
Where a and b are the lower and upper bounds for the Horizontal frequencies and c and d are the lower and upper bounds of the Vertical Refresh frequencies. Consult your manual for your monitor to get a list of these.
BTW: Your error of screens found, but none have a usable configuration means that your frequencies aren't high enough to display at the resolutions you have specified. Either lower your resolutions or up the frequencies.
It should be noted that setting frequencies higher than possible on some older monitors can cause them to do all kinds of weird things, not limited to damaging hardware and killing the screen.
In addition to all this information, if you can't access the X windowing system at all try changing the Section "Device" setting of Driver to "vesa". Sometimes the problems aren't related to the driver itself and are related to X configuration.
I'm assuming you're doing this on a desktop considering it complained about your CRT, however if you're using a laptop, you may need to set various different options.
In addition if you have a mouse wheel you'll need to set that up. Go to the section "InputDevice" where it has mouse definitions.
Before the EndSection put the following:
Option "ZAxisMapping" "x y"
x and y are the buttons mapped to your mouse wheel by the hardware. Usually these are buttons 4 and 5 (i.e. "4 5"), sometimes they're not. You may have to fiddle with this if you have a non-standard mouse or trackball.
2-day Newbie Help
Since you're new here's some quick tips to save you time if you're stuck in the shell.
A. Assuming that you have bash(the bourne again shell -- this is standard on Linux), pdksh (public domain korn shell), tcsh (the T shell), or zsh (the Z shell) running you can do TAB completions to complete your statements for you. (i.e. let's say you download the drivers, instead of typing out all that mess, you can simply type:
and it completes to
(./ will run the file assuming the shell understands how to run it)
If you need to find out what shell you're running just run the following:
% echo $SHELL
This prints out what it finds for the SHELL variable in your environment settings. This variable should be set after you login.
B. See if you have lynx or links installed. At the prompt type:
And see if it loads up. Lynx is a text based web browser. If you can't get into X and don't have a way to transfer files it can be very hard to get stuff off the web.
Lynx is pretty easy to use. Use the up and down arrow keys to jump around links. Press g and enter a URL to go to a website. Press d to download the contents of a link if it doesn't do an implicit download. You can move forward and back by pressing the left and right arrow keys as well. Links is similar to Lynx yet it is slower, but it does feature the ability to display images and forms correctly (well sometimes).
C. You can switch virtual consoles. When you first boot up the system it usually starts at VT1 which is Virtual Terminal 1. At anytime you can press (alt-F#) and switch to that terminal, where F# represents one of the function keys.
Let's say you're logged onto VT1 and you press (alt-F2). This will send you to VT2 with another login screen. Now you can login again and do other stuff.
F7 is reserved for X. On up from there it can be more X reservations or system information (depends on the system). Therefore from the get go you only really have six virtual terminals (VT1 - VT6). NOTE: The previous is only applicable to most distributions of Linux, other Unix systems have different settings.
You may be asking why you'd do this. The simple answer is it's a convenient way to multi-task in the console. You can look at some file on one VT and then edit a file in another VT, while having another VT running something (e.g. top).
D. Sometimes information scrolls too fast. What are you to do?
There's three methods to deal with this.
Press (shift+PGUP or shift+PGDN). This will allow you to scroll up and down the console. On some systems if you have the scroll lock key on it does the same thing but you can simply use the arrow keys (this was the scroll lock's original function). It should be noteworthy that FreeBSD by default doesn't seem to enable shift scrollings, you'll have to use scroll lock. Changing the terminal type I think alleviates this problem.
2. I/O Redirection using a pager
Pipe the output with a pager. Let's say you want to read the README to something. Do the following:
% less README
less is a paging program that lets you view content one page at a time. You may have access to other pagers. The default pager is usually more. The differences between more and less are major. More lets you go only one way (i.e. Once you pass a page you have to go quit the pager and start it up again), less lets you go either way backwards or forwards. In addition other pagers exist like most. Some pagers allow you to bookmark things and search for stuff, other's don't. Generally less is all you need.
In addition you can pipe output with a pager. Here's an example:
% cat README | less
Normally you'd just use less by itself. However some times you need to view data from something that's not a simple file. See the next tip.
3. I/O Redirection using files
You can also redirect output. Let's say you ran something and it messed up, but you don't know why. You can redirect the output this way:
% someprog > mylogfile
This will run the program someprog and then send the output from STDOUT (the standard out -- that's your monitor usually) to the file mylogfile. It should be noted that this doesn't catch errors from STDERR (the standard error -- that too is usually your monitor). If you want to capture both you have to redirect the redirect from both pipes. After this redirection use your favorite pager to look at the mylogfile file.
To get STDOUT and STDERR do the following:
% someprog > mylogfile 2>&1
This sends STDERR (that's the 2) to be in with the same place the STDOUT is going (that's the 1).
Like I said before you can pipe data to a pager. Let's look at this practical example:
% dmesg | less
This will output the contents of dmesg (this logs the output at startup from the kernel) and lets you view it.
If you need some additional help consult the information at The Linux Documentation Project
Alternatively you can buy some books on getting started. I highly recommend Unix Power Tools by O'Reilly (I must admit this is not a very beginner friendly book, however after you get used to the system this book will be a good reference). This book isn't cheap, I recommend you buy it somewhere like Amazon
If you need any more help post a reply.