(?) Video Question

From Steve Burrow

Answered By Sayamindu Dasgupta, Mike Orr, Faber Fedor, Ben Okopnik, Daniel Washko

I think I have a relatively easy or basic question:

I installed RedHat 6.0 on a small machine (PIII/500/64RAM) designed specifically to be a web server. I replaced the small 10 gig hard drive with a blank 30 gig, created 6 partitions, and completed the install.

(!) [Sayamindu] Why did u install RH 6.0??
It's way too old and outdated And for a web server, why do you need X ??

(?) Well, I guess it came down to convenience. I have a disk of Red Hat 6.0 and being a newbie, I didn't think 6.0 was so far behind the times. (Not so convenient now, I guess!) I guess I would like to run X because it is a graphical tool I can use to administrate the box...at this point I need all the help I can get!

(?) The installation went pretty easy except for the video configuration part. I first tried to use the probe utility...it could not determine what card I am using. Actually, the video card is wired to the motherboard so I don't know the specifications so I chose the last option "card not listed".

(!) [Sayamindu] It would have been better if you had stated your motherboard model.. but still... here goes -

(?) Yeah, sorry bout that. After cracking the box, this is what I see:

MB = sahara - 1000 with integrated video/network

Video looks like a SIS 5595 chipset, although there is another chip on-board (with heat rails) that is green in color and reads SIS 620. Not sure if that is the video controller or not.....

Network = 3Com chip that reads Parallel Tasking II ...have not gotten the network to work yet!

