increasing the friggin' refresh rate!


Forum: X and Fluxbox
Topic: increasing the friggin' refresh rate!
started by: cognitive tweak

Posted by cognitive tweak on Dec. 21 2005,05:45
the 60Hz increase question..
being a noob i have lots a questions. being a good noob, i first search the forum for answers. being a smart noob, i study all searched results to see if it answers my question. being a no-lucky noob i conclude that the question has yet to be answered (properly). being a no-quiter noob, i will try asking the question in such manner that i should get a direct and conclusive answer.

first i would like i illustate how hard life is for a noob, scanning through a forum only to find the question 1) unanswered 2) vague answered 3) contradictivly answered. the follow quote contains the most important and relevent quotes on the subjest posted by various users on the forum:
Quote

CTRL ALT BKSPACE
that will kill the xserver
at the console prompt
sudo xsetup.sh
change the settings as you want
startx
that will restart the xserver with the new settings.
good luck

pdfdocs section of the downloads/current folder of the DSL site for howto's on how to create an extension and how to use mymydsl.

nstead, use the mkmydsl script to build a custom livecd that contains the base DSL along with XF86 or any other additional extensions.

Search the forum with the keyword, mkmydsl

I installed, XFree86.dsl, &, xf86config.dsl, followed the instructions, < http://distro.ibiblio.org/pub....sl.info > , and voila. I vaguely remember that you may or may not have to change the name of the xf86config file generated, from, xf86conf, to xf86config-4. Note: before I installed, xf86config.dsl, I successfully used a 'generic' xf86config-4 file, that came with XFree86.dsl.

You should be able to change the refresh rate with the '-screen' parameter in .xserverrc:
-screen widthxheight[xdepth[xfreq]][@rotation]
use a  screen  of  the  specified  width,  height,
screen  depth, frequency, and rotation (0, 90, 180
and 270 are legal values).
for example:
exec /usr/bin/X11/Xvesa -screen 1024x768x32x75
should give a refresh rate of 75hz

Try using the xf86config.dsl tool in the testing area
to create one for your individual setup,  then copy the
/etc/X11/XF86Config-4 file and the /home/dsl/.xserverrc file
into your own custom-built extension to use at boottime.

location of ".xserverrc"
Open emelfm
Press the "H" button at the top of the window pane (to allow the viewing of Hidden files.  All files that start with a "." are hidden)

Don't bother hacking up the existing xfree86.dsl extension package.
Instead, create a small new custom package zzz_myxfree86.dsl
and put your two files inside.
Because the "z" extensions get loaded after the "x" extensions, your custom files will be loaded last.
Go to /home/dsl
and it should be there.

It's not difficult (there is also a readme file in the repository).
If I remember it correctly, you will only have to mount the .dsl and copy, edit and rename the XF86Config-4 included in the Xfree86.ds

The command "ls -l .xserverrc" should produce a line that starts like this:
-rwxrwxr-x   1   dsl    staff
If it does not contain at least the first x, it is not executable.
Use the command "chmod  +x  .xserverrc" to fix it.

- Not with the base iso.  The xserver in DSL is very cut down, and will only run 60Hz.  To get better frequencies you need to install the xfree86 dsl extension and set it up for your machine.

The problem is that the VESA 2.0 specification (as close to a "universal" video driver support) does not allow for anything other than a 60Hz refresh rate. So in order to have support for 75Hz, you need an individual video card driver for each kind of video card like the XFree86 system. Eventually, the VESA folks came out with a VESA 3.0 specification that included the ability to set refresh rates but this standard never caught on with the hardware manufacturers.

1. install XFree86 (via myDSL browser)
2. copy one of default config files to /etc/X11/XF86Config-4
3. modify the file (i have deleted resolutions which i will never use, and changed max. refresh rate to 75
4. shutdown X
5. startx
oh, and there was one other file...  /home/dls/.xserverrc
mine looks like this: exec /usr/X11R6/bin/XFree86 -nolisten tcp

I believe you can use the xfree86.dsl from the mydsl browser under 'System'.

Make it easy on yourself
Double click the MyDSL icon on the desktop and navigate to:
System-->XFree86.dsl.info
Download and it automatically installs.

There are several premade config files in /home/dsl/XFree86_Config_files

1)  Get XFree86.dsl
2)  Read all instructions and info thoroughly and install.
3)  Set resolution in XF86Config-4 file to 800x600 @ 85hz

