Installing Linux Fedora Core 3 on Sony Vaio PCG-GRX616MP

Here are the problems I encounter when installing Fedora Core 3 on a Sony Vaio PCG-GRX616MP (specifications).
I installed FC3 upgrading from FC2. I used the 4 Fedora CDs to make the upgrade, no problem encounter during the instalation. Here is the page where I explain the instalation of the FC2 on the
Sony Vaio PCG-GRX616MP.

Problems
Description
Status
YUM
Limited repository
Solved
XMMS
Sound quality is bad.
Solved
DUAL HEAD
Difficulties to set-up the dual head
Solved
Fn KEYS
The Kn keys are not working
Solved












YUM
The official YUM repository comes with little software. I replaced the /etc/yum.conf file by the one below. All information to install YUM are here.


[main]
#cachedir=/var/cache/yum
debuglevel=2
logfile=/var/log/yum.log
pkgpolicy=newest
distroverpkg=fedora-release
tolerant=1
exactarch=1
retries=20

[base]
name=Fedora Core $releasever - $basearch - Base
baseurl=http://www.las.ic.unicamp.br/pub/fedora/linux/core/$releasever/$basearch/os/
# ftp://mirror.pop-rs.rnp.br/pub/download.fedora.redhat.com/pub/fedora/linux/core/$releasever/$basearch/os/
 http://download.fedora.redhat.com/pub/fedora/linux/core/$releasever/$basearch/os/
#gpgcheck=1

[updates-released]
name=Fedora Core $releasever - $basearch - Released Updates
baseurl=http://www.las.ic.unicamp.br/pub/fedora/linux/core/updates/$releasever/$basearch/
# ftp://mirror.pop-rs.rnp.br/pub/download.fedora.redhat.com/pub/fedora/linux/core/updates/$releasever/$basearch/
 http://download.fedora.redhat.com/pub/fedora/linux/core/updates/$releasever/$basearch/
#gpgcheck=1

#[fedora-extra]
#name=fedora-extra
#baseurl=http://download.fedora.us/fedora/fedora/$releasever/$basearch/RPMS.extras/
##enabled=0
##gpgcheck=0


#[updates-testing]
#name=Fedora Core $releasever - $basearch - Unreleased Updates
#baseurl=http://download.fedora.redhat.com/pub/fedora/linux/core/updates/testing/$releasever/$basearch/

#[development]
#name=Fedora Core $releasever - Development Tree
#baseurl=http://download.fedora.redhat.com/pub/fedora/linux/core/development/$basearch/

############################
## Alternate Repositories ##
############################

# Uncomment these to use them -- note that some packages
# from these repositories may conflict with the fedora.us
# packages. If you use these repositories, you may wish to
# comment-out the fedora.us and livna.org repositories.

[freshrpms]
name=FreshRPMs
baseurl=http://ayo.freshrpms.net/fedora/linux/$releasever/$basearch/freshrpms
#  ftp://ftp.cz.freshrpms.net/pub/linux/freshrpms/fedora/linux/$releasever/$basearch/
#  http://ftp.us2.freshrpms.net/linux/freshrpms/ayo/fedora/linux/$releasever/$basearch/
# exclude=xmms
#gpgcheck=1

[dag]
name=Dag APT Repository
baseurl=http://dag.freshrpms.net/fedora/$releasever/en/$basearch/dag
  http://dag.atrpms.net/fedora/$releasever/en/$basearch/dag
  http://ftp.heanet.ie/pub/freshrpms/pub/dag/fedora/$releasever/en/$basearch/dag
  http://ftp2.lcpe.uni-sofia.bg/freshrpms/pub/dag/fedora/$releasever/en/$basearch/dag
gpgcheck=1

[dries]
name=Dries APT/YUM Repository
baseurl=http://apt.sw.be/dries/fedora/linux/$releasever/$basearch/dries/RPMS/
  http://mirrors.ircam.fr/pub/dag/dries/fedora/linux/$releasever/$basearch/dries/RPMS/
#gpgcheck=1

#[spc-production]
#name=Subpop.net (Production)
#baseurl=http://rpms.subpop.net/fedora/linux/$releasever/$basearch/production
##gpgcheck=1

[newrpms]
name=NewRPMs
baseurl=http://newrpms.sunsite.dk/apt/redhat/en/$basearch/fc$releasever
  http://newrpms.atrpms.net/apt/redhat/en/$basearch/fc$releasever
gpgcheck=1

#[atrpms-stable]
#name=ATrpms - Stable (Most Stable)
#baseurl=http://apt.atrpms.net/fedora/$releasever/en/$basearch/at-stable
#  http://ftp-stud.fht-esslingen.de/atrpms/download.atrpms.net/fedora/$releasever/en/$basearch/at-stable
#  http://wftp.tu-chemnitz.de/pub/linux/ATrpms/fedora/$releasever/en/$basearch/at-stable
#exclude=yum
#gpgcheck=0