(!) You will need to upgrade your X packages (http://xfree.org/#currentrel) A better option would be to upgrade your distro - that would save a lot of hassles - with your config, I would recommend Debian 3.0 - that should work fine

(?) Next it asks for the monitor I plan to use with the system. It did not have my exact monitor so I manually entered in the specifications of my monitor.

With all that said, I have no problem starting up the machine and the video is fine for login and command prompt screen, but when I try to enter startx, it opens a session just fine but the screen is magnified so I can only see the top left-hand quarter of the screen. I can see the background and a couple default RH icons but I have no idea how to change the resolution to fit the entire screen.

Any suggestions????

Thanks!

(!) [Faber] Open your /etc/X11/XF86Config file using your favorite text editor. Scroll down to the bottom and in the (one or more) "Screen" section(s), you will see a line something like "Virtual 1200 1200" or some other numbers. Comment out those lines and restart X. That should fix it.
As mentioned, Red Hat 6.0 is bit old, and it's a .0 release of Red Hat which means it should be avoided like the plague, IMNSHO. I suggest you upgrade to a lter distro (Red Hat 7.3 (NOT 8.0!), Debian, Suse, Mandrake, etc.)
(!) [Daniel] less /proc/pci
look for your vga controller, it may list the make and model, that's enough to get you going at the very least.
Ideally, you should consult your mb manual, or the mb manufacturer's website to find out the full specs of your mb. For your video chipset, you may want to know how much memory should be allocated.
I echo the sentiment that why would you need X for a webserver? It's just wasting space and leaves a security hole open.
(!) [Faber] You're the second person to say that and while I'm a CLB (Command Line Bigot) I'm going to chime in here with "I disagree!".
The gentleman in question said he was running "startx". That tells me he's is running X only when he needs to. Since he is, I assume, as a relative newbie to Linux, it is perfectly okay for him to run a GUI to configure his system and get around in it in general. Since it is a (web) server, it would be wasteful for him to run a GUI all of the time .
I suggest to all of my non-CLB clients that they run X whenever they need to do some work and then exit X when they are done. For those who are CLB, I suggest running X so they can have multiple command lines! :-) (Yes, I know about "screen" but I like KDE's Konsole.)
(!) [Daniel] Finally, Faber, I did not see Slackware in that list!
(!) [Faber] Mea Culpa! I'll bring the donuts to the next LUG meeting in penance! :-)
(!) [Iron]
  1. Be glad you got a graphical screen at all since you're using an unknown video chip with who knows what proprietary extensions in it.
  2. If you drag the mouse down past the bottom and right edges of the screen, the display will probably scroll. That's a standard X feature and means that your virtual screen is larger than your physical screen. There are settings in /etc/X11/XF86Config (which may be in a slightly different location in your distribution) to control this, see "apropos XF86Config".

(?) I dragged the mouse...no scroll. Tried "apropos XF86Config" and it returned 3 lines:

XF86Config (5x) - Configuration file for Xfree86
Reconfig (1x)     - Convert old Xconfig to new XF86Config
xf86Config (1x)  -  generate as XF86Config file
(!) [Iron]
  1. Look in your motherboard manual or on the motherboard to see what brand/version it is, then look on the manufacturer's web site to see which video chip that model uses. Then do a Google search for "Linux hardware" and you'll find several sites with brand-specific information about what Linux needs on different kinds of hardware.
  2. Since X doesn't know what kind of video chip you have, it's falling back to the lowest common denominator, probably 640x480 or even 320xSomething at 16 colors. Since I can't see your screen I don't know how big is "magnified", but I have had X start up 320 pixels wide sometimes when I changed video cards without reconfiguring the software.
  3. X comes with a standard SVGA driver that all video cards less than fifteen years old should support. You can tweak XF86Config by hand or use whatever graphical setup utility your distribution provides, or even the xvidtune program. You should be able to get at least 1024x768, although the possible color depth (number of simultaneous colors) depends on how much video memory you have.
  4. Run "X -probeonly >| ~/.xsession-errors". That will give you a verbose listing of what X tried to do and what it found. It may be trying higher video modes and deleting them because your video chip won't support them. It may also be logging the information under /var/log/ somewhere. The "X" command is X-server, the program that controls the graphics mode. The actual filename may be different on your system.

(?) Ran this line and from what I can tell, I think you are right...it is reverting back to the least common denominator, here is a summary:

SVGA: chipset: generic
SVGA: videoram: 64k
SVGA: clocks: 25.18
SVGA: Using 8 bpp, Depth 8, Color Weight 666
SVGA: Builtin Mode: 320x200
SVGA: Virtual Resolution set to 320x204
(!) [Mike]
  1. X comes with lots of documentation under /usr/share/doc or /usr/doc. They may be in separate documentation packages. You probably have XFree86 3.x. My Debian system has XFree86 4.1.0 so the filenames are different, but my directories are: /usr/share/doc/xserver-xfree86 /usr/share/doc/xfree86-common /usr/share/doc/xserver-common XFree86 4.x has only one X-server, XFree86 3.x has several X-servers, each covering a family of video chips. The SVGA server is the lowest-common-denominator one I was talking about, as well as being the correct server for certain chips (CT, Matrox, etc). The S3 server is for S3 chips (e.g., Diamond Stealth), and so forth. The chip-specific servers take advantage of each chips acceleration-optimization code for snappier performance.

(?) What makes sense from here? Upgrading or trying to resolve these issues before and upgrade? Keep in mind my network isn't working either so I will have to load all utilities/packages/or drivers via CD....this was my motive to get X to work first so as to tweak the network settings graphically!

Thanks again for everyone's help, much appreciated!!!!

(!) [Mike] Thanks for writing back. You don't know how many people just take the advice and run.
Yeah, the threads aren't nearly as juicy without debugging reports and the eventual dancing in glee... -- Heather

(?) Video looks like a SIS 5595 chipset, although there is another chip on-board (with heat rails) that is green in color and reads SIS 620.

(!) [Mike]
http://www.xfree86.org/4.2.1/SiS.html
[For XFree86 4.2.0:]
"Information for SiS users ... This driver was primarily written for the SiS6326 and SiS530 by Alan Hourihane. It also works on 5597/5598 chips, and probably on older SiS862X5 family... The following options are of particular interest for the SiS driver. Each of them must be specified in the Device section of the XF86Config file for this card..." (The file is called README.SiS in the distribution.)
My Debian computer has a slightly older version, XFree86 4.1.0, and there's an interesting file /usr/share/doc/xserver-xfree86/Status.gz :

"This document contains one section per vendor (organised
alphabetically) for each chipset family that is supported in XFree86
3.3.6 or XFree86 4.1.0.
...
Unless otherwise stated, hardware is classified as "supported" if
its driver provides basic 2D support. Support for additional features
may or may not be present....
...

In XFree86 3.3.6, several X servers are available; much hardware
uses the XF86_SVGA server, which has a set of driver modules that
are built into it at compile time. In other cases, X servers for
specific chips (or families of chips) are provided (such as XF86_AGX,
XF86_Mach64, etc.).

In XFree86 4.1.0, there is only one X server,
called "XFree86", which can load driver modules at runtime...
...
30. Silicon Integrated Systems (SiS)
[Xfree86 version] 3.3.6: Support (accelerated) for the SiS 86C201,
86C202, 86C205, 86C215, 86C225, 5597, 5598, 6326, 530, 620, 300, 630
and 540 is provided by the XF86_SVGA server with the sis driver.
[Note that 620 is mentioned but 5595 is not.]

