VMware (Italiano)

From ArchWiki
Revision as of 12:44, 8 September 2011 by SirX (talk | contribs)
Jump to: navigation, search

This template has only maintenance purposes. For linking to local translations please use interlanguage links, see Help:i18n#Interlanguage links.


Local languages: Català – Dansk – English – Español – Esperanto – Hrvatski – Indonesia – Italiano – Lietuviškai – Magyar – Nederlands – Norsk Bokmål – Polski – Português – Slovenský – Česky – Ελληνικά – Български – Русский – Српски – Українська – עברית – العربية – ไทย – 日本語 – 正體中文 – 简体中文 – 한국어


External languages (all articles in these languages should be moved to the external wiki): Deutsch – Français – Română – Suomi – Svenska – Tiếng Việt – Türkçe – فارسی

Questo articolo tratta l'installazione di VMware in Arch, si potrebbe essere invece essere interessati a Installare Arch Linux in VMware.

Installazione di un server VMware

1. Installare vmware-server da AUR.

2. Installare vmware-server-console. Altrimenti, su Arch64, può essere installata la versione bin32.

3. Scaricare l'immagine dal sito VMWare website.

4. Copiare l'immagine nella directory di build.

5. Completare l'operazione di build.

VMware Workstation o VMware Player

Installazione

Nota: VMware Workstation/Player non potrà essere gestito con pacman se i file non saranno installati con esso.
Tip: Per un kernel 2.6.39 è possibile usare questo script automatizzato: http://kaslit.com/downloads/vmwareinstallshell.sh – nota che ci sarà bisogno di eseguire ugualmente i passaggi 3, 4, 5(6), 10 e 11

Per installare Workstation o Player su un host usando un bundle:

1. Download VMware Workstation o VMware Player (si può provare anche testing (Beta/RC) versions).

2. Creare a fake System V init style directory for VMware e iniziare l'installazione (il flag Template:Codeline usa il terminale invece dell'interfaccia grafica, ed è necessario Template:Codeline per selezionare the Template:Codeline runlevels directory):

# mkdir -p /etc/rc.d/vmware.d/{rc{0..6},init}.d
# chmod +x VMware-<edition>-<version>.<release>.<architecture>.bundle
# ./VMware-<edition>-<version>.<release>.<architecture>.bundle --console --custom

3. Leggere e accettare la EULA per continuare.

4. Accettare le impostazioni di base finché non viene richiesto Template:Codeline – Definirlo in:

/etc/rc.d/vmware.d/

5. Impostare Template:Codeline in:

/etc/rc.d

6. (Opzionale) Immettere il percorso di directory per il Debugger Virtuale Integrato per Eclipse se Eclipse è installato.

Moduli VMware e patch

Tip: C'è un pacchetto chiamato Template:Package AUR in AUR che ha lo scopo di tentare l'automatizzazione del processo di patching.

kernel 3.1rc

In aggiunta alla patch del kernel 3.0 si può applicare solo questa: http://weltall.heliohost.org/wordpress/2011/08/10/vmware-workstation-7-1-4-fix-for-linux-3-1/

kernel 3.0

C'è un insieme di patch che gestisce correttamente il kernel 3.0 su: http://weltall.heliohost.org/wordpress/2011/05/14/running-vmware-workstation-player-on-linux-2-6-39-updated/

Il modulo VMware di build non gestisce correttamente la stringa della versione del nuovo modulo che ha solo due parti (3.x) invece di tre (2.6.xx). Può essere di aiuto anche questa discussione: https://bbs.archlinux.org/viewtopic.php?id=123695.

La soluzione più facile per questo punto è di patchare due binari:

# sed 's/\x83\xe8\x03\x83\xf8\x01\x0f\x96\xc0/\x83\xe8\x02\x83\xf8\x01\x0f\x96\xc0/' -i /usr/lib/vmware/lib/libvmware-modconfig-console.so/libvmware-modconfig-console.so
# sed 's/\x83\xe8\x03\x83\xf8\x01\x0f\x96\xc0/\x83\xe8\x02\x83\xf8\x01\x0f\x96\xc0/' -i /usr/lib/vmware/lib/libvmware-modconfig.so/libvmware-modconfig.so

