First of all, this "how to" is intended to people like me with almost no knowledge about compiling and patching kernels. Also to people that may want to share their experience using the switcheroo patch from David Airlie with their own machines with switchable graphics.
Notes:
GNU/Linux used: Fedora 12 with all updates
Machine: ASUS M51Ta
Graphic card configuration:
- Integrated: 01:05.0 VGA compatible controller: ATI Technologies Inc RS780M/RS780MN [Radeon HD 3200 Graphics]
- Discrete: 02:00.0 VGA compatible controller: ATI Technologies Inc Mobility Radeon HD 3650
(0) Downloads:
http://www.kernel.org/pub/linux/kern...33-rc7.tar.bz2 and untar it to: /usr/src/
http://people.freedesktop.org/~airli...ation-v6.patch and copy it to: /usr/src/
http://people.freedesktop.org/~airli...ondition.patch and copy it to: /usr/src/
(1) Patch kernel & compile kernel:
su
cd /usr/scr/linux-2.6.33-rc7/
patch -p1 <../0001-vga_switcheroo-initial-implementation-v6.patch
patch -p1 <../0002-vga-switch-hi-my-name-is-race-condition.patch
make mrproper
cp /boot/config-"kernel" .config # in my case: "kernel" = 2.6.31.12-174.2.3.fc12.x86_64
yum install qt3-devel gcc-c++ libXi-devel # install development tools (just in case)
make xconfig # make changes and save before quitting
make
make modules_install
cp arch/x86/boot/bzImage /boot/vmlinuz-2.6.33-rc7
cp System.map /boot/System.map-2.6.33-rc7
install mkinitrd
new-kernel-pkg -v --mkinitrd --depmod --install 2.6.33-rc7
gedit /boot/grub/menu.lst # edit grub to add the new compiled kernel
(2) Run the new kernel and test:
su
mount -t debugfs none /sys/kernel/debug
cd /sys/kernel/debug/vgaswitcheroo
cat switch # to see which card is active
echo DDIS > switch # to go to discrete card (log off and then log in after this command)
echo DIGD > switch # to go to integrated card (log off and then log in after this command)
echo OFF > switch # to just poweroff the card you aren't using
(3) My tests:
[root@FEDORA12x64test vgaswitcheroo]# cat switch
0:+:Pwr:0000:01:05.0
1: :Off:0000:02:00.0
[root@FEDORA12x64test vgaswitcheroo]# glxgears
1918 frames in 5.0 seconds = 383.455 FPS
2090 frames in 5.0 seconds = 417.909 FPS
2147 frames in 5.0 seconds = 429.261 FPS
[root@FEDORA12x64test vgaswitcheroo]# cat switch
0: :Off:0000:01:05.0
1:+:Pwr:0000:02:00.0
[root@FEDORA12x64test vgaswitcheroo]# glxgears
1683 frames in 5.0 seconds = 336.440 FPS
1618 frames in 5.0 seconds = 323.554 FPS
1735 frames in 5.0 seconds = 346.940 FPS
In my case there was no 3D acceleration with this kernel, even if I installed "mesa-dri-drivers-experimental". I think it is because the firmware R600_rlc.bin was missing in /lib/firmware/radeon. Anyway, the switcheroo works great. May be with the next stable kernel all will work with 3D acceleration. Special thanks to David Airlie that explained me how to use his switcheroo.
Notes:
GNU/Linux used: Fedora 12 with all updates
Machine: ASUS M51Ta
Graphic card configuration:
- Integrated: 01:05.0 VGA compatible controller: ATI Technologies Inc RS780M/RS780MN [Radeon HD 3200 Graphics]
- Discrete: 02:00.0 VGA compatible controller: ATI Technologies Inc Mobility Radeon HD 3650
(0) Downloads:
http://www.kernel.org/pub/linux/kern...33-rc7.tar.bz2 and untar it to: /usr/src/
http://people.freedesktop.org/~airli...ation-v6.patch and copy it to: /usr/src/
http://people.freedesktop.org/~airli...ondition.patch and copy it to: /usr/src/
(1) Patch kernel & compile kernel:
su
cd /usr/scr/linux-2.6.33-rc7/
patch -p1 <../0001-vga_switcheroo-initial-implementation-v6.patch
patch -p1 <../0002-vga-switch-hi-my-name-is-race-condition.patch
make mrproper
cp /boot/config-"kernel" .config # in my case: "kernel" = 2.6.31.12-174.2.3.fc12.x86_64
yum install qt3-devel gcc-c++ libXi-devel # install development tools (just in case)
make xconfig # make changes and save before quitting
make
make modules_install
cp arch/x86/boot/bzImage /boot/vmlinuz-2.6.33-rc7
cp System.map /boot/System.map-2.6.33-rc7
install mkinitrd
new-kernel-pkg -v --mkinitrd --depmod --install 2.6.33-rc7
gedit /boot/grub/menu.lst # edit grub to add the new compiled kernel
(2) Run the new kernel and test:
su
mount -t debugfs none /sys/kernel/debug
cd /sys/kernel/debug/vgaswitcheroo
cat switch # to see which card is active
echo DDIS > switch # to go to discrete card (log off and then log in after this command)
echo DIGD > switch # to go to integrated card (log off and then log in after this command)
echo OFF > switch # to just poweroff the card you aren't using
(3) My tests:
[root@FEDORA12x64test vgaswitcheroo]# cat switch
0:+:Pwr:0000:01:05.0
1: :Off:0000:02:00.0
[root@FEDORA12x64test vgaswitcheroo]# glxgears
1918 frames in 5.0 seconds = 383.455 FPS
2090 frames in 5.0 seconds = 417.909 FPS
2147 frames in 5.0 seconds = 429.261 FPS
[root@FEDORA12x64test vgaswitcheroo]# cat switch
0: :Off:0000:01:05.0
1:+:Pwr:0000:02:00.0
[root@FEDORA12x64test vgaswitcheroo]# glxgears
1683 frames in 5.0 seconds = 336.440 FPS
1618 frames in 5.0 seconds = 323.554 FPS
1735 frames in 5.0 seconds = 346.940 FPS
In my case there was no 3D acceleration with this kernel, even if I installed "mesa-dri-drivers-experimental". I think it is because the firmware R600_rlc.bin was missing in /lib/firmware/radeon. Anyway, the switcheroo works great. May be with the next stable kernel all will work with 3D acceleration. Special thanks to David Airlie that explained me how to use his switcheroo.
Comment