mirror of https://gitee.com/openkylin/libvirt.git
libxl: Recognise ARM architectures
Only tested on v7 but the v8 equivalent seems pretty obvious. XEN_CAP_REGEX already accepts more than it should (e.g. x86_64p or x86_32be) but I have stuck with the existing pattern. With this I can create a guest from: <domain type='xen'> <name>libvirt-test</name> <uuid>6343998e-9eda-11e3-98f6-77252a7d02f3</uuid> <memory>393216</memory> <currentMemory>393216</currentMemory> <vcpu>1</vcpu> <os> <type arch='armv7l' machine='xenpv'>linux</type> <kernel>/boot/vmlinuz-arm-native</kernel> <cmdline>console=hvc0 earlyprintk debug root=/dev/xvda1</cmdline> </os> <clock offset='utc'/> <on_poweroff>destroy</on_poweroff> <on_reboot>restart</on_reboot> <on_crash>destroy</on_crash> <devices> <disk type='block' device='disk'> <source dev='/dev/marilith-n0/debian-disk'/> <target dev='xvda1'/> </disk> <interface type='bridge'> <mac address='8e:a7:8e:3c:f4:f6'/> <source bridge='xenbr0'/> </interface> </devices> </domain> Using virsh create and I can destroy it too. Currently virsh console fails with: Connected to domain libvirt-test Escape character is ^] error: internal error: cannot find character device <null> I haven't investigated yet. Signed-off-by: Ian Campbell <ian.campbell@citrix.com> Signed-off-by: Eric Blake <eblake@redhat.com>
This commit is contained in:
parent
1600966749
commit
bf5dbce61e
|
@ -61,7 +61,7 @@ struct guest_arch {
|
|||
int ia64_be;
|
||||
};
|
||||
|
||||
#define XEN_CAP_REGEX "(xen|hvm)-[[:digit:]]+\\.[[:digit:]]+-(x86_32|x86_64|ia64|powerpc64)(p|be)?"
|
||||
#define XEN_CAP_REGEX "(xen|hvm)-[[:digit:]]+\\.[[:digit:]]+-(aarch64|armv7l|x86_32|x86_64|ia64|powerpc64)(p|be)?"
|
||||
|
||||
|
||||
static virClassPtr libxlDriverConfigClass;
|
||||
|
@ -320,8 +320,11 @@ libxlCapsInitGuests(libxl_ctx *ctx, virCapsPtr caps)
|
|||
}
|
||||
else if (STRPREFIX(&token[subs[2].rm_so], "powerpc64")) {
|
||||
arch = VIR_ARCH_PPC64;
|
||||
} else if (STRPREFIX(&token[subs[2].rm_so], "armv7l")) {
|
||||
arch = VIR_ARCH_ARMV7L;
|
||||
} else if (STRPREFIX(&token[subs[2].rm_so], "aarch64")) {
|
||||
arch = VIR_ARCH_AARCH64;
|
||||
} else {
|
||||
/* XXX arm ? */
|
||||
continue;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue