openstack spice声音重定向

openstack 声卡重定向代码修改

声卡重定向代码修改,这样使用Remote viewer软件就可以播放虚拟机的声音的

/nova/virt/libvirt/config.py 文件末尾添加


class LibvirtConfigGuestSound(LibvirtConfigObject):

    def __init__(self, **kwargs):
        super(LibvirtConfigGuestSound,
              self).__init__(root_name='sound')

        self.model = 'ich6'

    def format_dom(self):
        meta = self._new_node('sound')
        meta.set('model', str(self.model))
        return meta

nova/virt/libvirt/driver.py 把_guest_add_spice_sound方法添加上

    @staticmethod
    def _guest_add_memory_balloon(guest):
        # Memory balloon device only support 'qemu/kvm' hypervisor
        if (
            CONF.libvirt.virt_type in ('qemu', 'kvm') and
            CONF.libvirt.mem_stats_period_seconds > 0
        ):
            balloon = vconfig.LibvirtConfigMemoryBalloon()
            balloon.model = 'virtio'
            balloon.period = CONF.libvirt.mem_stats_period_seconds
            guest.add_device(balloon)
	#add  添加这个方法
    @staticmethod
    def _guest_add_spice_sound(guest):
        if (
            CONF.spice.enabled and
            CONF.libvirt.virt_type != 'lxc'
        ):
            sounddev = vconfig.LibvirtConfigGuestSound()
            guest.add_device(sounddev)
    #end
    @staticmethod
    def _guest_add_watchdog_action(guest, flavor, image_meta):
        # image meta takes precedence over flavor extra specs; disable the
        # watchdog action by default
        watchdog_action = (flavor.extra_specs.get('hw:watchdog_action') or
                           'disabled')
        watchdog_action = image_meta.properties.get('hw_watchdog_action',
                                                    watchdog_action)
        # NB(sross): currently only actually supported by KVM/QEmu
        if watchdog_action != 'disabled':
            if watchdog_action in fields.WatchdogAction.ALL:
                bark = vconfig.LibvirtConfigGuestWatchdog()
                bark.action = watchdog_action
                guest.add_device(bark)
            else:
                raise exception.InvalidWatchdogAction(action=watchdog_action)

nova/virt/libvirt/driver.py 在 self._guest_add_spice_channel(guest)下边添加 self._guest_add_spice_sound(guest)这个方法即可

        self._guest_add_spice_channel(guest)
        self._guest_add_spice_sound(guest)

参考github

kerbside-patches/nova/patch020-add-sound-device.patch at develop · shakenfist/kerbside-patches (github.com)

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值