summaryrefslogtreecommitdiffstats
path: root/perl-install/Xconfig
Commit message (Collapse)AuthorAgeFilesLines
* (to_raw_X) fix 3D on ATI cards (adding 'load "glx"')Thierry Vignaud2005-06-171-1/+1
|
* (libgl_config) fix enabling 3D when multiple GL libraries are installed (eg: ↵Thierry Vignaud2005-06-161-2/+2
| | | | globetrotter)
* (to_raw_X) really prevent loading/unloading twice the same glx module on non ↵Thierry Vignaud2005-06-151-4/+1
| | | | NV cards
* (to_raw_X) prevent loading/unloading twice the same glx module on non NV cardsThierry Vignaud2005-06-151-1/+0
|
* quotes in monitor names causes havoc, replace them (bugzilla #16406)Pascal Rigaux2005-06-141-0/+1
|
* - move functions using /proc/partitions out of fsedit to fs::proc_partitionsPascal Rigaux2005-06-102-3/+0
| | | | | | - remove unneeded "use xxx" - add some "use xxx" (nb: not completly needed because some other modules may do it)
* add some "use xxx;" (the idea is to see what the package needs, but i may ↵Pascal Rigaux2005-06-103-0/+5
| | | | rollback after understanding better dependencies)
* don't need prefixing with current packagePascal Rigaux2005-06-091-2/+2
|
* create detect_devices::probe_name() & detect_devices::probe_unique_name() ↵Pascal Rigaux2005-06-021-5/+2
| | | | and use them
* add many resolutions, but don't allow them yetPascal Rigaux2005-06-011-5/+21
|
* ensure that explanations go into /var/log/explanations is standaloneThierry Vignaud2005-05-221-13/+13
| | | | | mode (log::explanations() just calls log::l() at install time)
* (libgl_config) only run ldconfig if needed (aka only if GL config was altered)Thierry Vignaud2005-05-221-4/+13
|
* (probe_using_X): add missing chomp_Pascal Rigaux2005-05-101-1/+1
|
* if one prefer using "Modes" instead of "Virtual", keep it as isPascal Rigaux2005-04-281-2/+5
|
* switch from MandrakeSoft to MandrivaThierry Vignaud2005-04-211-1/+1
|
* suggest 1280x1024 instead of 1280x960 which causes pbsPascal Rigaux2005-04-191-2/+2
|
* ugly hack to fix empty ModeLine lines, XFdrake seems to generate some, but ↵Pascal Rigaux2005-04-081-0/+8
| | | | | | | where??? at least this allows fixing the pb by re-running XFdrake
* 1152x864 needs more modelines than the poor 1152x864@75Hz builtin xorg ↵Pascal Rigaux2005-04-081-1/+1
| | | | (bugzilla #11698)
* probe_using_X on neomagic can return rubbish, so prefer probe_DMI() (even if ↵Pascal Rigaux2005-03-231-1/+1
| | | | dmi probe is quite fuzzy...)
* try a little harder to know if we must write the config file.Pascal Rigaux2005-03-222-6/+9
| | | | | this is still not enough though
* put X conf read in Xconfig::mainPascal Rigaux2005-03-221-2/+4
|
* perl_checker fixPascal Rigaux2005-03-221-2/+2
|
* choose the default background best matching the resolutionPascal Rigaux2005-03-221-2/+29
|
* remove useless function to improve readability and please TitiOlivier Blin2005-03-211-48/+50
|
* use specific Synaptics settings for ALPS devices (#14512)Olivier Blin2005-03-211-12/+38
|
* use new recommended settings for synaptics-0.14.0Olivier Blin2005-03-211-3/+3
|
* factorize and minimal commentsOlivier Blin2005-03-211-15/+20
|
* ensure strange return value from gtf(1) doesn't cause havocPascal Rigaux2005-03-211-4/+5
|
* simplifyPascal Rigaux2005-03-181-2/+1
|
* ensure the .old X conf is the last onePascal Rigaux2005-03-181-0/+1
|
* instead of having xorg.conf symlinked to XF86Config, do the contraryPascal Rigaux2005-03-181-7/+10
|
* - simplify GUI: don't have a "ratio" combo. have the resolutions from ↵Pascal Rigaux2005-03-171-23/+29
| | | | | | | current ratio by default and allow "Other" to see all others - by default 1280x1024 is now in 4/3, not 5/4 (stupid bloody resolution!)
* have 1280x1024 in both 4/3 and 5/4 ratiosPascal Rigaux2005-03-171-1/+4
|
* use monitor-probe-using-XPascal Rigaux2005-03-173-14/+35
|
* - new function Xconfig::monitor::is_valid()Pascal Rigaux2005-03-152-19/+50
| | | | | - new function Xconfig::monitor::probe() which probes DDC, then fallbacks on DMI
* don't pass $monitors_db around, use memoized monitors_db()Pascal Rigaux2005-03-151-12/+11
|
* add some xxXGA namesPascal Rigaux2005-03-131-3/+4
|
* for 1400x1050, put the resolutions (60 and 75Hz are already in extramodes, ↵Pascal Rigaux2005-03-111-1/+2
| | | | but they are GTF modelines, we can overrule them)
* cleanupPascal Rigaux2005-03-101-1/+1
|
* don't add modelines for 1280x1024, they are already in standard vesamodes ↵Pascal Rigaux2005-03-101-1/+1
| | | | (builtin Xorg)
* when adding gtf modelines, have them sorted with high frequencies first ↵Pascal Rigaux2005-03-101-1/+1
| | | | (since Xorg prefer the first matching modeline (!))
* (getinfoFromDDC) fix crash (eg when called from hwdb-clients)Thierry Vignaud2005-03-101-0/+1
|
* simplifyPascal Rigaux2005-03-101-1/+0
|
* we don't want the 4/3 detailed_timings otherwise they conflict with the Xorg ↵Pascal Rigaux2005-03-101-2/+9
| | | | builtin vesamodes
* choose a 4/3 resolution by defaultPascal Rigaux2005-03-081-2/+2
|
* xbox support (by Stew)Pascal Rigaux2005-03-081-1/+3
|
* add the various "names" for standard resolutionsPascal Rigaux2005-03-021-1/+3
|
* sort CVT_ratios by preferencePascal Rigaux2005-03-021-1/+1
|
* "keyboard" InputDevice can also be called "kbd"Pascal Rigaux2005-03-021-2/+2
|
* add 1280x600 for VAIO PCG-C1M (bugzilla #5192)Pascal Rigaux2005-03-011-2/+2
|
n> ($i=0;$i<$partmapsize;$i++) { my $part; sysread F, $part, psizeof($p_format) or die "error while reading partition info in sector $sector"; push @pt, map { my %h; @h{@$p_fields} = unpack $p_format, $part; if ($i < $numparts && $h{pSig} eq $pmagic) { $h{size} = ($h{pPBlocks} * $info{bzBlkSize}) / 512; $h{start} = ($h{pPBlockStart} * $info{bzBlkSize}) / 512; if ($h{pType} =~ /^Apple_UNIX_SVR2/i) { $h{pName} =~ /swap/i ? ($h{type} = 0x82) : ($h{type} = 0x83); } elsif ($h{pType} =~ /^Apple_Free/i) { #- need to locate a 1MB partition to setup a bootstrap on if (defined $freepart_start && $freepart_size >= 1) { #- already found a suitable partition } else { $freepart_start = $h{start}; $freepart_size = $h{size}/2048; $freepart_device = $hd; $freepart_part = "/dev/" . $hd->{device} . ($i+1); log::l("free apple partition found on drive /dev/$freepart_device->{device}, block $freepart_start, size $freepart_size"); } $h{type} = 0x0; $h{pName} = 'Extra'; } elsif ($h{pType} =~ /^Apple_HFS/i) { $h{type} = 0x402; if (defined $macos_part) { #- swag at identifying MacOS - 1st HFS partition } else { $macos_part = "/dev/" . $hd->{device} . ($i+1); log::l("found MacOS at partition $macos_part"); } } elsif ($h{pType} =~ /^Apple_Partition_Map/i) { $h{type} = 0x401; $h{isMap} = 1; } elsif ($h{pType} =~ /^Apple_Bootstrap/i) { $h{type} = 0x401; $h{isBoot} = 1; if (defined $bootstrap_part) { #found a bootstrap already - use it, but log the find log::l("found another apple bootstrap at partition /dev/$hd->{device}" . ($i+1)); } else { $bootstrap_part = "/dev/" . $hd->{device} . ($i+1); log::l("found apple bootstrap at partition $bootstrap_part"); } } else { $h{type} = 0x401; $h{isDriver} = 1; }; # Let's see if this partition is a driver. foreach (@{$info{ddMap}}) { $_->{ddBlock} == $h{pPBlockStart} and $h{isDriver} = 1; } } \%h; } [ $part ]; }; [ @pt ], \%info; } sub write($$$;$) { my ($hd, $sector, $pt, $info) = @_; #- handle testing for writing partition table on file only! local *F; if ($::testing) { my $file = "/tmp/partition_table_$hd->{device}"; open F, ">$file" or die "error opening test file $file"; } else { partition_table_raw::openit($hd, *F, 2) or die "error opening device $hd->{device} for writing"; c::lseek_sector(fileno(F), $sector, 0) or return 0; } # Find the partition map. my @partstowrite; my $part = $pt->[0]; (defined $part->{isMap}) or die "the first partition is not the partition map"; push @partstowrite, $part; # Now go thru the partitions, sort and fill gaps. my $last; while ($part) { $last = $part; $part = &partition_table::next($hd, $part); $part or last; if ($last->{start} + $last->{size} < $part->{start}) { #There is a gap between partitions. Fill it and move on. push @partstowrite, { type => 0x0, start => $last->{start} + $last->{size}, size => $part->{start} - ($last->{start} + $last->{size}), }; } push @partstowrite, $part; }; # now, fill a gap at the end if there is one. if ($last->{start} + $last->{size} < $hd->{totalsectors}) { push @partstowrite, { type => 0x0, start => $last->{start} + $last->{size}, size => $hd->{totalsectors} - ($last->{start} + $last->{size}), }; } # Since we didn't create any new drivers, let's try and match up our driver records with out partitons and see if any are missing. $info->{bzDrvrCnt} = 0; my @ddstowrite; my $dd; foreach $dd (@{$info->{ddMap}}) { foreach (@partstowrite) { if ($dd->{ddBlock} == $_->{pPBlockStart}) { push @ddstowrite, $dd; $info->{bzDrvrCnt}++; last; } } } # Now let's write our first block. syswrite F, pack($bz_format, @$info{@$bz_fields}), psizeof($bz_format) or return 0; # ...and now the driver information. foreach (@ddstowrite) { syswrite F, pack($dd_format, @$_{@$dd_fields}), psizeof($dd_format) or return 0; } # zero the rest of the data in the first block. foreach ( 1 .. (494 - ((@ddstowrite) * 8))) { syswrite F, "\0", 1 or return 0; } #c::lseek_sector(fileno(F), $sector, 512) or return 0; # Now, we iterate thru the partstowrite and write them. foreach (@partstowrite) { if (!defined $_->{pSig}) { # The values we need to write to disk are not defined. Let's make them up. $_->{pSig} = $pmagic; $_->{pSigPad} = 0; $_->{pPBlockStart} = ($_->{start} * 512) / $info->{bzBlkSize}; $_->{pPBlocks} = ($_->{size} * 512) / $info->{bzBlkSize}; $_->{pLBlockStart} = 0; $_->{pLBlocks} = $_->{pPBlocks}; $_->{pBootBlock} = 0; $_->{pBootBytes} = 0; $_->{pAddrs1} = 0; $_->{pAddrs2} = 0; $_->{pAddrs3} = 0; $_->{pAddrs4} = 0; $_->{pChecksum} = 0; $_->{pProcID} = "\0"; $_->{pBootArgs} = "\0"; $_->{pReserved} = "\0"; if ($_->{type} == 0x402) { $_->{pType} = "Apple_HFS"; $_->{pName} = "MacOS"; $_->{pFlags} = 0x4000037F; } elsif ($_->{type} == 0x401 && $_->{start} == 1) { $_->{pType} = "Apple_Partition_Map"; $_->{pName} = "Apple"; $_->{pFlags} = 0x33; } elsif ($_->{type} == 0x401) { $_->{pType} = "Apple_Bootstrap"; $_->{pName} = "bootstrap"; $_->{pFlags} = 0x33; $_->{isBoot} = 1; log::l("writing a bootstrap at /dev/$_->{device}"); $install_steps_interactive::new_bootstrap = 1 if !(defined $partition_table_mac::bootstrap_part); $bootstrap_part = "/dev/" . $_->{device}; } elsif ($_->{type} == 0x82) { $_->{pType} = "Apple_UNIX_SVR2"; $_->{pName} = "swap"; $_->{pFlags} = 0x33; } elsif ($_->{type} == 0x83) { $_->{pType} = "Apple_UNIX_SVR2"; $_->{pName} = "Linux Native"; $_->{pFlags} = 0x33; } elsif ($_->{type} == 0x183) { $_->{pType} = "Apple_UNIX_SVR2"; $_->{pName} = "Linux ReiserFS"; $_->{pFlags} = 0x33; } elsif ($_->{type} == 0x283) { $_->{pType} = "Apple_UNIX_SVR2"; $_->{pName} = "Linux XFS"; $_->{pFlags} = 0x33; } elsif ($_->{type} == 0x383) { $_->{pType} = "Apple_UNIX_SVR2"; $_->{pName} = "Linux JFS"; $_->{pFlags} = 0x33; } elsif ($_->{type} == 0x483) { $_->{pType} = "Apple_UNIX_SVR2"; $_->{pName} = "Linux ext3"; $_->{pFlags} = 0x33; } elsif ($_->{type} == 0x0) { $_->{pType} = "Apple_Free"; $_->{pName} = "Extra"; $_->{pFlags} = 0x31; } }; $_->{pMapEntry} = @partstowrite; syswrite F, pack($p_format, @$_{@$p_fields}), psizeof($p_format) or return 0; } common::sync(); 1; } sub info { my ($hd) = @_; # - Build the first block of the drive. my $info = { bzSig => $magic, bzBlkSize => 512, bzBlkCnt => $hd->{totalsectors}, bzDevType => 0, bzDevID => 0, bzReserved => 0, bzDrvrCnt => 0, }; $info; } sub clear_raw { my ($hd) = @_; my @oldraw = @{$hd->{primary}{raw}}; my $pt = { raw => [ ({}) x 63 ], info => info($hd) }; #- handle special case for partition 1 which is the partition map. $pt->{raw}[0] = { type => 0x401, start => 1, size => 63, isMap => 1, }; # $pt->{raw}[1] = { # type => 0x0, # start => 64, # size => $hd->{totalsectors} - 64, # isMap => 0, # }; push @{$pt->{normal}}, $pt->{raw}[0]; # push @{$pt->{normal}}, $pt->{raw}[1]; #- Recover any Apple Drivers, if any. my $i = 1; foreach (@oldraw) { if (defined $_->{isDriver}) { $pt->{raw}[$i] = $_; push @{$pt->{normal}}, $pt->{raw}[$i]; $i++; } }; @{$pt->{info}{ddMap}} = @{$hd->{primary}{info}{ddMap}}; $pt; } 1;