Re: Re: y fails to start but gives no useful error message

Jerrit Erickson <[email protected]> Mon, 23 Jan 2006 18:00:42 -0500
Newsgroups gmane.comp.graphics.y.devel
Message-ID <[email protected]>
I got the framebuffer working by changing the color depth for the mode
I was using. The geometry line has five numbers in it, and only one
looked like a color depth (was set to 8), so I changed it to 32 and
suddenly video worked. It's not obvious how to define one's own
geometry and timings lines for a mode; I had to pull the fb.modes file
from another machine  and use trial and error. It'd have been nice if
there had at least been a comment in the file defining what the
numbers mean. Now, even with the input device interface stuff all
compiled into the kernel, and the evdev driver loaded, I have no
keyboard or mouse in fb mode.

Back to SDL, it turns out the configure script wasn't finding my
perfectly legit fbcon setup and so wasn't enabling fb support no
matter what flags I passed it. I ended up taking the relevant tests
out of the SDL configure script entirely and just left in the variable
it sets, manually declaring it to be yes. This got fb support into SDL
at last, and the SDL driver now works well enough to draw the light
blue screen before hanging. If nothing else, this proves that SDL
should have been able to configure the fb video driver on its own... I
am at a loss as to why I had to force it.

In both cases, there's a real lack of clear documentation for things
that Y relies on. We/I really ought to be a handbook for this stuff.
Something along the lines of life with qmail or the gentoo handbooks
that walks through a setup from scratch, in painstaking detail, just
to get new people running Y without having to go through this sort of
thing.

On 1/22/06, Jerrit Erickson <[email protected]> wrote:
> I'm not entirely sure what I did differently this time, but I got it
> to start and background. My startY is modified to tell me how far it's
> getting...
>
> localhost ~ # ./bin/startY
> Using config /root/etc/Y/server.conf
> PID is 31276
> Display socket is unix:/tmp/.Y-unix/31276
> Starting yiterm...
> Should have opened a yiterm by now...
>
> And the appropriate processes appear in ps:
> root     31276  0.1  0.7   7060  3860 ?        Ss   04:19   0:00
> /root/bin/Y --emit-pid --config /root/etc/Y/
> root     31277  0.0  0.4   3768  2056 pts/0    S    04:19   0:00
> /root/bin/yiterm
> root     31278  0.0  0.2   2212  1256 pts/1    Ss+  04:19   0:00  \_ -/bi=
n/bash
>
> But I get only a my console, Y doesn't appear. So I look for errors:
>
> localhost ~ # grep 31276 /var/log/syslog
> Jan 23 04:19:01 localhost Y[31276]: Error: ykbLoadMapSet: Error
> loading keymap /root/etc/Y/keymaps/us.ykb: No such file or directory
> Jan 23 04:19:01 localhost Y[31276]: Error: initialise: sdl: Unable to
> init: No available video device
> Jan 23 04:19:01 localhost Y[31276]: clientRegister:116: Registering
> client with ID: 1
> Jan 23 04:19:01 localhost Y[31276]: clientAddObject:211: Adding object
> 2 [Window] to client 1
> Jan 23 04:19:01 localhost Y[31276]: clientAddObject:211: Adding object
> 3 [Console] to client 1
>
>
> I built libsdl myself using only the --enable-video-fbcon option to
> configure, and framebuffer itself is most cerntainly working. So now
> it's an SDL problem of some sort, not a problem with Y. For what it's
> worth, I can get the "yellow lines" screen if I switch to the fbcon
> driver. Have I missed something with the SDL setup? The mailing list
> archives don't seem to mention Y starting cleanly but without any
> video.
>
> On 1/22/06, Kristian Mueller <[email protected]> wrote:
> > Hi Jerrit
> >
> > On So, 2006-01-22 at 22:09 -0500, Jerrit Erickson wrote:
> > > 187           else if (pid !=3D 0)
> > > 192               close (pipedes[1]);
> > > 197               ssize_t ret =3D read (pipedes[0], returns, sizeof (=
int) * 2);
> > > 198               if (ret > 0)
> > > 217                   if (ret =3D=3D 0 || errno =3D=3D EPIPE)
> > > 219                       fprintf (stderr, "Y: server exited before s=
tarting up\n");
> > > Y: server exited before starting up
> >
> > it seems, that you've got a problem creating the pipe. I don't know the
> > source of Y but maybe you can provide information about the file it
> > happens in and I can have a look at the pipe creation part.
> >
> > I am not shure if we have multitrading here - at least in your strace
> > output you see it is a forked process.
> >
> > Hmm, wait:
> > Maybe the indention is missleading here, and we are past the (ret > 0)
> > then it could be a problem in the parent process. Meaning that the chil=
d
> > process (which would be the server) just died.
> >
> > In that case you have to find out, why the child process has finished. =
-
> > maybe you could debug using DDD. And maybe you have the font problem
> > there. I don't know the code.
> >
> >
> > hope that helps
> >
> > Kristian
> >
> >
>