Aggiunta dei vmware tools a FreeNAS
Ecco come installare gli open-vm-tools nell'ultima versione della FreeNAS, la 0.69RC2 (Kralizec)La difficoltà sta nel fatto che FreeBSD non è più supportato da VMware, e quindi per le versioni recenti di FreeBSD, la 6.4 e la 7.0, non si trovano più i binari dei vmware tools direttamente dentro ESXi. Per fortuna VMware ha rilasciato "open" i sorgenti, e quindi si può partire da quelli. Mentre però in altri casi, come ad esempio il firewall pfSense, basato su FreeBSD 7.0, si trova un package con i binari già pronti, per FreeNAS ed in generale per FreeBSD 6.4 non sono riuscito a trovare niente. Ecco a seguire come ho fatto da solo.
Per prima cosa mi sono creato, non avendolo la FreeNAS a bordo, un ambiente di sviluppo. Ho creato quindi una nuova macchina virtuale...
Bios: remove floppy, boot sequence
FreeBSD 6.4-RELEASE-amd64, name=freebsd_64
Ne ho fatto un'installazione adeguatamente spaziosa (8GB) a partire dalla Standard Install in versione "Developer" senza Ports. La rete in DHCP e SSH abilitato, anche se poi non l'ho usato non ricordandomi al volo come consentire l'accesso da remoto anche a root (FreeBSD è un briciolino paranoico).
Quindi via ftp mi sono portato in locale il tarball ed ho iniziato
cd /root tar -xvzf open-vm-tools-2008.11.18-130226.tar.gz cd open-vm-tools-2008.11.18-130226
Servono un paio di librerie non presenti di default
pkg_add -r libdnet pkg_add -r icu
Ci sono anche un paio di errori di path in due sorgenti (mancava il "sys/" in quello che segue)
sys/syslimits.h
sys/syslimits.h
Si può quindi procedere, evitando di produrre con la relativa opzione quanto compete X, che tanto sulla FreeNAS non serve:
./configure --without-x make
Il "make install" non funziona. ma tanto l'idea è quella di prendere solo gli eseguibili che servono ed un paio di script ed installare il tutto altrove. In particolare il "package" del pfSense, pur avendo degli eseguibili per 7.0 che quindi non funzionano, è perfetto come struttura e per gli script di lancio e per dove andare ad ubicare i vari pezzi dentro la FreeNAS.
In particolare ho copiato il package di pfSense dal nome open-vm-tools-90473_2.tbz, e ne ho preso pari pari i due script di lancio, ovvero etc/rc.d/vmware-guestd ed etc/rc.d/vmware-kmod.
Ci sono anche un paio di librerie che, con la compilazione da me fatta, serve portarsi dietro, cosa che magari si poteva evitare con qualche link statico, ma non l'ho fatto. A seguire i file da prendere e dove metterli dentro la FreeNAS:
cp etc/rc.d/vmware-kmod /etc/rc.d/ cp etc/rc.d/vmware-guestd /etc/rc.d/ cp lib/libdnet.1 /usr/local/lib cp lib/libicui18n.so.38 /usr/local/lib cp lib/libicuuc.so.38 /usr/local/lib cp lib/libicudata.so.38 /usr/local/lib cp lib/vmware-tools/modules/drivers/vmmemctl.ko /usr/local/lib/vmware-tools/modules/drivers/ cp lib/vmware-tools/modules/drivers/vmxnet.ko /usr/local/lib/vmware-tools/modules/drivers/ cp lib/vmware-tools/modules/drivers/vmblock.ko /usr/local/lib/vmware-tools/modules/drivers/ cp lib/vmware-tools/modules/drivers/vmhgfs.ko /usr/local/lib/vmware-tools/modules/drivers/ cp sbin/vmware-guestd /usr/local/sbin cp sbin/vmware-checkvm /usr/local/sbin cp sbin/vmware-hgfsclient /usr/local/sbin cp sbin/vmware-hgfsmounter /usr/local/sbin cp sbin/vmware-xferlogs /usr/local/sbin cp share/vmware-tools/poweroff-vm-default /etc/vmware-tools cp share/vmware-tools/poweron-vm-default /etc/vmware-tools cp share/vmware-tools/resume-vm-default /etc/vmware-tools cp share/vmware-tools/suspend-vm-default /etc/vmware-tools cp share/vmware-tools/suspend-vm-default /etc/vmware-tools
Ricordarsi anche di dare i giusti accessi agli eseguibili
chmod uga+rwx nomefile
Infine basta far partire il tutto al boot:
vmware_guest_vmmemctl_enable="YES" vmware_guest_vmxnet_enable="YES" vmware_guest_vmblock_enable="YES" vmware_guest_vmhgfs_enable="YES" vmware_guest_kmod_enable="YES" vmware_guestd_enable="YES"
Si noti che il caricamento dei moduli genera un errore che è innocuo e che può essere ignorato (è un bug documentato della 6.4-RELEASE).
kernel: kldload: /usr/local/lib/vmware-tools/modules/drivers/vmmemctl.ko: Unsupported file type
Qualche altro suggerimento ed ottimizzazione:
kern.hz="100"
Nel BIOS merita anche disabilitare tutto il superfluo: oltre al floppy, anche le due seriali, la parallela, il controller del floppy ed il Secundary IDE, che tanto serve solo il Primary per il CD virtuale.
Eventuali anomalie al boot ed il giusto caricamento dei moduli nel kernel si verificano rispettivamente con i due seguenti comandi:
dmesg kldstat
Quando si cercano i vari eseguibili è sempre utilissimo il classico comando
find . -name "*nomefile*"
Infine un paio di link utili:
http://www.freenaskb.info/kb/ http://open-vm-tools.sourceforge.net/ http://www.freshports.org/emulators/open-vm-tools-nox11/ http://www.freenas.org/downloads/docs/devel-docs/