home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 2007 January, February, March & April
/
Chip-Cover-CD-2007-02.iso
/
boot
/
i386
/
root
/
usr
/
share
/
sax
/
profile
/
Radeon_DualHead_DriverOptions.pl
< prev
next >
Wrap
Perl Script
|
2006-11-29
|
4KB
|
141 lines
#!/usr/bin/perl
use lib '/usr/share/sax/profile';
use strict;
use Profile;
#====================================
# Profile name...
#------------------------------------
my $name = "Radeon_DualHead_DriverOptions";
#====================================
# Init profile script
#------------------------------------
my $profile = ProfileInitScript();
#====================================
# Do the profile adaptions...
#------------------------------------
if (! ProfileIsXOrgVendor ("fglrx")) {
#====================================
# Call fglrx dual profile
#------------------------------------
my $used = "/usr/share/sax/profile/FGLRX_DualHead_DriverOptions";
print STDERR "$name: selected profile: $used\n";
if ( -f "$used.pl" ) {
print STDERR "$name: calling profile script: $used.pl\n";
qx ($used.pl);
my $base = qx (basename $used);
chomp $base;
$used="/var/lib/sax/$base.tmp";
}
qx (cp $used $profile);
} else {
#====================================
# Do the radeon adaptions...
#------------------------------------
if (ProfileIsNoteBookHardware()) {
open (FD,">",$profile) ||
die "$name: Can't open $profile: $!";
my $id = 20;
my $dt = '"Device->[X]->Raw->".$id++."->Option"';
my $dx = eval $dt;
print FD "SaXMeta->[X]->SAX_NO_CDB_CHECK=1\n";
print FD "\$MS=Screen->[X]->Depth->16->Modes\n";
print FD "Device->[X]->Option=SaXDualHead\n";
print FD "$dx=\"MergedFB\" \"yes\"\n";
$dx = eval $dt;
print FD "$dx=\"IgnoreEDID\" \"yes\"\n";
$dx = eval $dt;
print FD "$dx=\"CRT2Position\" \"Clone\"\n";
$dx = eval $dt;
print FD "$dx=\"SaXDualOrientation\" \"LeftOf\"\n";
$dx = eval $dt;
print FD "$dx=\"SaXDualMode\" \"Clone\"\n";
$dx = eval $dt;
print FD "$dx=\"SaXDualMonitorVendor\" \"__VESA__\"\n";
$dx = eval $dt;
print FD "$dx=\"SaXDualMonitorModel\" \"1024X768\@60HZ\"\n";
$dx = eval $dt;
print FD "$dx=\"CRT2HSync\" \"31-48\"\n";
$dx = eval $dt;
print FD "$dx=\"CRT2VRefresh\" \"50-60\"\n";
$dx = eval $dt;
print FD "$dx=\"MetaModes\" \"\${MS[0]},1024x768;1024x768,1024x768\"\n";
$dx = eval $dt;
print FD "$dx=\"SaXDualHSync\" \"31-48\"\n";
$dx = eval $dt;
print FD "$dx=\"SaXDualVSync\" \"50-60\"\n";
$dx = eval $dt;
print FD "$dx=\"SaXDualResolution\" \"1024x768\"\n";
close FD;
} else {
#====================================
# check secondary DDC data
#------------------------------------
open (FD,">>",$profile) ||
die "$name: Can't open $profile: $!";
my %data = ProfileGetDDC2Data();
my $id = 20;
my $dt = '"Device->[X]->Raw->".$id++."->Option"';
my $dx = eval $dt;
print FD "$dx=\"MergedFB\" \"yes\"\n";
$dx = eval $dt;
print FD "$dx=\"IgnoreEDID\" \"yes\"\n";
$dx = eval $dt;
print FD "$dx=\"CRT2Position\" \"Clone\"\n";
$dx = eval $dt;
print FD "$dx=\"SaXDualOrientation\" \"LeftOf\"\n";
$dx = eval $dt;
print FD "$dx=\"SaXDualMode\" \"Clone\"\n";
$dx = eval $dt;
foreach my $key (keys %data) {
my $val = $data{$key};
SWITCH: for ($key) {
/^Model/ && do {
$id = 26;
$dx = eval $dt;
print FD "$dx=\"SaXDualMonitorModel\" \"$val\"\n";
last SWITCH;
};
/^Vendor/ && do {
$id = 25;
$dx = eval $dt;
print FD "$dx=\"SaXDualMonitorVendor\" \"$val\"\n";
last SWITCH;
};
/^Resolution/ && do {
$id = 30;
$dx = eval $dt;
print FD "$dx=\"MetaModes\" \"\${Modes[0]},$val\"\n";
$id = 33;
$dx = eval $dt;
print FD "$dx=\"SaXDualResolution\" \"$val\"\n";
last SWITCH;
};
/^Hsync/ && do {
$id = 28;
$dx = eval $dt;
print FD "$dx=\"CRT2HSync\" \"$val\"\n";
$id = 31;
$dx = eval $dt;
print FD "$dx=\"SaXDualHSync\" \"$val\"\n";
last SWITCH;
};
/^Vsync/ && do {
$id = 29;
$dx = eval $dt;
print FD "$dx=\"CRT2VRefresh\" \"$val\"\n";
$id = 32;
$dx = eval $dt;
print FD "$dx=\"SaXDualVSync\" \"$val\"\n";
last SWITCH;
};
}
}
close FD;
}
}