SCSI drives on aarch64 use lsi53c895a instead of virtio-scsi-pci, breaking CD-ROM detection
- Dominant language
- Swift
- Stars
- 35.5k
- Forks
- 1.8k
- Avg merge
- 5d 5h
- Merged PRs (30d)
- 7
Description
### Describe the issue
When adding a SCSI drive (removable, CD/DVD) to an aarch64 VM via the UTM UI, UTM emits `-device lsi53c895a,id=scsi0` as the SCSI controller. Most ARM Linux kernels (including Rocky Linux, Fedora, Ubuntu cloud images) do not ship the `lsi53c895a` driver for aarch64, so the drive silently fails to appear in the guest.
This breaks cloud-init workflows where a `cidata`-labeled seed ISO needs to present as a CD-ROM device. The ISO is never detected by the guest kernel, so `ds-identify` finds no datasource and disables cloud-init.
### Expected behavior
On aarch64, UTM should emit `-device virtio-scsi-pci,id=scsi0` instead of `-device lsi53c895a,id=scsi0`, consistent with how other VirtIO devices are handled on ARM.
### Workaround
Manually adding QEMU arguments works:
```
-device virtio-scsi-pci,id=scsi1
-drive file=/path/to/seed.iso,if=none,id=cd0,media=cdrom,readonly=on
-device scsi-cd,drive=cd0,bus=scsi1.0
```
### Steps to reproduce
1. Create a new aarch64 VM (Virtualize → Other → skip ISO boot)
2. Import an aarch64 cloud image qcow2 as VirtIO drive
3. Add a new drive: Removable, SCSI interface
4. Mount a cloud-init seed ISO into the removable slot
5. Boot the VM
6. Observe: no `/dev/sr0`, no CD-ROM detected in `dmesg`
7. Run `ps aux | grep qemu` on the host — confirms `-device lsi53c895a,id=scsi0`
### Evidence from QEMU command line
UTM generates:
```
-device lsi53c895a,id=scsi0
-device scsi-cd,bus=scsi0.0,channel=0,scsi-id=0,drive=drive274AE1F0-...,bootindex=0
-drive if=none,media=cdrom,id=drive274AE1F0-...,file.filename=/path/to/seed.iso,file.locking=off,readonly=on
```
Guest kernel dmesg shows only:
```
SCSI subsystem initialized
scsi host0: Virtio SCSI HBA
```
The `lsi53c895a` controller is not detected. No `sr0` device is created.
### Environment
- UTM 4.7.4
- macOS on Apple Silicon (M3 Max)
- Guest: Rocky Linux 9.7 aarch64 (Rocky GenericCloud image, kernel 5.14.0-611.5.1.el9_7.aarch64)
- Same issue expected on any aarch64 guest without lsi53c895a driver
### Related issues
- #7008 — Same root cause (wrong SCSI controller type) was fixed for m68k in v4.7.1 but not generalized to aarch64
- #6201 — cloud-init seed.iso discussion, where users resort to raw QEMU args as workaround
Contributor guide
Assessment
This issue has not been assessed yet.