Add README for the adventurous, allow evdev override from getenv().
This commit is contained in:
parent
35370f8073
commit
33a52bd07d
65
README
Normal file
65
README
Normal file
@ -0,0 +1,65 @@
|
||||
This file describes how to build and run wayland. See NOTES for what
|
||||
wayland is or maybe will be some day.
|
||||
|
||||
Wayland requires the eagle EGL stack available from
|
||||
|
||||
git://people.freedesktop.org/~krh/eagle
|
||||
|
||||
and currently assumes that eagle is checked out in a sibling
|
||||
directory, for example:
|
||||
|
||||
~krh/src/wayland and
|
||||
~krh/src/eagle
|
||||
|
||||
Eagle should work with a recent DRI driver from mesa, but I have mesa
|
||||
repo with an eagle branch here:
|
||||
|
||||
git://people.freedesktop.org/~krh/mesa
|
||||
|
||||
which provides and experimental DRI CopyBuffer extension, that lets
|
||||
wayland use the DRI driver and the hardware for implementing buffer
|
||||
swaps. Eagle needs to be compiled against the dri_interface.h from
|
||||
this branch to be able to use the CopyBuffer extension.
|
||||
|
||||
To run wayland you currently need intel hardware, a kernel with gem
|
||||
and kernel modesetting, and it is necessary to set a couple of
|
||||
environment variables. First, set LD_LIBRARY_PATH:
|
||||
|
||||
export LD_LIBRARY_PATH=$PWD:$PWD/../eagle
|
||||
|
||||
Yes, this sucks, but libtool sucks more. Then to let eagle pick up
|
||||
the custom dri driver, set
|
||||
|
||||
export EAGLE_DRIVER_PATH=$PWD/../mesa/lib
|
||||
|
||||
and finally set up the path to the evdev device to use as a pointer
|
||||
device:
|
||||
|
||||
export WAYLAND_POINTER=/dev/by-id/whatever-it's-called-event-mouse
|
||||
|
||||
If you haven't already, load the i915 driver with modesetting:
|
||||
|
||||
modprobe i915 modeset=1
|
||||
|
||||
You may need to unload it first, if it's loaded already. Also, on
|
||||
Fedora, there may be a bogus /etc/modprobe.d/i915modeset preventing
|
||||
the modeset paramater from reaching the module. Nuke it.
|
||||
|
||||
At this point you should be able to launch wayland and a couple of
|
||||
clients. Try something like:
|
||||
|
||||
./wayland &
|
||||
./background <some png/jpg image smaller than 1024x768> &
|
||||
./flower &
|
||||
./flower &
|
||||
./flower &
|
||||
./window &
|
||||
./pointer &
|
||||
|
||||
Maybe some day there'll be a script that does all this. Some day...
|
||||
|
||||
And after all this work it may still not work or even oops your
|
||||
kernel. It's very much work in progress, so be prepared.
|
||||
|
||||
cheers,
|
||||
Kristian
|
@ -484,7 +484,13 @@ static const char input_device_file[] =
|
||||
static void
|
||||
wl_display_create_input_devices(struct wl_display *display)
|
||||
{
|
||||
display->pointer = wl_input_device_create(display, input_device_file, 1);
|
||||
const char *path;
|
||||
|
||||
path = getenv("WAYLAND_POINTER");
|
||||
if (path == NULL)
|
||||
path = input_device_file;
|
||||
|
||||
display->pointer = wl_input_device_create(display, path, 1);
|
||||
|
||||
if (display->pointer != NULL)
|
||||
wl_hash_insert(&display->objects, display->pointer);
|
||||
|
Loading…
Reference in New Issue
Block a user