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