Kristian Høgsberg | 33a52bd | 2008-11-03 15:31:30 -0500 | [diff] [blame^] | 1 | This file describes how to build and run wayland. See NOTES for what |
| 2 | wayland is or maybe will be some day. |
| 3 | |
| 4 | Wayland requires the eagle EGL stack available from |
| 5 | |
| 6 | git://people.freedesktop.org/~krh/eagle |
| 7 | |
| 8 | and currently assumes that eagle is checked out in a sibling |
| 9 | directory, for example: |
| 10 | |
| 11 | ~krh/src/wayland and |
| 12 | ~krh/src/eagle |
| 13 | |
| 14 | Eagle should work with a recent DRI driver from mesa, but I have mesa |
| 15 | repo with an eagle branch here: |
| 16 | |
| 17 | git://people.freedesktop.org/~krh/mesa |
| 18 | |
| 19 | which provides and experimental DRI CopyBuffer extension, that lets |
| 20 | wayland use the DRI driver and the hardware for implementing buffer |
| 21 | swaps. Eagle needs to be compiled against the dri_interface.h from |
| 22 | this branch to be able to use the CopyBuffer extension. |
| 23 | |
| 24 | To run wayland you currently need intel hardware, a kernel with gem |
| 25 | and kernel modesetting, and it is necessary to set a couple of |
| 26 | environment variables. First, set LD_LIBRARY_PATH: |
| 27 | |
| 28 | export LD_LIBRARY_PATH=$PWD:$PWD/../eagle |
| 29 | |
| 30 | Yes, this sucks, but libtool sucks more. Then to let eagle pick up |
| 31 | the custom dri driver, set |
| 32 | |
| 33 | export EAGLE_DRIVER_PATH=$PWD/../mesa/lib |
| 34 | |
| 35 | and finally set up the path to the evdev device to use as a pointer |
| 36 | device: |
| 37 | |
| 38 | export WAYLAND_POINTER=/dev/by-id/whatever-it's-called-event-mouse |
| 39 | |
| 40 | If you haven't already, load the i915 driver with modesetting: |
| 41 | |
| 42 | modprobe i915 modeset=1 |
| 43 | |
| 44 | You may need to unload it first, if it's loaded already. Also, on |
| 45 | Fedora, there may be a bogus /etc/modprobe.d/i915modeset preventing |
| 46 | the modeset paramater from reaching the module. Nuke it. |
| 47 | |
| 48 | At this point you should be able to launch wayland and a couple of |
| 49 | clients. Try something like: |
| 50 | |
| 51 | ./wayland & |
| 52 | ./background <some png/jpg image smaller than 1024x768> & |
| 53 | ./flower & |
| 54 | ./flower & |
| 55 | ./flower & |
| 56 | ./window & |
| 57 | ./pointer & |
| 58 | |
| 59 | Maybe some day there'll be a script that does all this. Some day... |
| 60 | |
| 61 | And after all this work it may still not work or even oops your |
| 62 | kernel. It's very much work in progress, so be prepared. |
| 63 | |
| 64 | cheers, |
| 65 | Kristian |