The built-in XVesa server will only run at Vesa 2.0 refresh rates (60Hz).  If you have a video card with a DOS based adjustment utility or a VBE 3.0 compiant card and use a DOS program like VBEHZ you can adjust the default refresh rate to 85HZ and then boot DSL using loadlin.exe  But this is not an automatic solution, either.

try typing "XF86cfg" which is a graphical config tool.

While the XF86Config is text based (and is not very user friendly because it does not save the XF86Config-4 automatically) the XF86cfg works fine for that machine and enables me to set the main values for the graphics card, the screen , the keyboard and the mouse.


There was a post that described how you could use third party DOS tools like VBEHZ or ATI / NVIDIA specific tools to set your VESA refresh rate to something besides 60HZ.
The general idea is:
1) Boot into MSDOS/Win9x True DOS prompt/FreeDOS
2) Use the appropriate Video card DOS utility program
3) Use "loadlin" program to boot into DSL using a VESA framebuffer mode.
4) Choose "xfbdev" server for your xsetup.

I was able to add it to a liveCD.  What I did was:
create a source directory
cp -Rp /KNOPPIX source
chroot  source/KNOPPIX
mount -t proc /proc proc
dpkg-restore
<edit /etc/apt/sources.list to unstable>
apt-get update
apt-get install x-windows-system
umount proc
<CTRL-D>
Then make you liveCD remaster in the normal way.  That method never worked for me before, but it seems to work now.

I tried the XF86_SVGA X-server binary from the latest Knoppix and it works great on my Thinkpad 560z, no need to hack Gtk config or change fonts in emelfm as I suggested in the XBF/XFCom thread - it just works.
1) You need to install...
/usr/bin/X11/XF86_SVGA
/etc/X11/XF86Config
remember to...
sudo chown root XF86_SVGA
sudo chgrp root XF86_SVGA
sudo chmod +s XF86_SVGA
Im still using the XF86Config.neomagic I got with the XBF tar file. XBF/XFcom expected the XF86Config file in /etc but XF86_SVGA expects it in /etc/X11
2) Edit your ~/.xserverrc
comment out everything thats there and add...
exec /usr/bin/X11/XF86_SVGA -bpp 16 -nolisten tcp &> /dev/null
3) Edit your ~/.xinitrc
add the following before starting fluxbox or your window manager... (you dont have to do this if your DEL & BackSpace keys work properly without it)
xmodmap -e "keycode 22 = BackSpace"
xmodmap -e "keycode 107 = Delete"
4) restart your X-server (startx)
And your read to go! :-)

There are two solutions though:
1. If you are running from a HD, install the full Xfree86 X-server.
2. If you can find a ms-dos utility to set resolutions and refresh rates; boot into dos, use this utility and finally boot into DSL with loadlin.

