mirror of
https://github.com/yunionio/cloudpods.git
synced 2026-10-30 18:23:35 +08:00
fix: fail to start arm vm
This commit is contained in:
@@ -850,10 +850,9 @@ func (self *SKVMGuestDriver) validateVGA(ovdi, ovga string, nvdi, nvga *string)
|
||||
|
||||
func (self *SKVMGuestDriver) validateMachineType(machine string, osArch string) error {
|
||||
var candidate []string
|
||||
switch osArch {
|
||||
case apis.OS_ARCH_AARCH64:
|
||||
if apis.IsARM(osArch) {
|
||||
candidate = []string{api.VM_MACHINE_TYPE_ARM_VIRT}
|
||||
default:
|
||||
} else {
|
||||
candidate = []string{api.VM_MACHINE_TYPE_PC, api.VM_MACHINE_TYPE_Q35}
|
||||
}
|
||||
if !utils.IsInStringArray(machine, candidate) {
|
||||
|
||||
@@ -1663,6 +1663,10 @@ func (s *SKVMGuestInstance) generateDiskParams(disks []api.GuestdiskJsonDesc, is
|
||||
firstDriver := make(map[string]bool)
|
||||
for _, disk := range disks {
|
||||
driver := disk.Driver
|
||||
if isArm && (driver == DISK_DRIVER_IDE || driver == DISK_DRIVER_SATA) {
|
||||
// unsupported configuration: IDE controllers are unsupported
|
||||
driver = DISK_DRIVER_SCSI
|
||||
}
|
||||
if driver == DISK_DRIVER_SCSI || driver == DISK_DRIVER_PVSCSI {
|
||||
if _, ok := firstDriver[driver]; !ok {
|
||||
switch driver {
|
||||
@@ -1670,7 +1674,7 @@ func (s *SKVMGuestInstance) generateDiskParams(disks []api.GuestdiskJsonDesc, is
|
||||
// FIXME: iothread will make qemu-monitor hang
|
||||
// REF: https://www.mail-archive.com/qemu-devel@nongnu.org/msg592729.html
|
||||
// cmd += " -device virtio-scsi-pci,id=scsi,iothread=iothread0,num_queues=4,vectors=5"
|
||||
cmd += " -device virtio-scsi-pci,id=scsi"
|
||||
cmd += " -device virtio-scsi-pci,id=scsi,num_queues=4,vectors=5"
|
||||
case DISK_DRIVER_PVSCSI:
|
||||
cmd += " -device pvscsi,id=scsi"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user