当前位置: 移动技术网 > 网络运营>服务器>虚拟主机 > XenServer内核模块编译过程详解

XenServer内核模块编译过程详解

2019年04月19日  | 移动技术网网络运营  | 我要评论

citrix提供了ddk(driver development kit)来支持在xenserver中要构建自定义的内核模块或硬件驱动。ddk是一个ova格式的虚拟机镜像,包含了内核头文件和编译器等开发工具。

下面介绍使用ddk构建内核模块的步骤。

首先从官方下载相应版本ddk,这里选择6.5:

将下载的iso文件上传到xenserver宿主机上

挂载iso

mkdir /mnt/tmp
mount <path_to_ddk>/ddk.iso /mnt/tmp -o loop


使用ddk镜像创建虚拟机

xe vm-import filename=/mnt/tmp/ova.xml
xe vm-import 命令会用该镜像创建一个虚拟机,并会输出该虚拟机的uuid,如:

[root@xenserver-iryatlxz ~]# xe vm-import filename=/mnt/tmp/ddk/ova.xml
69a2356e-5f7f-0fd8-a609-234a28b59fc5

接下来找到eth0关联的网络uuid。 首先列出所有网络:

xe network-list

输出如下:

uuid ( ro)        : e0f9ba3d-f27b-7380-413a-0491db9e0ec4
     name-label ( rw): pool-wide network associated with eth1
  name-description ( rw):
       bridge ( ro): xenbr1


uuid ( ro)        : 46fb28dd-4c35-5755-160b-f6389e09c54a
     name-label ( rw): pool-wide network associated with eth0
  name-description ( rw):
       bridge ( ro): xenbr0


uuid ( ro)        : 0ecf8369-5469-1327-2195-f3cc28a1b3bd
     name-label ( rw): host internal management network
  name-description ( rw): network on which guests will be assigned a private link-local ip address which can be used to talk xenapi
       bridge ( ro): xenapi

从中找到eth0关联的网络uuid,为:

46fb28dd-4c35-5755-160b-f6389e09c54a

使用上面得到的网络uuid和虚拟机uuid创建虚拟接口:

xe vif-create network-uuid=46fb28dd-4c35-5755-160b-f6389e09c54a  vm-uuid=69a2356e-5f7f-0fd8-a609-234a28b59fc5 device=0

启动虚拟机

xe vm-start uuid=69a2356e-5f7f-0fd8-a609-234a28b59fc5

可以使用xencenter的控制台来访问ddk虚拟机,也可以直接在命令行使用xenconsole来访问。

使用xenconsole访问的步骤如下:

获取domain id

[root@xenserver-iryatlxz ~]# xe vm-list params=dom-id uuid=69a2356e-5f7f-0fd8-a609-234a28b59fc5 --minimal
14

从console连接该虚拟机 /usr/lib64/xen/bin/xenconsole 14

登录到ddk vm后,就可以在该虚拟机中构建自定义的内核模块或硬件驱动了。内核开发包位于 /usr/src/kernels/3.10.0+2-x86_64/ 。

需要退出时,按 ctrl-] 退出。

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网