Compare commits

..

2 commits

Author SHA1 Message Date
5d157ec64d
f-36: qemu: fix pci.0 addr
All checks were successful
Pre Release Workflow / set-release-target (push) Successful in 1s
Pre Release Workflow / build (agent, amd64, linux) (push) Successful in 2m4s
Pre Release Workflow / build (metadata, amd64, linux) (push) Successful in 1m30s
Pre Release Workflow / upload-scripts (run-dnsmasq-in-netns.sh) (push) Successful in 6s
Pre Release Workflow / prerelease (push) Successful in 9s
Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
2026-08-10 22:14:33 +02:00
fbe6496e1e
f-36: disk: check disk with vdX is only one
Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
2026-08-10 22:13:48 +02:00

View file

@ -53,14 +53,19 @@ func Start(cfg Config) error {
}
hasScsi := false
virtioBlk := 0
for _, d := range cfg.Disks {
if strings.HasPrefix(d.Dev, "sd") {
hasScsi = true
break
} else {
virtioBlk++
}
}
if virtioBlk > 1 {
return fmt.Errorf("qemu: %d disques virtio-blk (vd*) déclarés, un seul est supporté — utiliser des disques sd* pour les disques additionnels", virtioBlk)
}
if hasScsi {
args = append(args, "-device", "virtio-scsi-pci,id=scsi0")
args = append(args, "-device", "virtio-scsi-pci,id=scsi0,bus=pci.0,addr=0x1e")
}
sorted := make([]DiskConfig, len(cfg.Disks))
@ -87,14 +92,14 @@ func Start(cfg Config) error {
} else {
args = append(args,
"-drive", fmt.Sprintf("file=%s,if=none,id=%s", d.Path, d.Dev),
"-device", fmt.Sprintf("virtio-blk-pci,drive=%s,bootindex=%d", d.Dev, bootindex),
"-device", fmt.Sprintf("virtio-blk-pci,drive=%s,bus=pci.0,addr=0x1f,bootindex=%d", d.Dev, bootindex),
)
}
}
args = append(args,
"-netdev", fmt.Sprintf("tap,id=net0,ifname=tap%d,script=no,downscript=no", cfg.TapID),
"-device", fmt.Sprintf("virtio-net-pci,netdev=net0,mac=%s", cfg.Mac),
"-device", fmt.Sprintf("virtio-net-pci,netdev=net0,mac=%s,bus=pci.0,addr=0x03", cfg.Mac),
"-daemonize",
)