Sony Vaio VGN-FE21B

From ArchWiki
Revision as of 12:10, 14 June 2008 by Nomail (Talk | contribs) (Special keys (fn and so...))

Jump to: navigation, search

Tango-document-new.pngThis article is a stub.Tango-document-new.png

Notes: please use the first argument of the template to provide more detailed indications. (Discuss in Talk:Sony Vaio VGN-FE21B#)

Introduction

This is a mini guide to configure a Sony Vaio VGN-FE21B on Arch linux 0.7.2

Specs

  • Intel core duo T2300 1.66 MHz
  • 1GB DDR2 SDRAM
  • 80GB disk
  • 1280x800 WXGA 15,4" LCD
  • Double layer DVD-RW
  • Nvidia GeForce Go 7400
  • Intel pro wireless 3945

lspci output:

00:00.0 Host bridge: Intel Corporation Mobile Memory Controller Hub (rev 03)
00:01.0 PCI bridge: Intel Corporation Mobile PCI Express Graphics Port (rev 03)
00:1b.0 Class 0403: Intel Corporation 82801G (ICH7 Family) High Definition Audio Controller (rev 02)
00:1c.0 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 1 (rev 02)
00:1c.1 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 2 (rev 02)
00:1c.2 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 3 (rev 02)
00:1c.3 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 4 (rev 02)
00:1d.0 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #1 (rev 02)
00:1d.1 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #2 (rev 02)
00:1d.2 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #3 (rev 02)
00:1d.3 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #4 (rev 02)
00:1d.7 USB Controller: Intel Corporation 82801G (ICH7 Family) USB2 EHCI Controller (rev 02)
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev e2)
00:1f.0 ISA bridge: Intel Corporation 82801GBM (ICH7-M) LPC Interface Bridge (rev 02)
00:1f.1 IDE interface: Intel Corporation 82801G (ICH7 Family) IDE Controller (rev 02)
00:1f.2 IDE interface: Intel Corporation 82801GBM/GHM (ICH7 Family) Serial ATA Storage Controllers cc=IDE (rev 02)
00:1f.3 SMBus: Intel Corporation 82801G (ICH7 Family) SMBus Controller (rev 02)
01:00.0 VGA compatible controller: nVidia Corporation Unknown device 01d8 (rev a1)
06:00.0 Network controller: Intel Corporation Unknown device 4222 (rev 02)
0a:03.0 CardBus bridge: Texas Instruments Unknown device 8039
0a:03.1 FireWire (IEEE 1394): Texas Instruments Unknown device 803a
0a:03.2 Mass storage controller: Texas Instruments Unknown device 803b
0a:08.0 Ethernet controller: Intel Corporation Unknown device 1092 (rev 02


Power management

Power profiles and CPU frequency scaling works fine with powersave I have decided to install latest versions of powersaved and kpowersave (the arch version is outdated):

  1. Download both packages from powersave.sf.net
  2. Install hal hdparm acpid cpufrequtils vbetool
  3. Install both packages
    1. powersaved: ./configure --prefix=/usr && make && make install
    2. kpowersave: ./configure --prefix=/opt/kde && make && make install
  4. run 'groupadd power' and add your normal user to that group
  5. Copy necessary files
    1. Download them from http://cvs.archlinux.org/cgi-bin/viewcvs.cgi/daemons/powersave/?cvsroot=Unstable&only_with_tag=CURRENT
    2. copy powersave.conf to /etc/dbus-1/system.d/
    3. copy powersaved to /etc/rc.d
  6. Add the following modules to rc.conf: speedstep-centrino cpufreq_conservative cpufreq_stats cpufreq_powersave cpufreq_userspace cpufreq_ondemand
  7. Add the following service to rc.conf (at least after hal and debus): powersaved
  8. Restart linux

Once in KDE you can run kpowesave

Brightness control works with smartdimmer, but is not supported in powersave (or it is?)

TODO: Make suspend to disk work

Wireless

That one is easy:

  1. pacman -S ipw3945 (or ipw3945-beyond)
  2. pacman -S ipw3945d
  3. Add module ipw3945 to rc.conf
  4. Add service ipw3945d to rc.conf

xorg

Nvidia drivers works fine (2D and 3D), you should set resolution to 1280x800

TODO:

  • make tvout work
  • make touch pad scrolling work

Audio

No problems here

Special keys (fn and so...) Part 1

I didn't manage to make the fn key work, but that is what I have done:

  • Mute key is hardware driven
  • Volume keys:
  1. edit .kde/Autostart/keycodes.sh and add:
xmodmap -e 'keycode 174=F21' # lower volume
xmodmap -e 'keycode 176=F22' # raise volume
exit 0
  1. Run source .kde/Autostart/keycodes.sh
  2. Go to Preferences -> Regional settings -> Add actions
  3. Create a group named Vaio keys (or whatever)
  4. Add acctions:
    1. volup: dcop action, app: kmix, remote object: mixer0, function: IncreaseVolume, args: 0
    2. voldown: dcop action, app: kmix, remote object: mixer0, function: DecreaseVolume, args: 0
    3. brightup: command, I use ctrl+F5 bind key, command: ~/bin/brightdown.sh
    4. brightdown: command, I use ctrl+F6 bind key, command: ~/bin/brightup.sh

This is the contents of the bright scripts:

brightdown.sh:

#!/bin/sh
smartdimmer -d

brightup.sh:

#!/bin/sh
smartdimmer -i

Special keys (fn and so...) Part 2(About Volume Keys)

The method above works fine if you have only one keyboard layout. But if you use couple languages then keycodes are reseted. What I did to bypass this problem was to set these keys as F20 and F21 modifying keycodes in xkb.

Ok here's what I did:

I use "Generic 105-key PC" keyboard as my keyboard model.(You can change it in Control Center--> Regional& Accessibility-->Keyboard Layout).

after that edit corresponding keycode file(for "Generic 105-key PC" it was /usr/share/X11/xkb/keycodes/digital_vndr/pc), add key codes to your keyboard section or as I did it to pc_common section. It should look something like this:

<part of file>

   xkb_keycodes "pc_common" {
   // "Function" keys
   <FK20>       = 174; // <--- Volume button key code assigned to FK20
   <FK21>       = 176; //<--- Volume button key code assigned to FK20
   <FK01>      = 9;
   <FK02>      = 15;
   <FK03>      = 23;
   <FK04>      = 31;
   <FK05>      = 39;

</part of file>

after that you need to assign it as F20 and F21 buttons on your keyboard. To do that edit file /usr/share/X11/xkb/symbols/pc (or corresponding file if you use other keyboard model in Settings)

there you gonna find a part where F keys are assigned it should be something like this

<part of file>

       key <FK10> {
       type="CTRL+ALT",
       symbols[Group1]= [ F10, XF86_Switch_VT_10 ]
   };
   key <FK11> {
       type="CTRL+ALT",
       symbols[Group1]= [ F11, XF86_Switch_VT_11 ]
   };
   key <FK12> {
       type="CTRL+ALT",
       symbols[Group1]= [ F12, XF86_Switch_VT_12 ]
   };

</part of file>

All you have to do now is to add our "new" keys here:

<part of file>

   key <FK12> {
       type="CTRL+ALT",
       symbols[Group1]= [ F12, XF86_Switch_VT_12 ]
   };
   key <FK20> {
       type="CTRL+ALT",                                  //<-- for F20 key
       symbols[Group1]= [ F20, XF86_Switch_VT_20 ]
   };
   key <FK21> {
       type="CTRL+ALT",                                  //<-- for F21 key
       symbols[Group1]= [ F21, XF86_Switch_VT_20 ]
   };

</part of file>

That is it - now your volume keys are assigned. But they don't change the volume yet. To do that go to Control Center-->Regional&Accessibility-->Input Actions and add new group(name it as you like). Add new action, set Action Type to "Keyboard Shortcut -> DCOP Call(simple)". In a "Keyboard Shortcut" press the box and press Vol- button on your keyboard. In "Dcop Call Settings" set(case sensetive):

  • Remote application: kmix
  • Remote object: Mixer0
  • Called function: decreaseVolume
  • Arguments:0

Then press try. And your volume should go down. Press Apply button

Add the same action for your Vol+ button. except change "decreaseVolume" to "increaseVolume".

That's it now your volume keys shoud work. Hit/Tip: To check keycodes use type "xev" in terminal. Pressing button should give you output with keycode.

Quake 4 sound fix

Yeah, I also play on arch linux

  1. Edit ~/.quake4-demo/q4base/Quake4Config.cfg
  2. Change s_driver value to oss

And you are done