NIRVANA

7 Aprile 2017, raggiunto il Nirvana della virtualizzazione spinta. Avessi immaginato gli incredibili benefici di passare da BIOS a UEFI, l’avrei fatto il prima possibile: il supporto in KVM/libvirt/QEMU/virt-manager è novità recente, ma non ha mai ispirato tanta fiducia.

Ebbene sì, il Cray-1 è rinato al punto che ho messo da parte l’idea di ricostruire il PC con ferraglia più recente, solo magari per avere accesso ad una porta PCI-e x16 in più. Grazie a UEFI sono riuscito a recuperare l’utilizzo della scheda grafica integrata nello Xeon, che in modalità BIOS grazie ai bachi di Intel era inaccessibile. Mi è anche venuto il pallino di provare a vedere lo stato delle cose dal punto di vista vhackintosh: il proliferare di guide su come fare a creare una macchina virtuale KVM con tanto di hardware assegnato mi ha fatto ben sperare. Il fiorire di booloader basati non più su BIOS ma su EFI è incredibilmente incoraggiante. C’è persino qualcuno che sta implementando il parsing di HFS+ in TianoCore, il firmware UEFI open source utilizzato per far girare questo tipo di macchine virtuali.

Qualche piccolo ostacolo: l’ultimo aggiornamento di MacOS è incompatibile con l’implementazione corrente del pezzo di software virtuale che emula il chippettino proprietario di Apple, ma c’è già una patch che coinvolge un singolo file in tutto QEMU. Come si fa a non provare?

Armato di tantissima pazienza ho persino imparato un paio di cose su Ubuntu/Linux: ad esempio una volta configurato il file del repository è possibile scaricare il sorgente di qualsiasi app di sistema con un paio di comandi. Ricompilare, una volta ravanata la configurazione dei flag di compilazione, è stato un gioco da ragazzi. E se poi si volesse prevenire l’aggiornamento dell’app patchata ad hoc, c’è sempre il pinning.

La grana successiva: Apple non riconosce i controller USB dei chipset intel onnipresenti. È bastato comprare un controller PCI-e dedicato con supporto OSX nativo basato sui chip Fresco Logic per risolverla. L’ultimo corpo estraneo nella configurazione della macchina virtuale è rimasto il boot-loader. Se si volesse fare a meno di virt-manager/libvirt e accontentarsi di lanciare la macchina virtuale da riga di comando, la soluzione persino c’è. Last but not least, le versioni di Kernel successive alla 4.7 (e per fortuna per Ubuntu 16.04 LTS è disponibile la 4.8), rendono inutili un altro piccolo pezzo di configurazione da fare a mano. Insomma in tre parole: si può fare. Fine dell’esperimento.

Cos’è quindi il Nirvana? Sapere che il Cray-1 a livello SW non è più un accrocchio di patch e ricami per supportare questo e quell’altro (Solaris, il passthrough della scheda grafica con supporto al boot, ZFS, SMB, ecc. ecc.), ma qualcosa che funziona sempre più completamente out-of-the-box, oggi giorno una rarità. Peccato solo aver dovuto abbandonare Windows 7: i suoi ultimi bit sono stati sparsi al vento un paio di ore fa.

-quack

P.S. KVM/libvirt/qemu è una figata.