VMware에서 Install VMware Tools의 Fedora Core 6에서의 X Window 해상도 해결방법
0. Fedora Core 6를 FC-6-i386-disc1로 VMware에서 로딩한 후 처음 설치시에
boot : linux i686
으로 입력하여 설치 그러면 다음의 1, 2, 3 번항의 순서를 넘어가도 된다.
1. GCC Install
yum install gcc
2. 커널 소스 설치
http://download.fedora.redhat.com/pub/fedora/linux/core/6/i386/os/Fedora/RPMS/ 에 가서
kernel-devel-2.6.18-1.2798_fc6.i686.rpm 다운 후 더블클릭하여 설치
3. 첨부한 Xorg.conf 를 /etc/X11/ 으로 copy 한다.
(기존 파일은 만약을 위해 백업합니다)
4. http://platan.vc.cvut.cz/ftp/pub/vmware/vmware-tools-any-update2.tar.gz 파일을 다운로드 받고 /root/Desktop/tmp(어디든 임시 디렉토리면상관없음) 에 압축을 푼다.
5. VMware workstation 메뉴에서 VM->Intall Vmware Tools..를 선택해 VMware Tools를 설치한다(바탕화면에 CD-ROM모양의 VMWare Tools 아이콘이 나옴). VMwareTools-5.5.1-l9175.i386.rpm파일과 VMwareTools-5.5.1-l9175.tar.gz이라고 나타남.
6. VMwareTools-5.5.1-l9175.i386.rpm 파일 더블클릭하여 설치
7. VMwareTools-5.5.1-l9175.tar.gz 파일을 /root/Desktop/tmp 에 압축을 푼다.
8. cd /root/Desktop/tmp/
루트 권한으로 다음과 같이 실행
./vmware-install.pl
실행후 여러가지를 묻는과정에서 다른 질문들은 그냥 엔터키만 누르면 되고 /usr/bin/vmware-config-tool.pl을 실행시킬까요? 라고 물어보는 질문만 No라고 대답한다.
9. cd /root/Desktop/tmp/
역시 루트 권한으로
./runme.pl
실행시킨다. 여기서도 /usr/bin/vmware-config-tool.pl을 실행시킬까요? 라고 물어보는 질문만 No라고 대답한다.
10. 아래 첨부 한 patch.txt 를 /root/Desktop/tmp/ 에 저장한다.
아래 "소스라인 시작" 다음 줄부터 "소스라인 끝" 전까지 라인을 /tmp/patch.txt 파일로저장한다.(잘 보면 아시겠지만 이 내용은 patch utility에서 사용되는 라인들임.)
#___________________________ 소스라인 시작 _________________________________
--- vmware-config-tools.pl.orig 2006-03-27 02:02:17.000000000 -0500
+++ vmware-config-tools.pl 2006-03-27 02:11:46.000000000 -0500
@@ -587,6 +587,10 @@
my $gXVideoDriverFile = '';
my $gIs64BitX = 0;
+# The location of the modules dir has changed in X.org 7
+my $cXModulesDir7 = '/usr/lib/xorg/modules';
+my $cX64ModulesDir7 = '/usr/lib64/xorg/modules';
+
# Load the installer database
sub db_load {
undef %gDBAnswer;
@@ -3874,6 +3878,10 @@
return '/usr/X11R6/bin';
}
+sub xserver7 {
+ return '/usr/bin/X';
+}
+
sub xserver6 {
return xserver_bin() . '/Xorg';
}
@@ -4029,6 +4037,8 @@
$x_server_file = xserver4();
} elsif ($x_version == 6) {
$x_server_file = xserver6();
+ } elsif ($x_version == 7) {
+ $x_server_file = xserver7();
}
$x_server_file_name = internal_basename($x_server_file);
@@ -4075,6 +4085,86 @@
set_uid_X_server($x_server_file);
}
+sub xorg_7 {
+ my $xconfig_path = '/etc/X11';
+ my $xconfig_file_name = 'xorg.conf';
+ my $xversion = 7;
+ my $xversionAll = '';
+ my $xserver_link = '';
+ my $major;
+ my $minor;
+ my $sub;
+
+ $xversionAll = direct_command(shell_string(xserver7()) . ' -version 2>&1') =~
+ /X Protocol Version 11.* Release (\d+\.\d+)/ ? $1 : '0.0.0';
+
+ if (defined $ENV{'XORGCONFIG'} && file_name_exist('/etc/X11/' .
+ $ENV{'XORGCONFIG'})) {
+ $xconfig_path = '/etc/X11';
+ $xconfig_file_name = $ENV{'XORGCONFIG'};
+ } elsif (defined $ENV{'XORGCONFIG'} &&
+ file_name_exist('/usr/X11R6/etc/X11/' . $ENV{'XORGCONFIG'})) {
+ $xconfig_path = '/usr/X11R6/etc/X11';
+ $xconfig_file_name = $ENV{'XORGCONFIG'};
+ } elsif (file_name_exist('/etc/X11/xorg.conf-4')) {
+ $xconfig_path = '/etc/X11';
+ $xconfig_file_name = 'xorg.conf-4';
+ } elsif (file_name_exist('/etc/X11/xorg.conf')) {
+ $xconfig_path = '/etc/X11';
+ $xconfig_file_name = 'xorg.conf';
+ } elsif (file_name_exist('/etc/xorg.conf')) {
+ $xconfig_path = '/etc';
+ $xconfig_file_name = 'xorg.conf';
+ } elsif (file_name_exist('/usr/X11R6/etc/X11/xorg.conf-4')) {
+ $xconfig_path = '/usr/X11R6/etc/X11';
+ $xconfig_file_name = 'xorg.conf-4';
+ } elsif (file_name_exist('/usr/X11R6/etc/X11/xorg.conf')) {
+ $xconfig_path = '/usr/X11R6/etc/X11';
+ $xconfig_file_name = 'xorg.conf';
+ } elsif (file_name_exist('/usr/X11R6/lib/X11/xorg.conf-4')) {
+ $xconfig_path = '/usr/X11R6/lib/X11';
+ $xconfig_file_name = 'xorg.conf-4';
+ } elsif (file_name_exist('/usr/X11R6/lib/X11/xorg.conf')) {
+ $xconfig_path = '/usr/X11R6/lib/X11';
+ $xconfig_file_name = 'xorg.conf';
+ }
+
+ print wrap("\n\n" . 'Detected X.org version ' . $xversionAll . '.'
+ . "\n\n", 0);
+
+ ($major, $minor, $sub) = split_X_version($xversionAll);
+
+ # If there is an existing driver, replace it by ours.
+ if ($major == 7) {
+
+ backup_file_to_restore($gXVideoDriverFile, 'OLD_X4_DRV');
+ if (file_name_exist($gXVideoDriverFile)) {
+ unlink $gXVideoDriverFile;
+ }
+
+ # Install the drivers.
+ my %p;
+ undef %p;
+ if ($minor == 0) {
+ # This is the best driver we can install for X.org 7.0.0
+ install_file(db_get_answer('LIBDIR') . '/configurator/XOrg/6.8.x' .
+ ($gIs64BitX ? '_64' : '') . '/vmware_drv.o',
+ $gXVideoDriverFile, \%p, 1);
+ install_file(db_get_answer('LIBDIR') . '/configurator/XOrg/6.8.x' .
+ ($gIs64BitX ? '_64' : '') . '/vmmouse_drv.o',
+ $gXMouseDriverFile, \%p, 1);
+ } else {
+ print wrap("\n\n" . 'No mouse driver for X.org version: ' . $xversionAll . '.'
+ . "\n\n", 0);
+ }
+ fix_X_link('7');
+ } else {
+ error ('Problem extracting verion of X.org' . "\n\n");
+ }
+ return ($xversion, xconfig_file_abs_path($xconfig_path, $xconfig_file_name),
+ $xversionAll);
+}
+
sub xorg_6 {
my $xconfig_path = '/etc/X11';
my $xconfig_file_name = 'xorg.conf';
@@ -4934,7 +5024,23 @@
my $xconfig_backup = '';
my $createNewXConf = 0;
- if (file_name_exist(xserver6())) {
+ if (file_name_exist(xserver7())) {
+ if (is64BitElf(xserver7())) {
+ $gIs64BitX = 1;
+ # 64-bit FreeBSD puts it's 64-bit X modules in lib not lib64
+ if (vmware_product() ne 'tools-for-freebsd') {
+ $gXMouseDriverFile = "$cX64ModulesDir7/input/vmmouse_drv.o";
+ $gXVideoDriverFile = "$cX64ModulesDir7/drivers/vmware_drv.o";
+ } else {
+ $gXMouseDriverFile = "$cXModulesDir7/input/vmmouse_drv.o";
+ $gXVideoDriverFile = "$cXModulesDir7/drivers/vmware_drv.o";
+ }
+ } else {
+ $gXMouseDriverFile = "$cXModulesDir7/input/vmmouse_drv.o";
+ $gXVideoDriverFile = "$cXModulesDir7/drivers/vmware_drv.o";
+ }
+ ($xversion, $xconfig_file, $xversionAll) = xorg_7();
+ } elsif (file_name_exist(xserver6())) {
if (is64BitElf(xserver6())) {
$gIs64BitX = 1;
# 64-bit FreeBSD puts it's 64-bit X modules in lib not lib64
#________________________________ 소스라인 끝 _________________________________________
11. cd /usr/bin/
역시 루트 권한으로 다음을 실행한다
patch vmware-config-tools.pl /root/Desktop/tmp/patch.txt
패치 후 다음을 실행
./vmware-config-tools.pl
(이떄 물어보는 include 경로는 /usr/src/kernels/2.6.18-1.2798.fc6-i686/include 일것입니다.)
12. /etc/X11/xorg.conf 파일을 다음과같이 편집한다.
# Fix xorg config
# If when you (re)start X, you get the error "Undefined Monitor "vmware"..":
[root@localhost /]# vi /etc/X11/xorg.conf
# Add the lines
Section "Monitor"
Identifier "vmware"
EndSection
# To add better mouse support, add the lines
Section "InputDevice"
Identifier "Mouse0"
Driver "vmmouse"
Option "Protocol" "Auto"
Option "Device" "/dev/input/mouse0"
EndSection
# then find the "ServerLayout" section, and in that section, add the line
InputDevice "Mouse0" "CorePointer"
# TODO fix vmhgfs compile (currently broken)
# TODO fix fast ethernet driver compile (currently broken)
# TODO copy and paste broken
13. 이제 설치 끝!
오류가 나네요?
vmware 6 beta입니다.
아래와 같은 메세지가 나오면서 프람프트로 돌아 오는군요.
patching file vmware-config-tools.pl
patch: **** malformed patch at line 4: my $gXVideoDriverFile = '';
3번의 Xorg.conf 파일은 어디에 있나요?
자료는 저장하자!
저장해서 정리하지 않은 지식은 쓸모가 없다.
전 궁금한게
무슨 이유때문에 이렇게 복잡하게 사용하시는가 입니다. -_- 뭔가 잘 안되는게 있는지요? rpm 파일을 설치하셨으면 그걸로 될 일인데 tar.gz 파일을 굳이 또 풀어서 뭔가 하시는것도 잘 이해가 안가고 그렇습니다. =_=a
==
어디가 위고 어디가 아래여..
VMware Workstation 구버전 사용시 필요하죠... ^^
페도라 코어 6 이전 나온 VMware Workstation 사용중이라면
커널을 업데이트했다면 rpm 설치는 문제가 있습니다.
최신 버전(5.5.3) 사용하시다면 아마도 rpm 설치만으로도 될 것 같네요. ^^
----------------------------------------------------------------------------------------------------
Rina's Blog
http://rinapc.com
----------------------------------------------------------------------------------------------------
Rina's Blog
http://rinapc.com
댓글 달기