From owner-freebsd-hackers Sat Sep 25 9: 9: 7 1999 Delivered-To: freebsd-hackers@freebsd.org Received: from picnic.mat.net (picnic.mat.net [206.246.122.133]) by hub.freebsd.org (Postfix) with ESMTP id 1A6D614FA0 for ; Sat, 25 Sep 1999 09:08:52 -0700 (PDT) (envelope-from chuckr@mat.net) Received: from localhost (localhost [127.0.0.1]) by picnic.mat.net (8.9.3/8.9.3) with ESMTP id MAA97725; Sat, 25 Sep 1999 12:08:55 -0400 (EDT) (envelope-from chuckr@mat.net) Date: Sat, 25 Sep 1999 12:08:54 -0400 (EDT) From: Chuck Robey To: FreeBSD Hackers List Cc: article@daemonnews.org Subject: running single freq monitors (fwd) Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-freebsd-hackers@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG I recently had a really good experience getting a single frequency monitor working, so I thought I'd write up my experiences, and perhaps help others. I guess you could consider this a usage report on the Silicon Integrators Saturn GL video card, and the monitor of the week. You know what I mean, they show up on sale all over, for very little money, the single frequency 19" or 21" monitors from DEC, Sun, HP, and other workstation manufacturers. These guys are not multisync monitors, so you can't just connect them to your PC and run, even if you went and bought a matching connector. The experience of trying to run a 640X400 PC start up screen would fry any of these monitors, and your investment is gone. Their big transformers are optimized to run at one frequency, and they're kinda stubborn about it. I tried to get a monitor like that running for myself about 3 years ago. In the end it turned out that the monitor was fried, but I found out after paying out $375 for a video card that was totally useless if it couldn't be used to run that monitor. The various vendors of video cards would sell you (a very expensive) video card, but it had to be set up by the video card vendor for ONE monitor scan rate, and if the monitor was no good, gee, that's too bad (bye bye $375). Very recently, I had another chance to get my hands on a single-frequency monitor, and I nearly passed it up before doing another check on the vendors of video cards serving the single frequency monitor market, when I found out about Silicon Integrator's Saturn GL. It comes in 4M and 8M versions, but that wasn't the reason that I decided to give these guys a try. The reason was the card installation method. Although the price, at $159 for the 8M version, was really good, that wasn't the reason I decided to give it a chance, it was the fact that the card is user-configurable that made me go for it. The card comes with software; a CDROM for the Windows users, and a floppy for us Unix-ers. Listen closely about that very interesting floppy. First, the floppy is bootable, it's been made using FreeDOS, so if you're like me, and all your old dos-bootable floppies have crumbled into dust, here's a good recharge. Second, the floppy, when booted, starts up a Silicon Integrators job that cycles through 30 different sync setups, waiting for you to hit the space bar when you see one that you like. Write down the number that shows up on the screen (to ID the mode), then hit any key *except* the space bar, and it continues to cycle through the possibilities. Hit the space bar instead twice in a row (one time more after stopping the display), and that sync setup is stored in on-card non-volatile memory, so that the card now boots every time in a mode that your monitor, no matter what kind you bought, likes. First time I tried this, I had 3 of the single frequency monitors on hand, because I was testing for friends also. It worked just fine for the HP A1097C (mine) and the two Sun GDM1955's, which have a different scan rate than my HP. This method is just foolproof, and until you try running X, FreeBSD likes this mighty fine. Oh, I forgot to mention connectors. I had a connector from the last time I'd messed about with single-freuqncy monitors, but since SI sells those cables (two kinds) cheaply, you can buy one from them also. GETTING XFree86 Running ======================= OK, getting X set up scares you? I'm no genius on this, but I followed some reasonable rules, and got it working pretty easily, so I will continue this tirade through that part of the job also. First, go look on Silicon Integrators website, http://www.si87.com/, for a utility called satlinux.exe. It'll be part of the zip package, saturnml.zip. I can mail it to you, but please try to pick it up from their site, ok? This neat utility, after you've used the boot disk, reads the setup on the card, and produces a series of modelines like you'll see in /etc/XF86Config files, for setting up XFree86 to work with your card. First time I tried this, I was worried, because I didn't have a dos-bootable disk to stick it onto, and it runs under dos. Turned out to be really easy. Just use dd to read in the floppy you got with the card, like this: dd if=/dev/fd0 out=si87.flp This makes an image, a bootable image, of the floppy in file si87.flp. Go get yourself a spare 3 1/2" floppy, and read this file back onto it (this is the Unix way to do the dos "diskcopy") dd if=si87.flp of=/dev/fd0 This makes you a copy of the install floppy, so you can screw around with it. Then, you'll need the mtools tools from /usr/ports/emulators, so that you can write the satlinux.exe file onto the floppy you've just created. Don't worry, the floppy is just over half full, and there's way more than enough room here. You probably want to change the file (on the floppy disk) autoexec.bat, so that it doesn't start up the Silicon Integrator's sync discovery routine, that'll make your monitor unreadable again. Just use mtools to delete autoexec.bat, if you don't have any other plans. Reboot from FreeBSD into your floppy, and start up satlinux.exe. You have to give it a file name as a parameter; it doesn't write it's output to stdout, it goes to the file you give it, and complains if you don't give it a filename. Reboot back into FreeBSD, and then use the mtools stuff to get a copy of the modelines file into your system. On Silicon Integrator's site is a huge monitor database, it'll give you the intended mode for your monitor (my HP A1097C was intended to run 1280X1024). It'll also give you the vertical and horizontal sync frequencies for your monitor. find the modeline entry from the file you made, the one that uses the mode you wanted. Here's the file that it made for me: Modeline "640x480" 67 640 672 776 864 480 502 505 1073 Modeline "800x600" 135 800 1104 1296 1720 600 802 805 1062 Modeline "1024x768" 135 1024 1200 1392 1720 768 894 897 1082 Modeline "1152x864" 135 1152 1280 1424 1728 864 952 955 1083 Modeline "1280x1024" 135 1280 1344 1536 1728 1024 1027 1030 1076 Modeline "1600x1200" 126 1600 1664 1856 2104 1200 1201 1207 1261 LOW RESOLUTIONS -- OPTIONAL USE! Modeline "720x480" 74 720 736 840 888 480 490 492 523 Modeline "320x240" 74 320 336 432 792 240 250 252 1547 Modeline "512x384" 74 512 536 688 1272 384 402 404 1467 Like I said, my monitor uses 1280X1024, so I cut the single line out that uses that rate. Now, use your favorite editor to edit your XF86Config file, the section that looks like: Section "Monitor" Identifier "HP A1097C" VendorName "HP" ModelName "A1097C" HorizSync 76-82 VertRefresh 70-75 #1280x1024 Modeline "1280x1024" 135.00 1280 1304 1496 1700 1024 1027 1030 1092 -hsync -vsync EndSection Take the HorizSync and VertRefresh lines, edit them so that they match the data that you got from your monitor's entry in the database on SI's website. Where I show ranges, you'll stick a single number in. Also, stick in the modeline you identified from satlinux.exe. Save the file. You want to start up XFree86 now, but you expect it to fail (it will). What you want is the failure message, so start it like "startx >& xerrs", so that file xerrs will tell you info about what went wrong. It's going to show you that either your horizontal number or vertical number is off by some small amount. If it's one or two numbers, then edit the single number you stuck in so that it's a smallish range that contains the value that XFre886 complained about not having. Here's the line that I found in my own error output: (--) GLINT: Mode "1280x1024" needs hsync freq of 72.50 kHz. Deleted. My sync was 72, so I gave it a slightly larger range, so that the mode would be selected. As long as it's reasonably close, you don't have to worry. Make sure that your screen section only has the one mode, so that some other, wildly different (and wrong) mode doesn't get selected. Again, Here's mine: Section "Screen" Driver "Accel" Device "Saturn ML" Monitor "HP A1097C" DefaultColorDepth 16 Subsection "Display" Depth 8 Modes "1280x1024" ViewPort 0 0 EndSubsection Subsection "Display" Depth 16 Modes "1280x1024" ViewPort 0 0 EndSubsection Subsection "Display" Depth 24 Modes "1280x1024" ViewPort 0 0 EndSubsection EndSection This time when you boot XFree86, it should not give you an error, and you will get a screen. It won't be optimum, probably, so here's where the fine-tuning comes in. You want to use a utility called xvidtune. This is a GUI'd way to flip about the numbers in your modeline, and see if you can get the screen wider, flatter, whatever. This thing is safe to start up, so go start it *right now* so that you can see the buttons you have, and be able to feel safe about playing with it. It's safe to start up now, as long as you don't hit the buttons, so feel free to go take a look. The key button is labeled "show". After you've tweaked the other values, when you hit "show" it prints a perfect, customized modeline out for you, so that you can doctor your XF86Config file with it. Listen to your monitor, because when you get to the end of the range that your monitor can safely take, it'll start to softly hum (whistle, really) at you, as the power supply begins to be overstressed. You want to back off now, until you can't hear that any more. That's it, go install your new modeline, and you've got X running happily. That's all I had to do. Silicon Integrators didn't even know about this, much less influence me directly, and I don't get any money for it. If you get your single frequency monitor running using this, you might drop me a line and tell me your experiences, I'd feel good if I knew I had helped someone. Summing up, the card runs $159 (it cost me $10 for Fedex 2 day shipping, so really $169), and that was all the worry involved, I'm perfectly happy with my oversized display now. When I get another monitor, I'll be able to reconfigure the card without calling Silicon Integrators and handing over more cash, which is just fine with me! ---------------------------------------------------------------------------- Chuck Robey | Interests include C programming, Electronics, 213 Lakeside Dr. Apt. T-1 | communications, and signal processing. Greenbelt, MD 20770 | I run picnic.mat.net: FreeBSD-current(i386) and (301) 220-2114 | jaunt.mat.net : FreeBSD-current(Alpha) ---------------------------------------------------------------------------- To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message