There are two main ways to run and debug Xegl. Over a network or using two video cards in the same machine. I use the two video card method.
Two video card method
- I run the normal X server on a PCI Rage128 AIW card. My target hardware is an AGP Radeon 9000. This script will set all of the devices up correctly. vbios.vm86 is my hacked tool for resetting a secondary video card using it VBIOS ROM. I run with the drm-no-root patch so all of the devices need to have their permissions set so that a normal user can access them. A some point PAM will do this automatically. The sleep is necessary in order to give udev time to build the device nodes.
#!/bin/sh vbios.vm86 rmmod radeonfb rmmod fb rmmod radeon rmmod drm modprobe radeon debug=1 insmod /home/mesa/drm/linux-core/drm.ko debug=1 insmod /home/mesa/drm/linux-core/radeon.ko sleep 2 chmod 666 /sys/class/graphics/fb0/* chmod 755 /sys/class/graphics/fb0/device chmod 666 /dev/input/* chmod 666 /dev/dri/*
Next make sure your paths are ok and run Xegl. I don't bother installing mesa so I run it directly out of the build tree.$ export LD_LIBRARY_PATH=/home/mesa/lib:/opt/xegl/lib $ /opt/xegl/bin/Xegl :1 -ac -screen 1024x768
Now you can use any normal debugger to work on Xegl. I am using gdb and kdevelop. You can also run a window manager and some apps.$ DISPLAY=:1 metacity $ DISPLAY=:1 xclock
Two machine and a net method
- In this method each machine has a single video card and remote gdb is used. I don't work this way so maybe someone else will contribute a description.