#[atrpms-good]
#name=ATrpms - Good (2nd Most Stable)
#baseurl=http://ftp-stud.fht-esslingen.de/atrpms/download.atrpms.net/fedora/$releasever/en/$basearch/at-good
#  http://apt.atrpms.net/fedora/$releasever/en/$basearch/at-good
#  http://wftp.tu-chemnitz.de/pub/linux/ATrpms/fedora/$releasever/en/$basearch/at-good
##gpgcheck=1

#[atrpms-testing]
#name=ATrpms - Testing (3rd Most Stable)
#baseurl=http://wftp.tu-chemnitz.de/pub/linux/ATrpms/fedora/$releasever/en/$basearch/at-testing
#  http://apt.atrpms.net/fedora/$releasever/en/$basearch/at-testing
#  http://ftp-stud.fht-esslingen.de/atrpms/download.atrpms.net/fedora/$releasever/en/$basearch/at-testing
##gpgcheck=1

#[atrpms-bleeding]
#name=ATrpms - Bleeding (Least Stable)
#baseurl=http://apt.atrpms.net/fedora/$releasever/en/$basearch/at-bleeding
#  http://ftp-stud.fht-esslingen.de/atrpms/download.atrpms.net/fedora/$releasever/en/$basearch/at-bleeding
#  http://wftp.tu-chemnitz.de/pub/linux/ATrpms/fedora/$releasever/en/$basearch/at-bleeding
##gpgcheck=1



XMMS
XMMS sound quality is bad. The solution is to change the "output plugin" from ALSA. Simply on XMMS do crtl+P and the Output Plugin windows will appears.


DUAL HEAD
Setting the dual head with a projector Sony VPL-CS5 was fairly difficult. Here is the output of /etc/X11/xorg.conf that let it work properly.


# Xorg configuration created by system-config-display

Section "ServerLayout"
    Identifier     "Multihead layout"
    Screen      0  "Screen0" LeftOf "Screen1"
    Screen      1  "Screen1" 0 0
    InputDevice    "Mouse0" "CorePointer"
    InputDevice    "Keyboard0" "CoreKeyboard"
    Option        "Xinerama" "off"
    Option        "Clone" "on"
EndSection

Section "Files"

# RgbPath is the location of the RGB database.  Note, this is the name of the
# file minus the extension (like ".txt" or ".db").  There is normally
# no need to change the default.
# Multiple FontPath entries are allowed (they are concatenated together)
# By default, Red Hat 6.0 and later now use a font server independent of
# the X server to render fonts.
    RgbPath      "/usr/X11R6/lib/X11/rgb"
    FontPath     "unix/:7100"
EndSection

Section "Module"
    Load  "dbe"
    Load  "extmod"
    Load  "fbdevhw"
    Load  "glx"
    Load  "record"
    Load  "freetype"
    Load  "type1"
    Load  "dri"
EndSection

Section "InputDevice"

# Specify which keyboard LEDs can be user-controlled (eg, with xset(1))
#    Option    "Xleds"        "1 2 3"
# To disable the XKEYBOARD extension, uncomment XkbDisable.
#    Option    "XkbDisable"
# To customise the XKB settings to suit your keyboard, modify the
# lines below (which are the defaults).  For example, for a non-U.S.
# keyboard, you will probably want to use:
#    Option    "XkbModel"    "pc102"
# If you have a US Microsoft Natural keyboard, you can use:
#    Option    "XkbModel"    "microsoft"
#
# Then to change the language, change the Layout setting.
# For example, a german layout can be obtained with:
#    Option    "XkbLayout"    "de"
# or:
#    Option    "XkbLayout"    "de"
#    Option    "XkbVariant"    "nodeadkeys"
#
# If you'd like to switch the positions of your capslock and
# control keys, use:
#    Option    "XkbOptions"    "ctrl:swapcaps"
# Or if you just want both to be control, use:
#    Option    "XkbOptions"    "ctrl:nocaps"
#
    Identifier  "Keyboard0"
    Driver      "kbd"
    Option        "XkbModel" "pc105"
    Option        "XkbLayout" "gb"
EndSection

Section "InputDevice"
    Identifier  "Mouse0"
    Driver      "mouse"
    Option        "Protocol" "IMPS/2"
    Option        "Device" "/dev/input/mice"
    Option        "ZAxisMapping" "4 5"
    Option        "Emulate3Buttons" "yes"
EndSection

