Nuestra eth0 usa el módulo atl1c en el bus PCI 08:00.0. Básicamente vamos a hacer que dom0 no haga uso de eth0 para hacer un pass-through del dispositivo y que sea visible (y usable :) por netvm.
Nos aseguramos que Qubes está arrancando con soporte VT-d.
[hielo@cubitera ~]$ xm dm | egrep 'DMAR|VMX' (XEN) ACPI: DMAR BFF8E8C0, 0108 (r1 081309 DMAR1426 20090813 MSFT 97) (XEN) VMX: Supported advanced features: (XEN) HVM: VMX enabled
A los parámetros de arranque del kelmer añadimos:
iommu=pv iommu_inclusive_mapping=1 xen-pciback.hide=(08:00.0)
Creamos /etc/modprobe.d/xen-pciback.conf con:
options xen-pciback hide=(08:00.0) verbose_request=1 install atl1c /sbin/modprobe xen-pciback ; /sbin/modprobe --first-time --ignore-install atl1c
Ahora al cargar el módulo aparece en la salida de dmesg:
[root@cubitera ~]# dmesg -c pciback 0000:08:00.0: seizing device pciback 0000:08:00.0: enabling device (0000 -> 0003) xen: registering gsi 17 triggering 0 polarity 1 xen_allocate_pirq: returning irq 17 for gsi 17 xen: --> irq=17 Already setup the GSI :17 pciback 0000:08:00.0: PCI INT A -> GSI 17 (level, low) -> IRQ 17
Configuramos Qubes para que use como default-netvm netvm en lugar de dom0.
[root@cubitera ~]# /etc/init.d/network stop
Shutting down interface wlan0: [ OK ]
Shutting down loopback interface: [ OK ]
Disabling IPv4 packet forwarding: net.ipv4.ip_forward = 0
[ OK ]
[root@cubitera ~]# qvm-set-default-netvm netvm
[root@cubitera ~]# /etc/init.d/network start
Bringing up loopback interface: [ OK ]
Bringing up interface eth0: Device eth0 does not seem to be present, delaying initialization.
[FAILED]
[root@cubitera ~]# qvm-ls
---------------+----+---------+-------+------+-----------+--------+--------+
name | on | state | updbl | type | template | netvm | label |
---------------+----+---------+-------+------+-----------+--------+--------+
{dom0} | * | Running | Yes | Net | n/a | n/a | gray |
{netvm} | | Halted | Yes | Net | n/a | n/a | red |
=>[linux-x64] | | Halted | Yes | Tpl | n/a | *netvm | gray |
personal | | Halted | | | linux-x64 | *netvm | yellow |
[root@cubitera ~]# Y añadimos en /var/lib/quebes/servicevm/netvm.conf el parámetro de arranque del kernel:
iommu=soft
Ya tenemos a la VM personal recorriendo la peligrosa selva de internet a través de netvm.
-- Saludos de #linux, tu canal donde siempre hay un operador de guardia.

No hay comentarios:
Publicar un comentario