If you have a HD install you have two options:
1. Download, install and configure a full X server (Xfree86, Xorg, ..).
2. First boot into dos, set refresh rates with the dos tools for the graphics card, then use loadlin to boot linux. I have tried this with Tseng ET4000 and S3 Trio64 cards and it works. The problem will be to find the correct dos tools (for newer cards this probably doesn't exist).

There is a Vesa Bios Extension 3.0 that allows the user to specify different refresh rates for newer video cards  (generally 1998 or newer) but the Xvesa server does not support them. Your only options are to:
(1) Get the source code to the Xvesa server and rewrite the program yourself.
(2) Use  an MSDOS VBE setting program to set the default Vesa refresh rate to higher than 60Hz and then boot DSL using a utilitiy like linld.  Then choose the framebuffer server (non-accelerated and sluggish compared to Xvesa).

There is no way to change the vesafb video mode and/or timings after
booting linux.  If you are not happy with the 60 Hz refresh rate, you
have these options:
* configure and load the DOS-Tools for your the graphics board (if
 available) and boot linux with loadlin.
* use a native driver (matroxfb/atyfb) instead if vesafb.  If none
 is available, write a new one!
* VBE 3.0 might work too.  I have neither a gfx board with VBE 3.0
 support nor the specs, so I have not checked this yet.

Unfortunately, the xvesa server does not currently support the VBE 3.0 refresh setting commands.
So the only way to get a refresh rate higher than 60Hz is:
(1) Install the full-blown XFree86 windows server instead of the xvesa KDrive server.
(2) If you are a programmer, hack up the xvesa source code and create a version of the program that works with VBE 3.0 refresh rate commands.
(3) Use the frame buffer server (xfbdev) for XWindows, but you need to somehow start up a frame buffer than is running at a higher refresh rate on bootup so that xfbdev will also run at the higher rate.

I got a similar problem (well we all do i suppose) with refresh rate, impossible to set it, i think it is set by the hardware. You may have to try another distrib then ... not flonnix since it uses the same x server, like a lot of small distrib because it is lightweight.

----------
Making A Custom MyDSL cdrom
< http://www.damnsmalllinux.org/talk/node/113 >

MyDSL: Installing Extensions
Use the MyDSL gui.
Just click on the MyDSL icon on the desktop and it will fire right up.
Select the app you want and click the "Get it!" button beside it.
The app will automatically download and install itself!

MyDSL: Loading Extensions at Boot
For the CD version, put your MyDSL Extensions in the root:
mydslwhere2.jpg

-------------

various links.
< http://www.damnsmalllinux.org/talk/node/113 >
< http://distro.ibiblio.org/pub....sl.info >
< http://distro.ibiblio.org/pub....m >
< http://distro.ibiblio.org/pub....pdfdocs >
< http://www.xfree86.org/current/Xkdrive.1.html >
< http://www.xfree86.org/current/Xvesa.1.html >

it seems this is a hot topic! and ofcourse! 60Hz is torture!! so.. ones and for all.. let's sum this topic up and make it conclusive.

QUESTION 1:
For a HD-install, how to change the refresh rate? can this be done by downloading and installing XFree86? if so, how? what are the steps? i mean, is it a normal install, meaning, once you installed XFree86, it will be installed permanently, like a program you install in windows? if yes, do you need to configure something after installing XFree86 to get the desired refresh rate? if so, how? what are the EXACT steps for doing so?

QUESTION 2:
For a BootCD, how to change the refresh rate? is this even possible? some posts suggested it is not. if it is possible, can it be done without downloading anything eg. XFree86? if so, how? what are the steps? if you do need to download XFree86, can this be done from a bootcd without any linux partitions on the HD? if so, how? where to save it to? it can be done using mydsl clicking mydsl on the desktop, am i correct? is the download and intall straight forward? is there anything we noobs need to know? ones downloaded, how do i get it to auto start each time the cd is booted? can this be done? how? using mydsl? by saving settings? burning it on the same CD the DSL boot is on? making my own mkmydsl iso? how? please, i need exact steps, not vague guide lines.  

why am i stessing?
this is a very, very major drawback to DSL. 60Hz will scare people away. not giving a detailed guide with spefic steps on how to solve this problem, will make people never to come back. if linux is some secret l33t thing then i get why little help is available. if linux is a revolution agains M$ win$ then lots of help in the form of documentation and tutorials is needed.

Quote
If you are a programmer, hack up the xvesa source code and create a version of the program that works with VBE 3.0 refresh rate commands.
if a noob asking the question to whom this response was giving has such programming skills, would he really be asking the question in the first place? lol. and if this is possible, why dont YOU guys, the DSL programmers do it? :D well anyways, my point is this: i understand that is must be hard to have noobs asking the same questions over and over again. most of these question Have already been answered before yes. but sometimes this is not the case. giving a noob vague answeres & links, requireing him to solve it himself, using his own brain to combine infos, hoping he will learn something is what usually happens in linux help forums. but this i not the way to go.

i can't find ONE document titled: "how to increase your refresh rate". why not make one, with very clear steps, including everything from downloading xfree to using mysdl to save the setting for every boot. or using mkmydsl to make a new iso bootcd. for HD-install, BOOTCD, and USB-BOOT. can someone be kind enough to write up a tutorial for this? this will make not only OUR lifes easier, but also YOURS. i hope this post will round up this BIG & important question and that it can be used for futher reference when a "to-lazy-to-search-the-forum" noob comes asking the same question again. thank you, take care and peace - Cognitive Tweak.

Posted by Ronilution on Jan. 05 2006,23:17
since no one answered the question on how to increase the refresh rate, i take it it is not possible..

..how can a simple program like anaconda which is used to boot install redhat detect my proper monitor and video card and give the proper refresh rate and an operating system can't?

too bad. damn, damn small linux. too lazy to program a proper refresh rate? then screw it..

Posted by mikshaw on Jan. 06 2006,02:13
It's due to limitations of the X server, not due to laziness.  The X server in a default DSL is super tiny compared to xfree86 or xorg, and so it does what is necessary to display graphics. If you want to increase the refresh rate you will need to install a fatter x server.

It's funny that 60hz has worked fine for years, and very few people complain about it.  Personally i see it as the same as the 60fps argument in 3D gaming...a handful of people are outraged if they can't get 100 or more.  In that situation, you change your hardware.  In this situation, you change your software.  In any case, I'm sorry if you feel 60hz is torture...i have the opinion that getting splinters driven under you fingernails is torture, but to each his own.  If 60hz was so terrible, i'm sure that more than the occasional (one or two per year) user would bring it up.

DSL is TINY.  It's a speck compared to Redhat or whatever other distro gives you a nice pretty desktop and every feature you could possibly imagine.  Of course it is going to have limitations out of the box.  The thing is, you can change it...you can make it what you want with a little work and a little research.  

The conflicting responses are due to the fact that everyone on these forums is learning....none of us knows everything DSL can and cannot do.  There are applications in DSL that are stripped down themselves....perhaps the Xvesa server on another distro can change the refresh rate, but DSL's can't. I know i made one of the quoted comments...my post was based on man pages for the xserver in DSL, but i was unaware that DSL used a different, or perhaps stripped, version.  We live and learn.

Use DSL if you like it, make suggestions if you have any, ask questions if you have trouble.  However, when you come here bitching about not having something that another distro has, and saying it's torture or "a very major drawback" or whatever, and particularly if you fling insults, you can expect to be ignored.

Posted by _pathos on Jan. 06 2006,04:25
Umm Xvesa does have an option for frequency

refer to Xvesa --help
you just need to edit the line in ~/.xserverrc so that -screen WIDTHxHEIGHTxBPP is -screen WIDTHxHEIGHTxBPPxFREQ

Then just restart Fluxbox. I think. I can't test it or I'll blow up my laptop if it works.

I understand your fustration, I had it for several months. There is a lot of useless crap posted and such a small thing like this is unlikely to have a howto as it takes 2 seconds to find if you know where.

good luck learning linux. :)

