Dear Rusty and all,
I don't know if anybody had noticed, but there are some issues with the
event.d scripts that are supposed to start the X on UME.
The problem is that unless you change the /etc/X11/Xwrapper.config there is no
way the X is going to start on the machine. This is because the way it comes
configured is with allowed_users=console. If you check with the
xserver-wrapper.c you will find out that the upstart starts processes in
the /dev/console which is not ok from the xserver-wrapper.c point of view. I
include also here mytest.c file that basically emulates the behavior of the
Xwrapper test so you can see that I am right. Here is how you can test it:
1. Place the mytest file in /etc/event.d
$ sudo cp mytest /etc/event.d
2. Compile the mytest.c
$ sudo cc -o /mytest mytest.c
3. Re-read the event.d?
$ sudo init q
4. Check if it is there:
$ sudo initctl list|grep mytest
mytest (stop) waiting
5. Now you can see what I am talking about by running in console (login in
text mode):
$ sudo initctl start mytest
and compare the result with:
$ /mytest
The explanation is that the test is looking for /dev/tty[n] as a process start
fd/0. Since console is minor 5 and not 4 it is therefore rejected (unless you
allow any process to start the X, which poses some security problems later).
Long explanation for a short resolution to our problem:
We need to change the /etc/event.d/session as follows:
-exec su -l ume "/usr/bin/starx -- -config xorg-crownbeach.conf"
+console output
+exec openvt -w -f -c 1 -- su -l ume "/usr/bin/starx -- -config \
xorg-crownbeach.conf"
I added the console output so that there is some feedback to the user if
things goes wrong...
Hope it helps other people having the same problem...
Cheers,
Peter
--
Peter Antoniac, PhD
https://launchpad.net/~theseinfeld
GIT/CS a C+++ UL+++$ w--- PGP++ e++++
/* $Author: Peter Antoniac */
#include <stdio.h>
#include <sys/stat.h>
int main (void)
{
struct stat s;
if (fstat (0, &s) != 0)
// if (stat ("/dev/tty1", &s) != 0)
{
(void) fprintf (stderr, "X: cannot stat stdin\n");
(void) fprintf (stdout, "X: cannot stat stdin\n");
}
if (S_ISCHR(s.st_mode) &&
((s.st_rdev >> 8) & 0xff) == 4 &&
(s.st_rdev & 0xff) < 64) {
(void) fprintf (stderr, "X: is ok\n");
(void) fprintf (stdout, "X: is ok\n");
}
else {
(void) fprintf (stderr, "X: is NOT ok\n");
(void) fprintf (stdout, "X: is NOT ok\n");
}
return 0;
}
# My test for Xwrapper behaviour in upstart
#
description "testing x behaviour in upstart"
author "Peter Antoniac <[EMAIL PROTECTED]>"
stop on runlevel [!2]
start on runlevel 2
console output
exec /mytest
--
Ubuntu-mobile mailing list
[email protected]
Modify settings or unsubscribe at:
https://lists.ubuntu.com/mailman/listinfo/ubuntu-mobile