kernel 2.6.39

$ mkdir /tmp/vmware && cd /tmp/vmware
# for t in /usr/lib/vmware/modules/source/*.tar; do tar xf $t; mv $t{,.original}; done
# wget -qO- http://kaslit.com/downloads/vmware2.6.39fixed.patch | patch -Np1
# for d in *-only; do tar cf /usr/lib/vmware/modules/source/${d/%-only/}.tar $d; done

Un membro della comunity di Fedora ha anche fatto l'upload della cartella Template:Filename in una tarball compressa qui: http://www.fedoraforum.org/leigh123linux/vm/source.tar.lzma

kernel 2.6.37 e .38

cd /tmp
$ wget http://www.russo79.com/vmware7.1.3-patch-kernel-2.6.37.sh
$ chmod +x vmware7.1.3-patch-kernel-2.6.37.sh
# ./vmware7.1.3-patch-kernel-2.6.37.sh

kernel 2.6.36

$ cd /tmp
$ wget http://files.archlinux.org.il/vmmon_fix_2.6.36.sh
$ chmod +x vmmon_fix_2.6.36.sh
# ./vmmon_fix_2.6.36.sh

kernel 2.6.35

$ cd /tmp
$ wget http://www.sputnick-area.net/scripts/vmware7.1.1-patch-kernel-2.6.35.bash
$ chmod +x vmware7.1.1-patch-kernel-2.6.35.bash
# ./vmware7.1.1-patch-kernel-2.6.35.bash

Installazione (conclusa)

7. A questo punto potresti voler installare i moduli. Prima di tutto bisogna di cambiare sia la Template:Codeline in Template:Filename da Template:Filename fino a Template:Filename:

# sed -i "s|/sbin/lsmod|/bin/lsmod|g" /etc/rc.d/vmware

o creare un link simbolico con:

# ln -s /bin/lsmod /sbin/lsmod

8. Ora si può installare i moduli. È possibile fare questo o lanciando VMware e lasciandogli installare i moduli con l'interfaccia grafica o eseguendo:

# vmware-modconfig --console --install-all

9. (Opzionale) Aggiungere vmware Alla serie di DAEMONS in Template:Filename sin modo che il server parta automaticamente all'avvio.

10. Installare ed esegui HAL:

# pacman -S hal
# rc.d start hal

11. Ora aprire la tua VMware Workstation (Template:Codeline nel terminale) o VMware Player (Template:Codeline nel terminale) per configurarli e usarli!

Disinstallazione

Controllare il product name:

# vmware-installer -l

e disinstallare:

# vmware-installer -u <vmware-product>

Le parti inserite manualmente in Template:Filename devono essere cancellate manualmente. Non dimenticarsi di rimuovere vmware dalla serie di DAEMONS in Template:Filename.

Estrazione del VMware BIOS

Per estrarre il BIOS di VMware BIOS, che può essere manipolato e usato in seguito con le tue macchine virtuali:

$ objcopy /usr/lib/vmware/bin/vmware-vmx -O binary -j bios440 --set-section-flags bios440=a bios440.rom.Z
$ perl -e 'use Compress::Zlib; my $v; read STDIN, $v, '$(stat -c%s "./bios440.rom.Z")'; $v = uncompress($v); print $v;' < bios440.rom.Z > bios440.rom

Una volta modificato il BIOS in qualsiasi cosa sia necessaria, spostarlo nella cartella in cui c'è la tua VM, e aggiungerlo al file Template:Codeline:

bios440.filename = "bios440.rom"

Risoluzione dei problemi

L'installer non parte

Se si torna subito al prompt quando apri il file Template:Filename, allore probabilmente è installata una versione vecchia del Template:Codeline e sarebbe opportuno rimuoverla (si può prendere spunto anche dalla sezione Disinstallazione di questo articolo):

# rm -r /etc/vmware-installer

Could not open /dev/vmmon: No such file or directory.

L'errore completo è:

