All the colors are off!


Forum: X and Fluxbox
Topic: All the colors are off!
started by: RobF

Posted by RobF on July 17 2004,06:05
I quite like DSL (v. 0.7.2).  It's a fantastic little distro, and I would love to use it more.  But every time I use it, after some 20 min I give up in disgust and shut the damn small thing down, not being able to stand it any longer.  Why - what's the problem?  Well, Tux has got blue feet!  All the colors are off!  And I mean off off off!  The yellows are blues, the blues are browns, the reds are purples etc. etc.

I have a Dell Dimension 2300 with Intel Celeron 1.8 GHz CPU.  Video is handled by the Intel 82845G/GL chipset graphics controller which is integrated into the motherboard.  Video memory is 32Mb, much of which is taken from system RAM.   The Xdriver is i810 and the monitor is a Dell E772c.

This hardware works fine with the XFree86 v. 11 server used by several big Linux distros that I have installed on my machine.  At 1024x768 resol., 16 bit depth, Hsync 70Hz, Vrefr. 85 Hz, all the colors are rendered correctly and everything looks nice.

With the Xvesa server used by DSL all the colors are off at any resolution and any color depth.  When I choose the Xfbdev server, DSL hangs on bootup.

How can this problem be corrected?  Is this a Dell BIOS problem? If so, can it be patched?  If the Xvesa server does not properly support the onboard Intel graphics chipset, can I use another server that does?  Is a version of DSL available that uses the XFree86 server?  Or can the CD be remastered (easily - 'cause I'm a Linux newbie) to replace Xvesa with XFree86?  Is there some other driver that I should use and how can I install it for DSL?

I really would like to get DSL working on my system.

Thanks in advance for your help.

Robert

Posted by roberts on July 17 2004,06:24
Start by trying to boot with the F2 boot time option for video like this:

boot: dsl vga=normal

