XenServer内核模块编译过程详解
Citrix提供了DDK(Driver Development Kit)来支持在XenServer中要构建自定义的内核模块或硬件驱动。DDK是一个OVA格式的虚拟机镜像,包含了内核头文件和编译器等开发工具。
下面介绍使用DDK构建内核模块的步骤。
首先从官方下载相应版本DDK,这里选择6.5: http://downloadns.citrix.com.edgesuite.net/10106/XenServer-6.5.0-DDK.iso
将下载的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-] 退出。
您可能感兴趣的文章:
- hello内核模块编译的全过程
- 编写、编译、安装、移除一个内核模块的基本过程,不能再简单了的
- ubuntu11.10下为android模拟器编译内核到为android开发内核模块(.ko文件)全过程纪实
- linux 2.6内核 编译模块Makefile 详解!
- Linux内核编译过程详解
- 内核模块编译练习--初认识编译过程(1)
- Linux内核编译过程详解(kernel2.6.7) 转
- ubuntu11.10下为android模拟器编译内核到为android开发内核模块(.ko文件)全过程纪实
- Linux内核编译过程详解 | 流星雪
- linux 2.6内核 编译模块Makefile 详解
- linux 2.6内核 编译模块Makefile 详解
- 内核模块编译过程摘要记录
- 内核模块编写,编译,加载和卸载过程
- Linux设备驱动开发详解-第4章(一)-hello模块编译过程
- LINUX内核编译过程详解[UBUNTU9.04 kernel 2.6.28.9]
- 编译内核全过程(kernel2.6.7)(原创)
- FreeBSD编译内核详解
- 菜鸟浅谈Linux内核编译过程
- 2.6内核模块的编写框架和编译方法
- 编译内核NTFS模块(RHEL3.0)