Aggiunta dei vmware tools a FreeNAS

elenca tutti

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...

Macchina virtuale: no floppy, 8GB HD, 512M RAM
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)

vi lib/include/file.h
sys/syslimits.h
vi lib/misc/posixPosix.c
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:

vi /etc/rc.conf
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:

vi /boot/loader.conf
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/

Abbiamo 14 visitatori e nessun utente online