VMware ESXi es una herramienta excelente de virtualización gratuita, sobre todo para pequeñas y medianas empresas, pero con una gran pega, y es que el hardware que soporta está bastante limitado.
El caso concreto es tengo un servidor al que necesitaba ponerle una ethernet gigabit para conectarlo a un iSCSI en red y la única tarjeta de la que he podido disponer es una Gigabit Marvell 88E8001 que desgraciadamente no está soportada oficialmente.
Afortunadamente leyendo en internet encontré un post en un blog en el que comentaban un caso similar y que explican como compilar el driver para cargarlo posteriormente en el ESXi. En un comentario del mismo post alguien cuelga el modulo.o preparado para cargarlo.
El modulo en cuestión se puede descargar de aqui mismo.
En este ejemplo en concreto usaré ESXi Live desde pen drive, que modificaré accediendo por ssh a la máquina ESXi que ha usado ese mismo pen drive para arrancar.
Para realizar cambios en el sistema de ESXi Live hay que modificar el archivo oem.tgz que hay normalmente en la partición 5 del pen, o desde ESXi, /vmfs/volumes/Hypervisor1. Creamos un directorio temporal dentro de /tmp y lo descomprimimos ahí:
~ # cd /tmp
/tmp # mkdir tmp
/tmp # cd tmp
/tmp/tmp # tar xvzf /vmfs/volumes/Hypervisor1/oem.tgz
Ahora se nos ha creado una pequeña estructura de directorios entre los que se encuentran ‘etc’ y ‘usr’. Una vez descargado el módulo, tendremos que copiarlo en el directorio usr/lib/vmware/vmkmod de la estructura descomprimida:
/tmp/tmp # cd ..
/tmp # wget http://karman.cc/blog/descargas/skge-for-esxi4-test2.tar.gz
/tmp # tar xvzf skge-for-esxi4-test2.tar.gz
/tmp # mv skge.o tmp/usr/lib/vmware/vmkmod
Ahora que hemos copiado el modulo necesitamos que vmware ESXi nos reconozca la tarjeta y la cargue al inicio de la máquina, por lo que también tendremos que copiar el archivo /etc/vmware/simple.map dentro de la estructura de directorios:
/tmp # cp /etc/vmware/simple.map tmp/etc/vmware
Y ahora lo editaremos, añadiendo el PCIID de nuestra tarjeta de red y el nombre del módulo que necesitamos para cargarlo en el formato PCI:ID 0000:0000 modulo.o. En mi caso concreto, el PCIID de la tarjeta ethernet DLink que usa este chipset es 1186:4b01, por lo que habría que añadir 1186:4b01 0000:0000 network skge.o:
/tmp # echo “1186:4b01 0000:0000 network skge.o” >> tmp/etc/vmware/simple.map
Tareamos y gzipeamos la estructura y volvemos a poner el oem.tgz en donde estaba:
/tmp # cd tmp
/tmp/tmp # tar -czf ../oem.tgz *
/tmp/tmp # mv ../oem.tgz /vmfs/volumes/Hypervisor1
Y si todo ha ido bien, la próxima vez que reiniciemos el ordenador tendremos el módulo cargado con la ethernet reconocida y funcionando :)
Fuente: http://www.kernelcrash.com/blog/using-a-marvell-lan-card-with-esxi-4/2009/08/22/