Posted by speaker on July 17 2004,06:30
I have the same challenge with a old Compaq 486 I want to use. I try to boot and the screen gives me  message about an undefined mode  for the video settings and all the screen looks off color and fuzzy. The videa card is a Permedia 2D/3D any ideas?  I have used F2 to set vga=normal.
Posted by RobF on July 17 2004,18:23
dsl vga=normal at the boot prompt didn't help, unfortunately.  Tux still has blue feet and people are still blue in the face, myself included ':('.

Robert

Posted by cbagger01 on July 19 2004,01:49
Which "Tux"?

The one that appears in the upper left corner when you are booting the CD, or the one that appears in the center when you start up X-Windows?

Posted by RobF on July 19 2004,17:25
The colors of the Tux that appears on the boot screen are correctly rendered: he's got yellow feet and stands on a dark blue business card CD.  The Tux that appears in the top center of the DSL opening window in Dillo under X windows has light blue feet and stands on a brown CD.  The letters of Google are G red, o dark blue, o light blue, g red, l green, e dark blue.  I.e. the palette is all scrambled.

I believe this problem has to do with lack of proper support of the Intel i810 graphics chipset by the version of the Xvesa server used by DSL.  The xfbdev server doesn't work at all.  I understand that other people have had that problem with Xvesa too.  Considering how many machines must be out there with the Intel i810 on the motherboard (I think the entire Dell Dimension line, or at least its lower end), I wonder if there is a workaround for this.

Robert

Posted by roberts on July 19 2004,22:47
You have tried booting with fb800x600 and selecting framebuffer. If I recall the i810 has been posted about before. Try using the Search feature and choosing i810. I think 800x600x16 worked.
Posted by RobF on July 21 2004,19:21
I did search the DSL forums with any number of sensible search terms before I posted my inquiry here.  There were reports of problems with TinyX servers (i.e. Xvesa and Xfbdev) and i810 but no fix that appears to apply to my situation.  One or the other person was able to get their laptop to work with 800x600x16, others failed.

I did find one mode that works on my system (i.e. renders colors correctly), and that is 640x480x16 but that resolution is so low and the screen is stretched so much that on the startup Dillo screen the menu bar is not even on the screen so you can't close Dillo and can do absolutely nothing with DSL.

Feather Linux and Luit Linux have the same problem on my machine (they both use the same TinyX X-Windows servers as DSL), and Puppy Linux which I believe uses something slightly different also has problems.  I'm surprised that this problem of incompatibility of these small Linux distros (and their compact non-X86Free X-windows servers) with the Intel integrated graphics chipsets (e.g. i810) isn't more widely acknowledged.  This chipset must be as common as sand at the sea; every low end Dell contains it.  Who knows how many people interested in DSL simply gave up when they got those horrible screens on their machines.

Here is a quote from Intel support at

< http://support.intel.com/support/graphics/intel810/30483.htm#POS13 >

  Does the vesafb frame-buffer module work on the Intel 810 and
  Intel 815 Chipset Families?

  No. The vesafb module can only make use of linear VESA modes. The
  Intel 810 and Intel 815 chipset families use banked modes and
  therefore, cannot boot into a frame-buffer. It would be possible
  to add banked mode support to the vesafb driver, but as of yet
  there are no plans to do so. The vga 16 color framebuffer
  available in recent Linux kernels does function properly and can
  be used in place of the vesafb framebuffer.

I also came across a discussion by the developers of LNX-BBC who decided against using Xfbdev as a default X server because they knew that every machine with the i810 in it would crash on bootup.  E.g. "The kernel in bbc-2002-12-20T11:03:05 hangs on a machine with an i810
display adapter using the current default boot setting since the i810
chipset does not work with the VESA framebuffer."

On the Intel support site I also found the following which seems to be pertinent (as I posted before, I have the Intel 82845G/GL chipset graphics controller and the Xdriver is i810) :

IntelŪ 82845G Graphics Controller
VBE (VESA) support for DOS games and applications.

Solution:
The IntelŪ Extreme Graphics controllers support VBE 1.2, 2.0 and 3.0. Both linear and banked framebuffer modes are supported. This allows the use of full color and resolution DOS games and applications.

This also provides driver independent (fall-back) graphics support for other operating systems. For example, Windows XP will use VBE modes for display until the IntelŪ graphics driver is installed. XFree86* and most Linux* distributions also provide a VESA/VBE driver which is compatible with these graphics controllers.

What am I to make of all of that?  I understand nothing about video on i386 machines.  Can someone help me sort this out?

xfbdev doesn't seem to work at all with i810, is that correct?  Can xvesa be made to work?  Or can I install the X86Free X server?  Somehow, DSL has got to be made to work with the i810 at good resolution and with correct color rendering.

Robert

Posted by cbagger01 on July 22 2004,02:38
Did you get your system to boot with 640x480x16 using the xfbdev  server or by using the xvesa server?

If you were able to boot up with a little penguin in the left hand corner that had the proper colors, then you should be able to use the xfbdev server.  Boot the bootup screen and the xfbdev server use the same framebuffer device.

Posted by RobF on July 22 2004,23:33
The colors are correct for the Tux snowboarding on the business card CD on the boot screen.

Whenever I choose the xfbdev server, regardless of whether I choose it at the boot prompt or later at the xsetup box and regardless of the resolution chosen (when I enter any of the fbxxxxx settings at the boot prompt, I'm still presented with the text menu of xsetup later on, where one chooses between xvesa and xfbdev), after the box appears asking me whether I have a USB mouse (Yes), rather than continuing on to ask me what resolution (and then next box, what color depth) I want, the system crashes with the error messages:

modprobe: Can't locate module fb0
XIO: fatal IO error 104 (Connection reset by peer) on X server ":0.0"

and then leaves me at the system prompt (text, no X windows).

The only mode that works correctly (i.e. the colors of Tux and snowboard on the Dillo home page are as on the boot screen) is xvesa 640x480x16 (and I believe also color depth 8 and 24 and 32) but that resolution is way too low to be usable (I generally use 1024x768x16), and the Dillo menu bar is off the screen.

Posted by roberts on July 23 2004,00:24
[QUOTE}modprobe: Can't locate module fb0[/QUOTE]

This usually indicates that the framebuffer was not specified at the boot prompt .  How did you boot?  Should be:

boot: fb800x600  and not   boot: dsl fb800x600

Posted by RobF on July 23 2004,01:57
The list of boot time options accessible with F2 shows that the framebuffer options are to be entered without dsl preceding them.  So that's what I've done, i.e. boot: fbxxxxxxx, where xxxxxxx stands for 800x600, etc.

I would have thought that that would bypass any additional config screens; yet I still have to navigate through the "DSL X Setup" box that asks you to choose between xvesa and xfbdev, as though that fbxxxxxxx option specified at the boot prompt somehow hasn't taken.

Anyway, in whatever way xfbdev is chosen, that option always crashes with the errors that I posted above.

With xvesa I get to the dsl desktop but the colors are all off except for 640x480.  When I kill the Xserver (with CTRL-ALT-Backspace) in one of the modes that renders colors incorrectly, I get to the text prompt dsl@tty1[dsl]$.  The lines preceding that prompt show me any error messages the kernel put out just before it switched on the X server.

One error I commonly find there is:

IMLIB ERROR: Cannot find palette.  A palette is required for this mode.

Another error message I sometimes see there is an entire screen full of messages saying:

rxvt: can't load color "........"

where ....... stands for one of many different colors, e.g. Blue3, Red3, Green3, etc.

Posted by cbagger01 on July 23 2004,02:23
Rob,

I think that you are confusing the 16 bit color depth with the 16 COLORS color depth (aka 4 bit color).

The Intel guide quote mentioned 16colors mode, not 16 bit color.

Try booting your computer with a 4 bit color mode like 800x600x4bit

You should then be able to use the xfbdev driver.

Who knows, maybe even the xvesa will work at 800x600 in 4bit color mode. I dunno.  Search the forums for information about custom framebuffer resolutions.
They usually can be created by typing in something like 'dsl vga=0x302' or something like that.

Good Luck.

Posted by RobF on July 23 2004,05:33
Whenever I referred to 16 in connection with color depth, I was referring to 16 bit color depth rather than 16 colors.  I hardly tested the 4 bit mode (i.e. 16 colors) as I expected a pretty horrible outcome.  When I run Mandrakelinux 10.0 or Xandros 2.0 or Libranet 2.8.1, I'm using 1024x768x16, i.e. >10,000 colors.

Anyway, re 800x600 at 4 bit with xfbdev.  I have to repeat: when I use boot: fb800x600 (that's all, on the boot command line you cannot specify color depth), I still wind up in the "DSL X Setup" box which asks me to choose xvesa or xfbdev.  When I choose xfbdev, the next box asks me: Do you have a USB mouse -> Yes, I click on Yes and bang, rather than going on to ask "what color depth", as it does when I choose Xvesa, the config program crashes and dumps me to the DSL command line, I never see an X Windows desktop.  NO POSSIBLE SETUP OF XFBDEV HAS EVER GOTTEN ME TO AN X WINDOW.

Re 800x600 at 4 bit with xvesa.  I tried that, and I get to the DSL Desktop with the DSL manual in Dillo - and with Tux with blue feet!  So it doesn't work.  When I kill the X server, I get dropped to the dsl text prompt, and I can see the last error messages that the kernel put out before it started X.  In this case they were:

Failed to load groupfile
BScreen : : BScreen: managing screen 0 using visual 0x21, depth 8

I also tried various settings of vga=xxxxxx and dsl vga=xxxxxxx at the boot prompt, using a list of a dozen different modes that someone had compiled for DSL.  None of that worked.  I think DSL simply ignored that I had already specified a video mode on the boot screen and dragged me through the whole setup sequence with the DSL X Setup boxes which essentially does the same thing, i.e. specify a video mode.  I've spent countless hours now fiddling with video setup for DSL and trying to find out what's wrong; never had that much trouble before with video setup.  I think there is something fundamentally flawed about those TinyX servers (i.e. xvesa and xfbdev) that DSL uses.

Maybe the DSL developers should do something to fix them to support more hardware or dump them altogether.  It seems to be hard to find out anything about them - their website seems to be migrating, there seems to be no support for them, and nobody even seems to know what versions are used in DSL 0.7.2 and how old they are.

The Intel Advanced Graphics Chipset that's integrated in my motherboard works without a flaw with 5 different big Linux distros that I have installed on my machine and that use X86Free v. 11.  With them I can play Tuxracer with accelerated 3D graphics in full color and at high speed.  I'm not willing to disable this perfectly adequate onboard graphics support and buy a separate video card just to run DSL.

I thought that I could perhaps replace TinyX with X86Free and remaster the CD.  I tried that by following the advice in the parallel thread "How to replace xvesa with x86free".  Didn't work.  Tried "apt-get install x-window-system" and "apt-get install xserver-xfree" on the command line, as both normal user and as root.  Error: "no command apt-get".  Supposedly apt is installed with DSL.  What's wrong?

I had wanted to use DSL to impress those of my friends who are captive to MS Windows with how much can be done with Linux even on a tiny 50 MB footprint on a business card CD.  I don't think they'd be impressed with blue-faced people.

Robert

Posted by cbagger01 on July 23 2004,12:16
Robert,

The xsetup script will always run when you boot up from livecd when you specify the framebuffer values.  The script is used to select the x server of choice and to specify your mouse configuration, so it needs to be run.  It is possible that there are some users that wish to run a certain size framebuffer while in "text" mode and still run Xwindows from the xvesa server.

The default DSL install must use the tinyx servers because you cannot do a full install of xfree86 and still fit everything on a 50MB business card size CD-R disk.

If you wish to install programs with apt-get, you first need to select "Enable Apt" from the menu. After the dpkg / apt system is restored your apt command should start working.

Unfortunately, due to space considerations on DSL it appears unlikely that you will be able to impress your friends with it on an i810 based computer until/unless Intel comes up with a firmware/BIOS change to allow their hardware to work with the INDUSTRY STANDARD vesa functions.  It is also possible that either the "TinyX" folks could rewrite their code to support the uniqueness of the i810 server, OR some kernel writer could add support for a specialized i810 framebuffer which would then work with the xfbdev server.  I wouldn't hold my breath waiting for any of these however.

Posted by cbagger01 on July 23 2004,12:20
I stand corrected.

Looks like someone from the kdrive team is working on an xi810 server for your graphics system.

You can download it and try it out.  A precompiled binary exists here at:

< http://www.tuxfan.homeip.net:8080/rule/XFree86/kdrive/8.0/Xi810 >

Make sure you do a "chmod 755 Xi810" after download to make the program executable.

Then run xsetup.sh to build your xsetup file: .xserverrc if I remember correctly.
Choose Xvesa for your xserver.

Then use 'nano' or 'vim' to edit the file and replace "xvesa" with "Xi810" in the command line.  Then save it, get back to the command prompt and type "startx" on a blank line.

Good Luck.

Posted by RobF on July 23 2004,17:32
Thank you so much, cbagger, for your help.  You have given me some real meat.  I was getting extremely frustrated, feeling that there might be a fix to this problem, but knowing next to nothing about video on i386 machines.  From my reading on these matters I had come up with three possible avenues to explore which are precisely the three areas that you mentioned: 1. Intel or Dell providing a BIOS patch for my machine, 2. the TinyX developers updating Xvesa and Xfbdev with i810 support, 3. somebody writing framebuffer support for i810, or whatever, directly into the Linux kernel.

For now, I'll first try out that Xi810 server from the TinyX team.  Second, there is the possibility of replacing the TinyX servers with X86free.  I'm not wedded to the notion of keeping DSL below 50 MB; it's allright with me to have it on an 8 cm mini CD.  I'll follow your instructions for installing X86free.  If this works, then I'll see if I can remaster the CD with X86free as the default X server.  Has anyone succeeded in doing that?

I haven't installed DSL on my HD, and I don't really want to.  I'll see if all of the above can be done from the liveCD running from my RAM disk (I have 512 MB RAM) and from two 256 MB USB thumbdrives that I have on my machine.

I'll get to it this weekend and let you know if anything worked.  I suppose it's also possible to bypass the onboard Intel graphics chips (reset a jumper on the mobo?) and install a separate video card.  How much would I have to spend on a suitable card that doesn't have the limitations of the i810?  Any recommendations?  It would have to be something mainstream that works without problems with Xandros 2.0, Mandrakelinux 10.0, Libranet 2.8.1, Mepis-2004.b05 and Yoper V2.

Robert

Posted by RobF on July 24 2004,21:28
I ran into a snag trying to install the Xi810 server.  It should be installed in /usr/X11R6/bin but when I try, as root, to move it there from the download directory (/home/dsl), I get the error message "cannot create regular file 'Xi810': Read-only file system".

I guess that comes from the fact that in the DSL directory tree /usr/X11R6/bin is on the CD which cannot be written to.  When I load DSL into RAM (using 'dsl toram' at the boot prompt), I still get the same error message, presumably because DSL merely loads the CD image into RAM, keeping the filesystem untouched.  How can I get around this?  Do I need to install DSL on one of my USB thumbdrives to be able to add packages to it?  How do I do that?

When I edit the X server config file .xserverrc (in /home/dsl/) by changing /usr/X11R6/bin/Xvesa to /home/dsl/Xi810, in order to run Xi810 from /home/dsl/, the system hangs.  It appears the X server has to be in /usr/X11R6/bin.

Robert

Posted by ke4nt1 on July 24 2004,22:38
I can write to the /usr/X11R6/bin directory from /home/dsl
I have to run emelfm from a root shell to do this....
Open up a terminal, sudo su to root, run emelfm from the terminal, copy away..
I frequently open up emelfm from the desktop, forgetting to open it from a root shell.
I'm running from LiveCD, and copied the filetool.lst from /home/dsl to /usr/X11R6/bin with no troubles.

73
ke4nt

Posted by RobF on July 25 2004,00:16
Thanks, ke4nt, for your suggestion.  I did as you said, i.e. opened a root bash, did sudo su to a root@ttyp0[dsl]# prompt, opened emelfm, and navigated to the dir that contains Xvesa.  The only difference was that the path to Xvesa, as indicated in the emelfm box, was /KNOPPIX/usr/X11R6/bin, rather than /usr/X11R6/bin which is what I had used before.

When I then tried (using emelfm) to copy Xi810 from /mnt/auto/floppy (where I had saved it after downloading it), I got the same error message as before: cp: cannot create regular file '/KNOPPIX/usr/X11R6/bin/Xi810': Read-only file system.  So it didn't work.

The permissions for Xi810 are: root, root, -rwxrwxrwx
The permissions for Xvesa are: root, root, -rwsr-sr-x

If one runs DSL from the LiveCD (no HDD install), I'm wondering where most of the directory tree + files are kept.  I thought they were kept on the CD-ROM, and only the user files in /home/dsl are kept in a partition that can be written to, i.e. on the ramdisk.  If the former are kept on the CD-ROM (which is read-only) then one wouldn't be able to add any system files to DSL.  If one wanted to, one would have to install DSL on the HDD (or perhaps it would also work on a USB thumb drive).  Am I correct?

I'm puzzled why you're able to copy to the /usr dir, and I'm not.

Robert

Posted by roberts on July 25 2004,00:37
The base liveCD you cannot write there. There are many ways to extend the base liveCD and as such make other system directories writeable.

1. enable apt-get
2. use synaptic
3. install a .dsl extension, such as, gnu-utils
4. call the mkwriteable script /etc/init.d/mkwriteable

All of these have impacts on low ram systems. If you have 256MB or more, then not a problem.

Posted by ke4nt1 on July 25 2004,00:50
and sure enough, I have gnu-utils.dsl and dsl-dpkg.dsl installed by default.
They are in the root of my "mydsl" partition, which I load at boottime,
along with firefox and java..    Thanks, roberts....

73
ke4nt

Posted by cbagger01 on July 25 2004,01:11
FYI,

It should make no difference where the Xi810 program is stored. You should be able to run it from your HOME directory as long as you specify the full path in the .xserverrc script.

However, the little "s" that are showing in the xvesa program permissions are important.  They mean that xvesa has 'suid' permission and Xi810 does not.

This means that you should try one of two things to test the Xi810 server:

(1) Start up Xwindows as user 'root'.  You can do thing by typing 'sudo startx' from the command prompt instead of 'startx'.

(2) Fix the permissions of the program file with something like:

chmod o+s,g+s Xi810

and then try 'startx' like normal.

HTH

Posted by RobF on July 25 2004,04:33
In a bash shell, after issuing sudo su, I copied Xi810 from the floppy where it was root, root, -rwxrwxrwx, to /home/dsl.  Then issued "chmod o+s,g+s Xi810" which turned the permissions into root, root, -rwxrwsr-x.  Still needed suid for owner, so I tried "chmod 4711 Xi810" (see below) which turned the permissions into root, root, -rws--x--x.  Not good enough, wanted s for group, so I tried "chmod g+s Xi810 which gave me root, root, -rws--s--x.  That seemed close enough to the permissions for Xvesa (which are root, root, -rwsr-sr-x), and I left it at that.

Once more, edited .xserverrc by replacing Xvesa with /home/dsl/Xi810, killed X windows, typed startx, and got the following message with which the system hung:

waiting for xserver to begin accepting connections

..  ..  ..  ..  ..  ..  ..  ..   , time ticking away and no timeout in sight.  Once again, no luck.

Then I remembered that Xi810 now had su permissions, and I should have started X from a root prompt.  So, once more through the whole tedious sequence of edits and changes (all of which of course evaporate with RAM after every reboot necessitated by a crash).  This time, after restarting X as root, I was instantly thrown into the "DSL X Setup" box, asking me to choose between Xvesa and Xfbdev.  Again, no luck.

Wrt "chmod 4711", on the net, on a "kdrive resource page", I had found the following prescription:

Install the server [i.e. Xi810 or any other of a dozen different kdrive xservers, incl. Xvesa and Xfbdev] in /usr/X11R6/bin/ and then:

chmod 4711 (server)
ln -s (server) X
startx

Is it necessary to include that symlink?  Why isn't Xi810 working?

Robert

Posted by cbagger01 on July 25 2004,06:48
You shouldn't need to do the symlink if you change the .xserverrc file

xserverrc will directly call the program so the symlink is irrelevent.

It seems to me like you got close with your "waiting for xserver to begin accepting connections" message.

Maybe you need to set the suid bits

sudo chmod o+s Xi810
sudo chmod g+s Xi810
sudo chmod u+s Xi810
sudo chmod a+s Xi810

edit the .xserverrc file

and then type "startx"

Good Luck.

Posted by RobF on July 25 2004,18:23
I changed the modes of the Xi810 file as su, i.e. o, g and u with +s; I didn't change a.  That gave root, root, -rwsrwsr-x for owership and permissions for Xi810, very close to those for Xvesa.

Then I edited .xserverrc which then read

exec /home/dsl/Xi810 -mouse /dev/input/mice,5 -screen 800x600x8 -shadow -nolisten tcp -I &>/dev/null

Is there anything in these arguments that Xi810 might stumble over?  Ordinarily I choose 1024x768x16 for resolution & depth but here I chose a less demanding setting.

Then I killed X and typed startx at the text prompt (as normal user, NOT as su).  That gave me the same error message as before, i.e. "waiting for xserver to begin accepting connections ..  ..  ..  ..  ..  ..  ..  .."  I stopped that process, which brought me back to the text prompt.  But now the keyboard was dropping letters, so I couldn't restart X or run xsetup.sh.  Next, CTRL-ALT-Delete.  The last message I saw before the line "KNOPPIX halted" was:

xserver (pam_unix) [777]: authentication failure; logname= uid=1001 euid=0 tty= ruser= rhost= user=dsl

I guess that just means that as ordinary user I didn't have the permissions to open Xi810.  I stopped there, i.e. didn't go through the whole changing & editing routine again and then startx as su.  I'm almost certain, I would have gotten the same result as last time, i.e. landed in the Xvesa/Xfbdev setup routine.

On another note: I looked more closely at how the colors change from normal (i.e. with Xfree86) to DSL with Xvesa.  The colors in DSL are not TOTALLY scrambled. Many of them are just exchanged in pairs.  E.g. the letters of Google: red -> dark blue, dark blue -> red, light blue -> yellow, and green remains green.  With Tux's feet, yellow -> light blue (i.e. the reverse as in the 3rd Google letter).  I just wonder whether Xvesa needs to be tweaked only slightly and all the colors would fall into place.

There is another state that I come across with DSL where the colors are much more strongly corrupted.  E.g. the appearance of Tux in the center of the DSL desktop in that state is grainy and fuzzy and the colors are rather psychedelic.  This state commonly occurs when I open gLinks-hacked: when the cursor is within the browser window, the colors are mildly scrambled (i.e. apparently reversed in pairs) as I described above but when I place the cursor on the window frame or outside the gLinks window, all the colors of the gLinks window flip (this is quite striking) and the menu bar becomes fuzzy and its icons unrecognizable.  Moving the cursor back into the gLinks window flips the colors back to the less bizarre state.

What does all this signify?  I commonly get the error "IMLIB ERROR: Cannot find palette.  A palette is required for this mode", when Xvesa is starting up X windows.   Is Xvesa not finding the proper palette or is it using the wrong palette when it's driving the i810 hardware?  Can that be fixed?

Somewhere in this world there must be somebody who managed to properly drive the Intel i810 graphics chipset (mine is actually the 845GL - same family) with one of the Kdrive (formerly known as TinyX) xservers, i.e. Xvesa, Xfbdev, or Xi810.  After all, the Kdrive folks wouldn't have released an Xi810 server if that isn't possible.

Robert

Posted by roadie on July 25 2004,23:45
I'm running the Intel i810 chipset, Ive never had these problems with DSL, Feather or any other Linux.

With DSL and Feather I use the XVesa driver and it kicks in everytime.
I remember seeing something about the i810 being slightly different to the i845 but can't remember where, I'll look around.


roadie

Posted by RobF on July 26 2004,00:22
What resolution are you running, roadie?  The Xvesa of DSL renders colors correctly on my i845 for 640x480 but not at any higher resolution.

The i845 is just a more recent chipset in the i810 family.  Functionally, they seem to be all alike, up to i855 and beyond, as Intel provides just one universal driver for them (called i810) that runs under Linux and that's used e.g. by Xfree86.

Robert

Posted by roadie on July 26 2004,02:20
I run 800x600 and 24 depth, it's the best I can get out of my old monitor.
I've had no problems from the beginning with DSL.
Are you able to edit your .xserverrc file? Sorry, it's all I can think of right now.

roadie

Posted by RobF on July 26 2004,18:37
Very interesting, roadie.  Would you mind me asking you a few questions about the specs of your system?

What kind of a machine and exactly which graphics controller are you using?  Is it the Intel 82810?  How old is it?  What version of DSL are you using, and is there a version number or file date you can get for your Xvesa?  Have you ever tried to run DSL at any resolution higher than 800x600?  And is it correct that Xfbdev didn't work at all on your machine?

If you could remember where you found that info about significant differences between the i810 and i845, I would appreciate that very much.  It looks as though the "Intel 800 chipset family" which includes the i810 runs up to i840.  The i845/48 seem to form their own family, and then there are more recent families, up to the most recent i925.  My 82845GL graphics adapter dates from approx. mid-2002.

In Jan. 2003, Kdrive put out about a dozen different tiny xservers for different graphics cards, including Xvesa, Xfbdev, Xi810.  If that Xvesa fully supported the i810 (in standard vesa mode, i.e. not using frame buffering), then there wouldn't have been any need to also offer a separate i810 xserver.  Yet they also put out that Xi810, implying that Xvesa didn't quite do the job.

Robert

Posted by roadie on July 26 2004,19:00
I'm running a Compaq 5721
Intel 500 64 ram, yes it is the 82810-DC100 CGC from I think 1999
My monitor is a Datatrain DC521P, Xfbdev does'nt work with my video.

Right now I'm running Feather 0.5.3 but as I said I have had no problems before with Feather or DSL.
It seems 800x600 is the best I can get, 1024x768 has always been dosed but I've never played with it, 800x600 is fine for my old eyes.

roadie

Posted by cbagger01 on July 26 2004,21:50
Update:

I was able to locate a Dell Optiplex GX260 (Intel i845G series graphics controller) for some testing.

I didn't spend much time with the Xvesa server because it seems like a less promising approach.

However, I was able to get a 640x480x16 mode going with the following command line:

dsl vga=785

and select "xfbdev" at the prompt.

Unfortunately, you cannot run "Dillo" because it is too big for the screen.  Instead, I "Right Click" on the left edge of the screen and choose "xkill" from the menu. I then click on the Dillo window to kill it.

Instead of Dillo I use glinks which (barely) fits on the screen.  Because other applications also do not work with 640x480 I started up an xterm (rxvt dark) so I can ALT-TAB over to it and type "killall programname" if I get stuck again with a full screen application and no titlebar.


Now as to the Xi810 server.  It appears that the precomipled binaries for this server do not seem to work with DSL.  You cannot see the messages with the .xserverrc / startx command because the output is piped to /dev/null.

However, if you just type ./Xi810 from the command line you should get a grey screen with an "X" mouse cursor (hit CTL-ALT-BACKSPACE to exit).

But when I try this I get promped for a password. Something involving libPAM is interfering with the startup of the X Server.  I tried setting the 'root' password, but typing in the root password at the prompt did not succeed to start up the xserver correctly.

Just to make sure that this was a precompiled binary problem and not an "Xi810" specific problem, I downloaded the precompiled Xvesa server and the same problems existed.

However, if I start the custom DSL executable (/usr/X11R6/bin/Xvesa) it works fine.

John, if you are reading this, please respond.

When you compiled the Xvesa / xfbdev servers, you should have also generated an Xi810 server.  Do you still have it stored somewhere?  Perhaps you could post it to an ftp or http link for us to try out.

A "plan-B" option is to boot up using the intelfb framebuffer driver instead of the vesa framebuffer. Maybe it will work with the xfbdev server.

The boot option for the kernel is described here:

< http://www.xfree86.org/~dawes/intelfb.html >

Good Luck.

Posted by RobF on July 27 2004,04:54
Thanks a lot, cbagger, for all the effort you've put into trying to solve this problem.  The Intel i845G graphics chipset in the Dell Optiplex that you got your hands on is virtually identical with the i845GL that's in my Dell (the GL is missing a few features that the G has).  So the hardware is very close.

Your tests seem to indicate that there may be a problem with the precompiled binaries dated 1/8/03 that one can download from the Kdrive-related website.  There certainly is a disparity in file sizes: at the Kdrive website Xvesa is 965 KB and Xfbdev 937 KB whereas in the /usr/x11R6/bin directory of DSL Xvesa is 640 KB and Xfbdev 618 KB.  But perhaps that means nothing and merely reflects precompiled binaries vs. fully compiled binaries.

I duplicated some of your tests and by and large got the same results.

With the boot time option 'dsl vga=785' and then choosing xfbdev in the "DSL X Setup" box, I indeed got an X window with 640x480x16 and correct colors.  This is the only condition I've found so far for which the system would not crash when the Xfbdev server is chosen.  With Xvesa too, that's the only resolution for which I get the correct colors but with Xvesa at least I get X windows at all the other resolutions (except of course that most colors are off).

I finally managed to set the permissions for the Xi810 file to match exactly those of Xvesa and Xfbdev.  With that done, when I type ./Xi810 on the command line (ordinary user), I'm prompted for a password.  When I type 'root', I get the error message "PAM authentication failure, cannot start X server."  When I then change to root (sudo su) and type ./i810, the system fails with "segmentation fault" and kicks me back to the root prompt.  I didn't get to the grey screen with the mouse cross cursor as you did as an ordinary user.  However, the Kdrive folks say that these servers must be started as suid root (am I reading this right?).

E.g. here is a quote that I found on the web from someone associated with Kdrive:

"There are 10 servers:  Xchips  Xfbdev  Xi810  Xigs  Xmach64  Xsavage  Xsis530  Xtrident  Xtrio Xvesa.  Grab a likely server, and put it in /usr/X11R6/bin, and chmod 4711 the server binary. XFree servers must be installed suid root. The Xvesa server should work with most hardware, as will Xfbdev. (You have to
enable the fb device at boot time.) The other card specific servers are more of a shot in the dark."

It certainly would be great if John (I presume you're referring to the principal developer of DSL) could make available a properly compiled binary of Xi810.

In the meantime, I'll explore "plan-B" and see if I can get David Dawes' Intel i845 frame buffer driver to work with the Kdrive Xfbdev.

Again, many thanks!

Robert

Posted by cbagger01 on July 28 2004,01:30
Update:

I tried playing around with the intelfb device today and I was able to get it running.  Unfortunately, when using the xfbdev kdrive server, I still got the blue screens and the weird colors.

If you wish to use the intelfb device for console mode, here is how you do it:

At boot prompt, type:

dsl vga=normal

Cancel out of the Xwindows to get back to the text prompt and type:

sudo su
modprobe intelfb mode=1024x768-8@60
exit

And you should be running in 1024x768 console text mode framebuffer.

The framebuffer driver only recognizes 892k of video memory, so make sure that your framebuffer resolution + color depth does not exceed 892k or you will be dumped into the default 640x480 frame buffer.

For example, 1024 Xpixels * 768 Ypixels * 8 bit (or 1 byte) color depth = 786,432 bytes of video RAM, so it works properly.

Hope this helps somewhat.

Posted by RobF on July 28 2004,02:48
Thanks, cbagger, for chipping away at this.  I too tried out the intelfb driver, mostly though with Feather Linux where I got a little farther than with DSL.  But the bottom line is: I still can't get the correct colors at an acceptable resolution.

The intelfb driver is definitely there, built into the kernel of the current versions of both DSL and Feather, and I'm sure I was running it.  With Feather, I booted with the option knoppix 2 which gets me to runlevel 2, i.e. with no X started.  From the root prompt, I typed "modprobe intelfb mode=640x480-16@60" and then "startx".  That got me to the X Setup box where I selected Xfbdev.  With those choices, I wound up with an oversized Dillo at 640x480 and the correct colors.  So far so good.

But when I went through this procedure again, for any setting higher than 640x480, I wound up with X windows with the appropriate higher resolution but with incorrect colors which were worse than anything I'd seen before, e.g. Dillo with dark blue text on a black background and bright red menu and scroll bars, or with the Google letters very grainy in psychedelic colors.

You said: "The framebuffer driver only recognizes 892k of video memory, so make sure that your framebuffer resolution + color depth does not exceed 892k or you will be dumped into the default 640x480 frame buffer."  That explains it - either I wound up with 640x480 and good colors even when I had set a higher resolution or I did get the higher resolution but only a few colors, principally blue and black.

The only virtue of using intelfb with Xfbdev is that with 1024x7687 and 1280x1024 you get nice looking small text in the console mode.  But I don't expect I will spend much time in that mode.

There is also the fbset command which has quite a few options.  You can spend hours changing settings and still not wind up with anything usable.  With DSL, I duplicated most of what I had found with Feather using intelfb anf xfbdev, except I had more failures, i.e. nothing working at all and the system crashing.

Perhaps I'll put all of this before the author of intelfb who invited feedback and problem reports.  This driver is supposed to support the i845G chipset.  I may also want to send an email to John of DSL and ask him if he's got the Xi810 server compiled for Debian.   I got the (precompiled?) Xi810 from RULE, and it probably wasn't compiled for a Debian-based system.

Where would you suggest I go from here?  I really would like to get DSL going on my machine; it's a good distro to learn Linux from because it's lean and mean, and you're not distracted by the overwhelming bloat factor of full size Linux distros.  Would it be very involved to replace the Kdrive servers with Xfree86?  I don't mind carrying DSL around with me on a 210 MB CD as long as the colors are right.

Again, many thanks for your help, cbagger!

Robert

Posted by cbagger01 on July 28 2004,03:43
If you wanted the full Xfree86 system on your CD, you could remaster DSL using the how-to guides and apt-get the x window system. Then re-create the ISO and give it a burn.

Another option is on a system with GCC and XFree86 you could download the KDrive source code and compile it yourself.

I did this for XVesa a long time ago in a failed attempt to make my old 2-button Microsoft PS2 mouse work correctly with the built-in mouse driver.  It took a bit of fooling around before I could get it to compile, but it is possible.

Normally when you 'make' kdrive you build all of the servers so if John still has his 'compilable' source code for the DSL Xvesa/xfbdev servers he should be able to whip up a copy of Xi810 without too much work.  That's a big 'if', of course.

Posted by RobF on July 28 2004,04:41
Compiling the Kdrive X servers from source isn't really an option for me.  1. I don't have a clue where I would find it.  The Kdrive team appears to be an elusive entity.  2. I've compiled C source code under Linux only once or twice.  It didn't go so well.  I'm struggling to cope with a very steep learning curve with Linux, and that would be yet another thing I have to learn.  I'll see if the compiled Xi810 can be obtained from John.

I will investigate the next option, i.e. to run DSL in Xfree86 X windows.  There is actually a "small" Linux distro that uses Xfree86 and looks good on my system: mini-Knoppix (about 200 MB), a skinned down Knoppix 3.3.  But I find the parsimony of DSL and Feather rather attractive, and these distros are being developed very actively.

Or I could throw in the towel and get myself a separate PCI video card.  But I don't even know if I can disable the onboard Intel "Extreme Graphics", and who knows how many incompatibilities I may run into with a new video card with Windows XP and five different Linux installations.  Right now, all of that runs without a hitch on that Intel i845 chipset.

Robert

Posted by RobF on Aug. 01 2004,19:14
UPDATE

As to compiling the Xi810 for DSL, John Andrews from DSL tells me that he compiled the Kdrive Xi810 from source several times under DSL and never got it to work.

One interesting new development: Using Feather Linux, I did finally manage to find two (and only these two) video modes that work with my Intel i845 hardware using the framebuffer device.  These are 800x600x8 (i.e. 256 colors) and 1024x768x8, and I can access them with Feather by booting into framebuffer with "knoppix vga=771" and "knoppix vga=773", respectively.  The resolution is good, the text looks acceptable, and the colors are correct but images have a rather grainy appearance.  I can use Xfbdev in Feather by selecting these modes but I still would like to find better graphics support.

But here comes the hitch: these modes don't work in DSL.  In DSL, with "dsl vga=771" and "dsl vga=773", and then selecting Xfbdev, I get the proper high res X windows but a paucity of colors, again mostly dark blue and black, as I described before and as cbagger also experienced first hand.  Feather and DSL both use the same X servers - does anyone have any idea what might account for this difference?  One thing I noticed was that in Feather, in the .xserverrc file,  the "-nolisten tcp" option that one finds with DSL is omitted.

It would be nice if I could get these two VGA modes to work in DSL too because then DSL would become usable for me.  If I need to go further, the next step might be to replace the Kdrive servers with Xfree86 or Xorg but that would be a lot more involved.

Robert

Posted by roberts on Aug. 01 2004,20:26
The "nolisten tcp" is so that you don't run with unnecessary open ports We prefer not to have any open ports than absoutely necessary. By removing that phrase from .xserverrc you have an open port. The open port is used  to allow the distro to supprt remote X apps. This is something that is not normally used. Do you really need your tiny disto to support remote TCP/IP connections to its X server? One can always edit this .xserverrc if one truly needs such an environment.
Posted by RobF on Aug. 01 2004,22:08
I didn't say that the inclusion of the option "-nolisten tcp" in the .xserverrc  file in DSL was the cause of DSL failing to work with the framebuffer modes VGA 771 & 773.  I only mentioned this as the only difference in default X configuration that I had noticed between Feather and DSL.  This difference may well be irrelevant in this connection but then what do I know about video framebuffers?  Perhaps a framebuffer is considered a remote device and requires a remote tcp/ip connection to be set up properly.

The question still remains, in what way does DSL differ in its setup of X windows from Feather so that Feather can set up framebuffers for VGA 771 & 773 that function properly with the Intel i845 chipset and DSL cannot?

Posted by roberts on Aug. 01 2004,23:46
Quote
As to compiling the Xi810 for DSL, John Andrews from DSL tells me that he compiled the Kdrive Xi810 from source several times under DSL and never got it to work.

Looks like you got your answer.

You also posted:
Quote
One thing I noticed was that in Feather, in the .xserverrc file,  the "-nolisten tcp" option that one finds with DSL is omitted.


I posted that is not OMITTED. It is our opinon not a good idea and not needed by most users and why.

We cannot possible have available all hardware on which to develop. People have sent alot of  time here trying to be helpful to you.. You seem to have an agenda. We get it!  So, if you like a color depth of 8, go for it.

Posted by RobF on Aug. 02 2004,03:39
This thread has become so long that most of the facts have probably evaporated in the mind of the casual reader.  Because of that I'd like to briefly summarize what has or has not been accomplished so far.

I have a budget Dell desktop with an Intel i845 graphics chipset integrated in the motherboard.  I believe that DSL is a great Linux distro and that it would perfectly serve as a lean and mean learning distro that would allow you to get under the hood and work close to the system level.  Since that is what I'm looking for, I've spent countless hours trying to get it to work on my hardware, for my own benefit as well as for the benefit of everybody else who uses that chipset or other members of that chipset family which can be found in tens of thousands of recent machines.  This graphics hardware was introduced about two years ago, and it works without a problem with other full Linux distros under XFree86, at resolutions up to 1280x1024x32.

I also very much appreciate all the help I have received in this forum, in particular from cbagger.  Unfortunately, so far we have not been able to find any video setup for the Kdrive X servers Xvesa and Xfbdev used by DSL that would provide usable X windows.  The problem is that these X servers don't provide much support for the Intel hardware.

I also tested Feather Linux to see whether it had all the same problems as DSL.  Feather is a close cousin of DSL, and in particular the X servers and video setup appear to be pretty much identical in the two distros, to the extent even of Feather borrowing the X Setup screens from DSL (with proper acknowledgement to DSL).

Imagine my surprise then when I finally discovered two video modes in Feather (of all the other modes - literally dozens - tested in DSL and Feather, with both Xvesa and Xfbdev, that did not work) that actually gave me a usable screen.  They have the resolution I want (1024x768 or 800x600) but not the color depth I want (8 bit = 256 colors; I would rather like 16 bit), and they provide rather grainy images but at least the colors are finally right, and I feel I can actually work with those modes.

Imagine my surprise again when I then went back and tested these two modes on DSL and found that they did not work there.  Given the fact that DSL and Feather are virtually identical in their X windows software, setup and configs, I would like to find out what the difference is that allows Feather to give me something workable whereas DSL fails in this regard.  If this difference (which may well be a minor tweak) can be identified, then I might be able to get DSL to work for me as well.  After all, Xfbdev supports these two modes on my hardware as is proven by the fact that Feather can run them without a problem.

If the needed tweak cannot be identified, then I'm just about ready to give up on DSL, and not only I would lose but potentially dozens or hundreds of people with an interest in DSL who have the Intel i810/845 hardware.  I feel that there is a workable solution of this problem for DSL and that it is tantalizingly close.  I would certainly be very happy if I finally get DSL to work on my machine.

Robert

Posted by cbagger01 on Aug. 08 2004,02:11
RobF,

I don't have a copy of Feather Linux, but you should be able to verify if the xfbdev files are exactly the same or if they are different by looking at the timestamp and file size.

If you really want to be sure, you can copy one of the xfbdev files over to a floppy disk or a hard drive and use the "diff" command to compare them to each other.

Assuming the two xfbdev files are exactly the same, the only other difference that I know of is that Feather is based on knoppix 3.4 (newer kernel) while DSL is based on knoppix 3.3

The code for the frame buffer kernel driver could have changed between 2.4.22 and 2.4.26 so that is a possible difference.

You could wait until the next MAJOR revision of DSL (version 0.8.0) comes out and then try the same resolutions again to see if they work.

Otherwise, if the xfbdev files are different you could try copying the Feather file over to your DSL install and try it out there as a test.

The ideal solution would be to compile a working version of the Xi810 driver but this appears to be a difficult task.  Maybe you can contact the author and see if he will send you a working pre-compiled binary file via e-mail.

If so, it would be easy for me to create a *.dsl extension that will allow the use of this binary file.

Good Luck.

Posted by RobF on Aug. 10 2004,04:32
Thanks, cbagger, for your suggestions and your offer of help.

I ran "diff" on the Xfbdev files from Feather 0.5.6 and DSL 0.7.3 - they are identical.

The .xserverrc files differ slightly for Feather and DSL:

Feather: exec /usr/bin/X11/Xfbdev -mouse /dev/input/mice,5 -logo -p 1 -I &>dev/null

DSL: exec /usr/bin/X11/Xfbdev -mouse /dev/input/mice,5 -nolisten tcp -I &>dev/null

I downloaded an older version of Feather, v.0.4.2 (from 5-15-04), which was the last version that still used Knoppix 3.3 and kernel 2.4.22.  That version behaves in the same way as the most recent version, v.0.5.6, i.e. the two framebuffer modes VGA=771 and VGA=773 give me correct colors at 800x600x8 and 1024x768x8 whereas DSL fails to work with any fb mode.

My guess is that there are subtle differences in the default settings and startup scripts for X between the two distros that account for the difference.  In my endless fiddling with servers, drivers and config settings for the two distros, I had a sense that DSL was a little more fastidious than Feather and failed more easily under identical circumstances.

Do you have any suggestions as to what else I should compare between the two distros aside from the Xfbdev files and the .xserverrc scripts?

As to compiling a working version of the Xi810 server for DSL, John Andrews told me that he had compiled the Kdrive Xi810 from source several times under DSL and never got it to work.

Perhaps the most viable solution to this problem would be to remove the Kdrive servers and replace them with a more recent X server that fully supports the Intel i845 hardware, such as the X.org server or XFree86.  But that doesn't appear to be a trivial matter.  It would involve taking out the Kdrive servers and then integrating the alternative X server and remastering the CD.

I've searched the DSL and Feather forums - nobody seems to have done this or posted any detailed instructions on how to do it.  I do remember that somebody recommended to install the full XFree86 system rather than trying to scale it down (to save space) and in the process running into endless problems.  If another 50 MB of space is needed to get DSL running - and looking good - on my system, so be it.  I'm keeping it on a 210 MB mini CD anyway, so there is plenty of space left for a customized version.

Robert

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