Posted by cbagger01 on Jan. 06 2006,05:09
The entier DSL operating system is probably about the same size as the RedHat install utilities + XFree86 or XOrg.

The "S" in DSL stands for SMALL.  Not "So SIMPLE that a 3 year old can do it!"

If you want a simple answer:

Can a newbie who cannot do anything beyond robotically following some instructions step-by-step get a stock DSL system to run XWindows at something other than 60HZ?

NO!

If this is the answer that you were waiting for, then you got it so I hope you enjoy that self-satisfied feeling as you move on to a different operating system.  CYA!


Now for the rest of us, the answer is clear:

The best way to get higher refresh rates in DSL is to install the XFree86.dsl extension and muddle through the configuration process until the configuration for your specific video card and monitor is complete.

For the more adventurous, you can try some alternative approaches:

If your video card has a special MSDOS configuration program that can change VESA refresh rates inside the card's BIOS, you can create an MSDOS boot disk to run this program and bump your refresh rate up and then start DSL via the loadlin MSDOS-to-Linux bootloader and the appropriate framebuffer code.  Then choose the xfbdev server.

If your video card supports the VESA 3.0 BIOS EXTENSIONS, you can get a special MSDOS configuration program like VBEHZ that can change VESA refresh rates, you can create an MSDOS boot disk to run this program and bump your refresh rate up and then start DSL via the loadlin MSDOS-to-Linux bootloader and the appropriate framebuffer code.  Then choose the xfbdev server.

If your video card has a special non-VESA linux framebuffer driver, you can boot up with this framebuffer and specify a higher refresh rate and then use xfbdev server, IF YOUR DRIVER SUPPORTS A LINEAR FRAMEBUFFER AND IS COMPATIBLE WITH THE XFBDEV SERVER.

There may be other ways to do it but they are presently unknown here at the forums.

