mirror of
https://gitlab.freedesktop.org/wayland/weston
synced 2024-07-23 11:44:14 +00:00
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
|
static void
|
||||||
wl_display_create_input_devices(struct wl_display *display)
|
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)
|
if (display->pointer != NULL)
|
||||||
wl_hash_insert(&display->objects, display->pointer);
|
wl_hash_insert(&display->objects, display->pointer);
|
||||||
|
|
Loading…
Reference in a new issue