Fedora Core Linux安裝VMWare時調整用的指令碼

來源:互聯網
上載者:User
在Fedora Core上安裝VMWare for Linux的時候,有時候會出一些問題,比如在執行 vmware-config.pl 的時候報錯:

What is the location of the directory of C header files that match your running
kernel? [/usr/src/linux/include] /lib/modules/2.6.15-1.1907_FC5/build/include

The kernel defined by this directory of header files does not have the same
address space size as your running kernel.

即使給了正確的路徑,依舊不對。因此,安裝的時候不得不每次先去修改vmware的一些檔案。為了方便起見,我寫了個傻瓜指令碼,能夠協助做一些包括打補丁之類的瑣碎事情,當然,執行前最好知道自己在做什麼:)

這個指令碼僅僅是為了方便起見,沒有考慮各種情況的檢測,所以,事先要做好備份,另外需要注意執行多於一遍的時候,原始檔案的備份可能被覆蓋掉。雖然說一般不會出什麼問題。:)

這個指令碼需要root許可權執行。

測試過的環境:

VMWare
    VMware Player 1.0.1 build-19317
    VMware Workstation 5.5.1
Linux
    Fedora Core 5
    Slackware 10.2
Kernel
    kernel 2.6.16-rc4
    kernel 2.6.16-1.2122_FC5
    kernel 2.6.16-1.2122_FC5smp
    kernel 2.6.16-1.2122_FC5xen0

#!/bin/bash

CURDIR=`pwd`
VM_CONFIG_PATCH='vmware-config.pl.patch'
VM_CONFIG=`which vmware-config.pl`

# generate the patch
cat > $VM_CONFIG_PATCH << EOF
1972,1973c1972,1973
< /$header_page_offset =~ s/^/$pattern /(?0x([0-9a-fA-F]{8,}).*/$//$1/;
< if (/$header_page_offset =~ /[0-9a-fA-F]{8,}/) {
---
> if (/$header_page_offset =~ /^/$pattern /(?0x([0-9a-fA-F]{8,})/) {
> /$header_page_offset = /$1;
EOF

# apply the patch to vmware-config.pl
patch $VM_CONFIG $VM_CONFIG_PATCH



# Modify the compressed archives

search_base(){
# 2 level search, for increase search speed
FIRST_LEVEL=$1
FINAL_SEARCH=$2

list=`find / -name $FIRST_LEVEL -maxdepth 4 2>/dev/null`
basedir=''

for item in $list; do
file=`find $item -name $FINAL_SEARCH`
if [ ! -z $file ]; then
break;
fi
done

if [ -z $file ]; then
echo "Cannot find $FINAL_SEARCH"
return 1
else
basedir=${file%/$FINAL_SEARCH}
fi

echo $basedir
}

SOURCE_DIR=`search_base vmware vmmon.tar`
VM_SOURCE_PATCH='vm.patch'

mkdir vmtemp
cd vmtemp
tar xf $SOURCE_DIR/vmmon.tar
tar xf $SOURCE_DIR/vmnet.tar

# generate patch
cat > $VM_SOURCE_PATCH <<EOF
10c10
< /$(EXTRA_CFLAGS) -Iinclude2/asm/mach-default //
---
> /$(EXTRA_CFLAGS) -Iinclude2/asm/mach-default -DKBUILD_BASENAME="/$(DRIVER)" //
EOF

# apply the patch
patch vmmon-only/Makefile.kernel $VM_SOURCE_PATCH
patch vmnet-only/Makefile.kernel $VM_SOURCE_PATCH

# backup the original tar
if [ ! -f $SOURCE_DIR/vmmon.tar.bak ]; then
mv $SOURCE_DIR/vmmon.tar $SOURCE_DIR/vmmon.tar.bak
fi
if [ ! -f $SOURCE_DIR/vmnet.tar.bak ]; then
mv $SOURCE_DIR/vmnet.tar $SOURCE_DIR/vmnet.tar.bak
fi

# create new tars
tar cf $SOURCE_DIR/vmmon.tar vmmon-only/
tar cf $SOURCE_DIR/vmnet.tar vmnet-only/

cp $VM_SOURCE_PATCH $SOURCE_DIR

cd ..
rm -rf vmtemp


Reference

這個指令碼主要是參照cacao74的發言進行的修改
cacao74 at http://www.vmware.com/community/thread.jspa?threadID=31877&tstart=0

另一個可供使用的指令碼
http://platan.vc.cvut.cz/ftp/pub/vmware/vmware-any-any-update101.tar.gz

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.