HINT:  If you don't understand anything in the second part of this post and are just looking for someone to spell it out for you or write some magical configuration program to do the work, GIVE UP NOW.  I sincerely doubt that anything is going to change because the status quo has not changed since day 1 with this project, now in it's third year.

Posted by cbagger01 on Jan. 06 2006,05:12
Quote (_pathos @ Jan. 05 2006,23:25)
Umm Xvesa does have an option for frequency

refer to Xvesa --help
you just need to edit the line in ~/.xserverrc so that -screen WIDTHxHEIGHTxBPP is -screen WIDTHxHEIGHTxBPPxFREQ

Then just restart Fluxbox. I think. I can't test it or I'll blow up my laptop if it works.

I understand your fustration, I had it for several months. There is a lot of useless crap posted and such a small thing like this is unlikely to have a howto as it takes 2 seconds to find if you know where.

good luck learning linux. :)

Actually, WIDTH X HEIGHT X BPP X FREQ

does NOT work with the TinyX XVESA freedesktop.org server used in DSL.

The --help LIES in this case.

It is true of non-XVesa/Xfbdev servers like XNvidia or Xmach64, but is not true for these servers.

Posted by cbagger01 on Jan. 06 2006,05:31
Quote (mikshaw @ Jan. 05 2006,21:13)
It's funny that 60hz has worked fine for years, and very few people complain about it.

Obviously, these people never did computing on either a 12" monochrome CRT terminal or better yet a 32x20 character image displayed on channel 4 of a black and white Zenith vacuum tube TV set that took longer to warm up than most modern bigscreen projection TVs.  Or better yet, try using one of those Amiga interlaced graphics modes.  If the 30Hz flicker didn't kill you, the whining sound from the monitor would drive you insane.

Of course, the latest rage nowadays is flatscreen LCD monitors, which renders the whole "60Hz" complaint irrelevent.

So maybe I jumped a little bit off topic... Sue me

Posted by AwPhuch on Jan. 06 2006,17:57
Heh...cbagger01 is slowly loosing his patience!

on standard CRT monitors 60Hz is freeking killer..but the stock xserver has 60Hz compiled into it...you cant change

Brian
AwPhuch

Posted by cbagger01 on Jan. 07 2006,04:58
I think that the big point that continues to be missed is this one:

The VESA 2.0 graphics BIOS specification DOES NOT INCLUDE A STANDARD METHOD TO ADJUST OR EVEN SET A REFRESH RATE.

So it is not a case of lazy coders or missing code not compiled into an xserver.  You can't change the refresh rate using Vesa 2.0 commands, in the same way that you can't watch a TV show in color if you only own a black-and-white TV set.

Maybe this is a better analogy:

Someone buys a Ford Taurus with an automatic transmission and complains:

Where is the CLUTCH pedal?

You lazy bastards did not include a clutch pedal in your car!

My friend with a Porsche 959Turbo 6-speed tranny has a clutch! Your Taurus does not! What gives?


Now picture me being the guy who has to explain to this genius that a normal AUTOMATIC TRANSMISSION DOES NOT COME WITH A G** D**N CLUTCH ALREADY!


(But if you want to rip your Taurus apart and retrofit a Tiptronic transmission into it, yes in theory you could have an automatic transmission with a clutch if you have the skills to modify the engine, transmission and car frame and driveshaft yourself)

Phew.  I give up.

Posted by bigscreenguy on Jan. 07 2006,23:09
Well, if refresh rate can't be changed, is it possible to get other resolutions than what xsetup.sh gives as choices, say 1920x1200, for example?

Another thing to maybe "fix" is that  clicking XVesa in the DSLpanel within X
gives less possible choices (max 1280x1024) than running XVesa from xsetup.sh  (max 1400xSomething).  That don't make sense.

I feel the wrath of cbagger coming... well bring it on, what are you waiting for dude?  :)

Regardless DSL is way cool and you won't scare me away...

Posted by RoGuE_StreaK on Jan. 07 2006,23:51
Once you've booted into DSL, you could maybe try editing .xserverrc (in home/dsl), changing the res, exiting X (Alt-Ctrl-Backspace), then restarting X by typing startx
Don't know about that particular resolution, but you can always try.  Unless it blows up your monitor...

But as stated, if you want to increase the refresh rate, have a look at the xfree86 package.