Could not open /dev/vmmon: No such file or directory.
Please make sure that the kernel module `vmmon' is loaded.

QUesto significa almeno che il vmmon VMware service non è partito. Può essere fatto partire eseguendo (come root):

# rc.d start vmware

Kernel headers for version 3.x.x-xxxx were not found. If you installed them[...]

Installarli con:

# pacman -S linux-headers

error: implicit declaration of function ‘iommu_unmap_range’

Se compare il seguente errore mentre vengono compilati i moduli:

...
/tmp/vmware-root/modules/vmmon-only/linux/iommu.c:403:7: erreur: implicit declaration of function ‘iommu_unmap_range’
make[2]: *** [/tmp/vmware-root/modules/vmmon-only/linux/iommu.o] Erreur 1
make[1]: *** [_module_/tmp/vmware-root/modules/vmmon-only] Erreur 2
make[1]: quittant le répertoire « /usr/src/linux-2.6.35-ARCH »
make: *** [vmmon.ko] Erreur 2

Questo errore è dovuto a un cambiamento nelle API del kernel, solo a un cambio di nome che rimuove il suffisso '_range' dalle funzioni iommu. Si può patchare manualmente i sorgenti rimuovendo il suffisso _range con una veloce espressione sed:

$ cd /tmp
$ tar xvf /usr/lib/vmware/modules/source/vmmon.tar
$ sed 's/_range//' -i vmmon-only/linux/iommu.c
# tar cvf /usr/lib/vmware/modules/source/vmmon.tar vmmon-only

Notare che all'aggiornamento del kernel bisognerà ricompilare i moduli vmware con:

# vmware-modconfig --console --install-all

Altrimenti tutto il sistema potrebbe andare in crash quando si prova a far partire le macchine virtuali, quindi tienilo bene a mente.

error: implicit declaration of function ‘kernel_locked’

Se stai ricevendo questo errore significa che usi probabilmente un kernel < 2.6.36 e occorrono alcune attenzioni ulteriori. Attenzione che VMware paga raramente.

Qui ci sono una patch, insieme a molti altri errori di compilazione [1]

error: ‘struct sock’ has no member named ‘sk_sleep’

Questo errore spesso capita quando si compila il modulo vsock, l'errore appare tipo così:

make[1]: Entering directory `/usr/src/linux-headers-2.6.35-7-generic-pae'
  CC [M]  /tmp/vmware-root/modules/vsock-only/linux/af_vsock.o
/tmp/vmware-root/modules/vsock-only/linux/af_vsock.c:312: warning: initialization from incompatible pointer type
/tmp/vmware-root/modules/vsock-only/linux/af_vsock.c:359: warning: initialization from incompatible pointer type
/tmp/vmware-root/modules/vsock-only/linux/af_vsock.c: In function ‘VSockVmciStreamConnect’:
/tmp/vmware-root/modules/vsock-only/linux/af_vsock.c:3224: error: ‘struct sock’ has no member named ‘sk_sleep’
/tmp/vmware-root/modules/vsock-only/linux/af_vsock.c:3247: error: ‘struct sock’ has no member named ‘sk_sleep’
...

Per sistemarlo ricorriamo ad un approccio simile a quello mensionato sopra:

cd /tmp
# tar xvf /usr/lib/vmware/modules/source/vsock.tar
# sed 's/\([a-z_]*\)->compat_sk_sleep/compat_sk_sleep(\1)/g' -i vsock-only/linux/af_vsock.c
# tar cvf /usr/lib/vmware/modules/source/vsock.tar vsock-only

Poi dare:

# vmware-modconfig --console --install-all

Stampare da un guest OS

Se si è configurato il proprio guest OS per usare le stampanti dell'host, e i lavori di stampa non stanno funzionando, ci potrebbe essere un problema di permessi con il filtro ThinPrint CUPS (thnucups), che è usato da VMware.

Da Template:Filename:

E [22/Nov/2010:14:10:11 -0800] Unable to execute /usr/lib/cups/filter/thnucups: insecure file permissions (0104755)

Questo dovrebbe risolvere:

# chmod u-sw /usr/lib/cups/filter/thnucups
# rc.d restart cupsd