I made a VM of Trixbox for use with Citrix XenServer (5.6).
The VM is in .xva format so you can import it right away in XenServer, all yum updates are done (as of 06 dec. 2010) and latest Xen-Tools are installed.
Download it: trixbox- (589MB)

root password: trixbox
IP: Automatic (via DHCP)
Disk: 30GB

How did I get Trixbox working under XenServer with Xen-Tools?

This guide is thanks to (copied from) rebuke at the Trixbox Forums.

  • Download
    Download the Trixbox 2.8 ISO from www.trixbox.org
  • Install Trixbox
    In XenCenter, create a new VM based on ‘Other install media’ template and use the downloaded ISO to boot from. Follow the whole Trixbox installation process and when finished do a ‘yum update all’
  • Change the boot order
    Using XenCenter, change the boot order of the VM and set harddisk as first boot device, then CD/DVD.
  • Change GRUB config
    Modify /etc/grub.conf and set the Xen kernel as default:




    Modify the first stanza from:

    title trixbox (2.6.18-164.11.1.el5xen)
    root (hd0,0)
    kernel /xen.gz-2.6.18-164.11.1.el5
    module /vmlinuz-2.6.18-164.11.1.el5xen ro root=LABEL=/
    module /initrd-2.6.18-164.11.1.el5xen.img


    title trixbox (2.6.18-164.11.1.el5xen)
    root (hd0,0)
    kernel /vmlinuz-2.6.18-164.11.1.el5xen ro root=LABEL=/ console=xvc0
    initrd /initrd-2.6.18-164.11.1.el5xen.img
  • Rebuild initrd
    Rebuild the initrd for the xen kernel (the automatically generated one is missing some xen modules):

    rm -f /boot/initrd-2.6.18-164.11.1.el5xen.img
    mkinitrd --with=xenblk --with=xennet /boot/initrd-2.6.18-164.11.1.el5xen.img 2.6.18-164.11.1.el5xen
  • Disable Kudzu
    Otherwise network will go wrong later.

    chkconfig --del kudzu
  • Install Xen version of dahdi
    yum install -y kmod-dahdi-linux-xen
  • Conigure console access
    Modify /etc/inittab so you get a local console. Change this section:

    # Run gettys in standard runlevels
    1:2345:respawn:/sbin/mingetty tty1
    2:2345:respawn:/sbin/mingetty tty2
    3:2345:respawn:/sbin/mingetty tty3
    4:2345:respawn:/sbin/mingetty tty4
    5:2345:respawn:/sbin/mingetty tty5
    6:2345:respawn:/sbin/mingetty tty6


    # Run gettys in standard runlevels
    co:2345:respawn:/sbin/agetty xvc0 9600 vt100-nav
    #1:2345:respawn:/sbin/mingetty tty1
    #2:2345:respawn:/sbin/mingetty tty2
    #3:2345:respawn:/sbin/mingetty tty3
    #4:2345:respawn:/sbin/mingetty tty4
    #5:2345:respawn:/sbin/mingetty tty5
    #6:2345:respawn:/sbin/mingetty tty6

    Allow root logins at xvc0:

    echo xvc0 >> /etc/securetty
  • Make the VM paravirtualized
    First shutdown the VM.
    Then at the Xen host run: (replace trixbox- with the name of the VM)

    vm=$(xe vm-list name-label=trixbox- --minimal)
    xe vm-param-set uuid=$vm PV-bootloader=pygrub HVM-boot-policy=
    xe vm-param-set uuid=$vm PV-args=utf8

    Make the hard disk PV bootable:

    vbd=$(xe vm-disk-list uuid=$vm vdi-params=none --minimal)
    xe vbd-param-set uuid=$vbd bootable=true

    Close and reopen xencenter (this is needed for the KB/mouse to work properly)

    Start the VM

    Once booted, put the xs-tools.iso in the drive in order to install the Xen Tools (note we don’t install the XenServer provided kernel, as this will break the dahdi modules).

    mount /dev/xvdd /mnt
    /mnt/Linux/install.sh -k


  • Finished!
    Now you have a Trixbox VM running on XenServer with Xen Tools. Enjoy!

Again, thanks to rebuke!