[XFree86 version] 4.1.0: 530, 620, 6326 is provided by the "sis"
driver. The 630, 300, and 540 are also supported, but this code is new
and there are some problems with it in this version.
[Again 620 is mentioned but 5595 is not.]

Summary: Support for the 86C201, 86C202, 86C205, 86C215, 86C225,
5597 and 5598 is currently only available in 3.3.6.
So there are tradeoffs between the different versions of X and which SiS chips they support. I normally say go with the latest, but I know I couldn't upgrade to version 4 while I still had my old video card (I think it was the Diamond Stealth, which I replaced with a Matrox Millenium G400 that I got used with a guarantee for $50.)
If you really care about X, you'll have to decide which version to try and install the latest copy of that. If there's no data on the system you need, it may be easier to just blow it all away and install a newer version of Linux from scratch.
But if you really only care about networking, why waste a couple days configuring X?

(?) Network = 3Com chip that reads Parallel Tasking II ...have not gotten the network to work yet!

(!) [Mike] The 3C905 (PCI) and 3C509 (ISA) cards work beautifully on Linux, so hopefully your integrated chip is 3C905 compatible. What does /proc/pci say about it? All the newer 3Com network cards seem to use the 3c59x kernel driver, regardless of whether the "5" is before the "9" on the card. So make sure that driver is compiled into your kernel or available as a module, and see if it autodetects your NIC chip. If I remember right, "Parallel Tasking" is a marketroid slogan 3Com has been using for years.

(?) Mike,

Well, I appreciate you responding as much as you enjoy the challenge of my questions!!!

I agree, I noticed that SIS 5595 was not listed in the driver support pages...I guess the video is supported through the 620 chip.

(!) [Ben] Whoops - that was too quick of a judgement call. The following is an excerpt from the "HP hardware supported by Linux" page (just the first relevant thing I grabbed off Google!), snipped for brevity:

...............

