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.

Jon Smirl - Aug 8, 2005