Posted by Grim on Jan. 09 2006,06:32
Quote (cbagger01 @ Jan. 05 2006,22:09)
The entier DSL operating system is probably about the same size as the RedHat install utilities + XFree86 or XOrg.

The "S" in DSL stands for SMALL.  Not "So SIMPLE that a 3 year old can do it!"

If you want a simple answer:

Can a newbie who cannot do anything beyond robotically following some instructions step-by-step get a stock DSL system to run XWindows at something other than 60HZ?

NO!

If this is the answer that you were waiting for, then you got it so I hope you enjoy that self-satisfied feeling as you move on to a different operating system.  CYA!


Now for the rest of us, the answer is clear:

The best way to get higher refresh rates in DSL is to install the XFree86.dsl extension and muddle through the configuration process until the configuration for your specific video card and monitor is complete.

For the more adventurous, you can try some alternative approaches:

If your video card has a special MSDOS configuration program that can change VESA refresh rates inside the card's BIOS, you can create an MSDOS boot disk to run this program and bump your refresh rate up and then start DSL via the loadlin MSDOS-to-Linux bootloader and the appropriate framebuffer code.  Then choose the xfbdev server.

If your video card supports the VESA 3.0 BIOS EXTENSIONS, you can get a special MSDOS configuration program like VBEHZ that can change VESA refresh rates, you can create an MSDOS boot disk to run this program and bump your refresh rate up and then start DSL via the loadlin MSDOS-to-Linux bootloader and the appropriate framebuffer code.  Then choose the xfbdev server.

If your video card has a special non-VESA linux framebuffer driver, you can boot up with this framebuffer and specify a higher refresh rate and then use xfbdev server, IF YOUR DRIVER SUPPORTS A LINEAR FRAMEBUFFER AND IS COMPATIBLE WITH THE XFBDEV SERVER.

There may be other ways to do it but they are presently unknown here at the forums.

HINT:  If you don't understand anything in the second part of this post and are just looking for someone to spell it out for you or write some magical configuration program to do the work, GIVE UP NOW.  I sincerely doubt that anything is going to change because the status quo has not changed since day 1 with this project, now in it's third year.

cbagger, that was awesome!

I think I just came in my pants...

Posted by Man on Jan. 21 2006,07:39
I would simply like to point out that DSL is very slowly pushing me toward an epileptic siezure as I type, not a complaint, merely an observation.

Is it at all possible to hack a tiny modification to force a call to Vesa 3.0 for a refresh rate?

Posted by cbagger01 on Jan. 22 2006,16:20
I once tried to hack XVesa to call for a Vesa 3.0 refresh rate but I could not get it to work.

Probably because I am not a programmer and I know very little about video hardware interfaces.

In theory, it is possible.  But the job is to be reserved for someone who knows what they are doing.

FYI, VESA 3.0 was not universally accepted like the old VESA 2.0 standard.

I think nvidia added vesa 3.0 support, but ATI did not.  I could be wrong, though.

Posted by cognitive tweak on July 14 2006,01:12
Reading through the replies was hilarious!! "adding a clutch to an automatic car" ROLF!!! touche, that totally answered my question.

I didn't mean to offend anyone by writing my post in the manner that i did. I respect the project DSL. I was only hoping my post would be persuasive enough to trigger someone to go out there and find a way to solve the problem (since i'm not skilled enough to do so myself) and to tell the forum how to.

Posted by brycen on Mar. 28 2007,18:50
If it's not possible to change the refresh rate, then SAYING SO, right in the relevant DSL menu would save a lot of forum time.  Us n00bs expect to find a simple way to set the refresh, so we beat our brains out looking for the simple menu  option.

Put the disclaimer where it's needed -- in the menu where -- in  a perfect world -- the setting would be.

Posted by brycen on Mar. 28 2007,19:30
Wikipedia has a nice rundown of the VESA versions over at < http://en.wikipedia.org/wiki/VESA_BIOS_Extensions > .  Refresh rate was added as of VBE 3.0, released September 1998.

A next generation vesafb-tng driver, with refresh rate control, was done for Ubunto and Gentoo, and is available over at < http://dev.gentoo.org/~spock/projects/vesafb-tng/ > .

-Bryce ( < http://www.obviously.com/ > )

Powered by Ikonboard 3.1.2a
Ikonboard © 2001 Jarvis Entertainment Group, Inc.