Section "Monitor"
    Identifier   "Monitor0"
    VendorName   "Monitor Vendor"
    ModelName    "LCD Panel 1600x1200"
    HorizSync    31.5 - 90.0
    VertRefresh  60.0 - 60.0
    Option        "dpms"
EndSection

Section "Monitor"
    Identifier   "Monitor1"
    VendorName   "Monitor Vendor"
    ModelName    "Monitor 1024x768"
    HorizSync    31.5 - 57.0
    VertRefresh  50.0 - 70.0
    Option        "dpms"
EndSection

Section "Device"

    #Option "CloneVRefresh" "50-80"
    Identifier  "Videocard0"
    Driver      "radeon"
    VendorName  "Videocard vendor"
    BoardName   "ATI Radeon Mobility 7500"
    Option        "CloneDisplay" "1"
    Option        "CloneMode" "1024x768"
    Option        "PanelOff" "on"
    Option        "MonitorLayout" "LVDS, CRT"
EndSection

Section "Device"
    Identifier  "Videocard1"
    Driver      "radeon"
    VendorName  "Videocard Vendor"
    BoardName   "ATI Radeon Mobility 7500"
    BusID       "PCI:1:0:0"
    Screen      1
EndSection

Section "Screen"
    Identifier "Screen0"
    Device     "Videocard0"
    Monitor    "Monitor0"
    DefaultDepth     16
    SubSection "Display"
        Viewport   0 0
        Depth     16
        Modes    "1600x1200" "1400x1050" "1280x1024" "1280x960" "1024x768" "800x600" "640x480"
    EndSubSection
EndSection

Section "Screen"
    Identifier "Screen1"
    Device     "Videocard1"
    Monitor    "Monitor1"
    DefaultDepth     16
    SubSection "Display"
        Viewport   0 0
        Depth     16
        Modes    "800x600"
    EndSubSection
EndSection

Section "DRI"
    Group        0
    Mode         0666
EndSection


Fn KEYS
In order to have the Fn keys working, I did the following:
1- I put the following line in /etc/modprobe.conf . More details are available here.

alias char-major-10-250 sonypi
options sonypi minor=250

2- I put the script below is /sbin/ . The script is called "sonypid". In order to work properly I installed spicctrl and radeontool software. This script brings the following founctions:
Fn + esc: Turn on and off the LCD screen
Fn + F2: Mute
Fn + F3: Volume down
Fn + F4: Volume up
Fn + F5: Brightness down
Fn + F6: Brightness up

#!/usr/bin/perl

system("mknod /dev/sonypi c 10 250");

$dev = "/dev/sonypi";

open (F, $dev);


$brightness = `spicctrl -B`;
$step = 51;
$lightOn = 1;
$videoOut = 0;
$soundOff = 0;

while (1)
{
$char = getc F;
$num = ord($char);

print "The number is: $num\n";

SWITCH: {
if ($num == 11) { &light()};
if ($num == 13) { &mute()};
if ($num == 14) { &volDown()};
if ($num == 15) { &volUp()};
if ($num == 16) { &dim()};
if ($num == 17) { &bright()};
if ($num == 18) { &vgaOut()};
#if ($num == 23) { &system("/sbin/hibernate")};
#if ($num == 24) { &exec("halt")};
#if ($num == 22) { &exec("reboot")};
}
}
close F;

sub light {
if ($lightOn == 1)
{ system("radeontool light off");
system("echo off > /var/backlight");
$lightOn = 0;
}
else
{ system("radeontool light on");
system("echo on > /var/backlight");
$lightOn = 1;
}
}

sub mute {
if ($soundOff == 0)
{ system("amixer set PCM mute");
system("amixer set Master mute");
system("amixer set 'Master Mono' mute");
system("amixer set Headphone mute");
$soundOff = 1;
}
else
{ system("amixer set PCM unmute");
system("amixer set Master unmute");
system("amixer set 'Master Mono' unmute");
system("amixer set Headphone unmute");

$soundOff = 0;
}
}

sub volDown {
# amixer set Master 10%-;
system("amixer set Master 10%-");
system("amixer set Headphone 10%-");
}

sub volUp {
system("amixer set Master 10%+");
system("amixer set Headphone 10%+");
}

sub checkBright {
if($brightness < 0)
{ $brightness = 0; }
if($brightness > 255)
{ $brightness = 255;}
}
sub dim {
$brightness = $brightness - $step;
&checkBright();
system("spicctrl -b $brightness");
}

sub bright {
&checkBright();
$brightness = $brightness + $step;
system("spicctrl -b $brightness");
}

sub vgaOut {
if($videoOut == 0) {
system("radeontool dac on");
$videoOut = 1;
}
else {
system("radeontool dac off");
$videoOut = 0;
}

}

3- I added the following line in /etc/rc.d/rc.local:

/sbin/sonypid &