The following tables indicate the state of Linux support by these platforms :
Table 3-1. Brio and Linux
+-----------------------------------------------------------------------------------------------+
| Machine    | Graphic | Linux  | Network | Linux  | SCSI  | Linux   | Sound | Linux   | Tested |
|            | Card    | support| Card    | support| Card  | support | Card  | support |        |
|------------+---------+--------+---------+--------+-------+---------+-------+---------+--------|
| Brio BA    | Sis 5595|  Yes   | None    | N/A    | None  | N/A     | Cirrus| Yes     | No     |
| (D7581A,   | AGP     | 3.3.6  |         |        |       |         | Logic | driver  |        |
| D7584A,    |         |  in    |         |        |       |         | CS    | Alsa    |        |
| D7585A,    |         | Frame  |         |        |       |         | 4614  |         |        |
| D7587A,    |         | Buffer |         |        |       |         |       |         |        |
| D7586A,    |         | mode   |         |        |       |         |       |         |        |
| D7591A,    |         | (FBDEV)|         |        |       |         |       |         |        |
+------------+---------+--------+---------+--------+-------+---------+-------+---------+--------+

...............

So, there is indeed some support for the SiS5595, starting back in 3.3.6 days. Not that SiS under Linux is anything I'd wish on people. "Minimal", "basic", and "hardly works" are the terms that come to mind... and the ones I'd had to configure were somewhat later models than the 5595.

(?) After reading your response, I guess I have no good reason to spend a couple days trying to configure the network support or X for that matter. I read a few articles eluding that X is a easy visual tool to help configure the machine. Do you have any recommendations on something better?

(!) [Heather] It would be more accurate to say X is the visual environment, and many nice tools are available that use the X windowing GUI.
Some not so nice too.
Look for nice tools which say they need "curses". That's a console interface with nice colors, so many menuing sysadmin tools use it.
(!) [Ben] X, if you're willing to live with the generic SVGA server, should work OK. Networking, eh... Linux - pretty much all Unixen, actually - kinda implicitly assume that you're connected. You _can run without it, but... Besides, networking isn't that hard to configure. Have you read the Net-HOWTO yet? If not, then you definitely should.
(!) [Mike] X is "easy" in that it provides the GUI environment most front-end tools depend on. However, X can be "difficult" to set up if your distribution doesn't autodetect your video chip properly and set an appropriate initial configuration. Then you have to edit /etc/X11/XF86Config manually or run one of the configuration front-ends that comes with X or with your distribution. Video chips (and network chips) that are integrated into the motherboard are especially prone to this problem because they are released suddenly by the manufacturer, often using undocumented or proprietary protocols, and it takes time for a Linux driver to be written, especially if the manufacturer is uncooperative. My normal strategy in this case is to buy a known-compatible video card I know the configuration for. I also don't buy motherboards with integrated components unless (1) I know Linux works with those components and which drivers are needed, or (2) the total cost of the motherboard is cheap enough that I can just disable the integrated component and use my own PCI card. If you choose to go that route, the BIOS setup screen probably has options to disable each integrated component individually.

(?) Can I assume a newer version of RedHat (7.2) would ship with more recent driver sets to support the equipment we are discussing? I guess that would save me some time.

(!) [Ben] Latest is good, yes.
(!) [Mike] The current version of Red Hat is 8.0. There is probably a hardware compatibility list somewhere on www.redhat.com. I use Debian, so I can't comment on Red Hat specifically. However, since X and the kernel are third-party components, you can see which version RH is using and look up the documentation on their own sites. We've already done that for X. For your network-chip problem, the appropriate places would be the Hardware HOWTO and Ethernet HOWTO at www.tldp.org, and in the Linux kernel source (since it is a kernel driver). See if there's a file Documentation/networking/ . Also see the comments in the driver sources themselves, drivers/net .

(?) Actually, the unit I bought shipped with two (2) network cards in it. (This is the unit: http://www.3com.com/products/en_US/detail.jsp?tab=features&sku=3C19504-US&pathtype=support

One is wired to the board and the other is a 3com PCI 3C905. This is what /proc/pci says about the network controller:

Bus 0, device  8, function0:
Ethernet Controller: 3com Unknown device (rev 116).
Vendor id-10b7. Device id=9200
Medimum devsel. IRQ 11. Master Capable. Latency=64. Min Gnt=10.Max Lat=10.

Hope that helps, it was the only one out of the 7 device descriptions that mentioned a network controller.

(!) [Ben] One of the various 3c* modules _should load. Here's something I do (as root) when I have no clue of what module to load for the NIC and just want to know if _one of them will do:
# The MASSIVELY brute-force approach!!!
cd /lib/modules/<kernelversion>/kernel/drivers/net
for n in *.o; do insmod $n; done
This will try to load every single module in the "net" category... yuck. However, if one of them succeeds, you'll know it: "ifconfig -a" will show an "eth0" interface. I then do the following cute trick:
ifconfig eth0 10.0.0.1		# Actual IP doesn't matter
for n in `lsmod|awk '/unused/{print $1}'`; do rmmod $n; done
Since "eth0" is now in use, the module won't unload... and now you'll know (via "lsmod") which one it is.
(!) [Mike] For comparision, my 3C905B PCI card shows up as:
  Bus  0, device  14, function  0:
    Ethernet controller: 3Com Corporation 3c905B 100BaseTX [Cyclone] (rev 48).
      IRQ 10.
      Master Capable.  Latency=32.  Min Gnt=10.Max Lat=10.
      I/O at 0xa000 [0xa07f].
      Non-prefetchable 32 bit memory at 0xf9000000 [0xf900007f].
The most important question is, does the 3c59x driver recognize it? My boot messages say:
3c59x: Donald Becker and others. www.scyld.com/network/vortex.html
00:0e.0: 3Com PCI 3c905B Cyclone 100baseTx at 0xa000. Vers LK1.1.16
Run "dmesg | less" to see your boot messages again. If it's compiled as a module, use "modprobe 3x59x" and "modprobe -r 3c59x" to activate and deactivate it.

(?) I guess my next step is to get a hold of RedHat 7.2..unless you have some suggestions on my current setup!

(!) [Mike] You can compile a recent kernel without upgrading, which will get you the latest Linux drivers to try. Or you can contact 3Com and find out exactly how those cards/chips are different from a standard 3C509B and whether they have any success/failure stories about using them with Linux. You may also want to find out why the product was discontinued and how it differs from their current models.
Or you can disable the integrated network chip, yank out the almost-compatible card and put in a real 3C905B card (or an Intel EtherExpress Pro 100 for that matter, using Linux's "eepro100" driver, which I also have in my computer).

(?) Thanks again for your help and I will let you know how the upgrade goes!!!

-Steve




Copyright © 2002
Copying license http://www.linuxgazette.com/copying.html
Published in Issue 84 of Linux Gazette, November 2002


[ Table Of Contents ][ Answer Guy Current Index ] greetings   Meet the Gang   1   2   3   4 [ Index of Past Answers ]