- 1 Introduction
- 2 Installation
- 3 Configuration
- 4 Tips
- 5 Usage
- 6 Old Information
- 7 External Links
For use within the console (without X), see Uvesafb.
Since Intel supports X.Org with open-source drivers, and with X11's improvement over time, things now are essentially just plug-and-play.
It is a popular mistake to think of "Intel 945G" and "Intel GMA 945" as being the same graphics chip with different names. As a matter of fact, the latter does not exist. Intel uses "GMA" to indicate the graphics core, or the GPU. Anything other than that is actually the model of the motherboard chipset, like "915G", "945GM", "G965" or "G45".
The more common GPUs and their corresponding motherboard chipsets are:
- Intel GMA 900 (910, 915)
- Intel GMA 950 (945)
The "i810" chipset (again, motherboard; not GPU) is actually really old and was manufactured long before the 9xx product line with which the GMA onboard-graphics branding began. Similarly, alternative names for the 910, 915 and 945 chips may include the i prefix.
See this for a list.
- i810 (Old)
- intel (New)
Naturally, nobody wants to be backdated. Only if and when you have issues with new stuff (eg. suspend-to-ram) would you have no other choice but to go back to old stuff.
There are no "free" and "proprietary" versions; there are just two free ones. Do this after you have installed xorg.
# pacman -S xf86-video-intel
# pacman -S xf86-video-i810
See Xorg input hotplugging. One thing that you should do is, add your user to the video group. Not having that entry caused me to have serious performance issues.
# gpasswd -a username video
You do not want to have a xorg.conf file in this case. Just start the X11 server and enjoy.
Use gtf to generate the Xorg "Modeline" values and then edit /etc/X11/xorg.conf, adding (for example) those values to the "Monitor" section:
Section "Monitor" Identifier "Monitor0" VendorName "GenericVendor" Modeline "800x600" 40.12 800 848 968 1056 600 601 605 628 #60Hz EndSection
Lastly, add the following to the "Device" section, replacing the existing "Driver" value if present:
VideoRam 229376 Option "CacheLines" "1980" Driver "intel"
Calculating your VideoRam Value
Note: You must calculate your own value for VideoRam based on your hardware. The VideoRam (in Kilobytes) is calculated by the difference between your prefetchable memory available and any non-prefetchable memory required by the card as provided by the output of "lspci -vv". Example:
00:02.0 VGA compatible controller: Intel Corporation 82915G/GV/910GL Integrated Graphics Controller (rev 04) (prog-if 00 [VGA controller])
Subsystem: Dell Device 0179 Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0 Interrupt: pin A routed to IRQ 16 Region 0: Memory at dff00000 (32-bit, non-prefetchable) [size=512K] Region 1: I/O ports at e898 [size=8] Region 2: Memory at c0000000 (32-bit, prefetchable) [size=256M] Region 3: Memory at dfec0000 (32-bit, non-prefetchable) [size=256K] Expansion ROM at <unassigned> [disabled] Capabilities: [d0] Power Management version 2 Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-) Status: D0 PME-Enable- DSel=0 DScale=0 PME- Kernel modules: intelfb
Prefetchable memory is 256M or 262144K, The non-prefetchable is 512K+256K=764K. So the correct value for VideoRam is:
262144 - 764 = 261380
(To convert your prefetchable in megabytes to kilobytes, it's just megabytes * 1024)
Kernel mode setting (KMS)
KMS is still a bit buggy in 2.6.29, so we didn't enable it by default. It can be enabled by the user, but it is a bit tricky right now. Note that KMS right now only works with chipsets that use the i915 DRM driver. If you use KMS, the default acceleration will be UXA.
You need to change the initramfs, KMS will enable right after the kernel has booted and before the Arch initscripts take over (looks nicer) 1) Add the following line to /etc/modprobe.d/modprobe.conf:
options i915 modeset=1
2) Change the MODULES and FILES lines in /etc/mkinitcpio.conf to look like this (Don't actually add the "...", it stands for what was there before):
MODULES="... intel_agp i915" FILES="... /etc/modprobe.d/modprobe.conf"
3) Regenerate your initramfs using "mkinitcpio -p kernel26"
4) Remove all "vga=" and "video=" options from your kernel commandline in /boot/grub/menu.lst
You should now get a framebuffer in your native resolution, X will launch faster and console switching will work almost instantly. To disable modesetting again (in case something is broken for you), just comment the line in modprobe.conf again (and if you used method 2, regenerate your initramfs again).
1) Add the following line to /etc/modprobe.d/modprobe.conf:
options i915 modeset=1
2) Change the MODULES line in /etc/rc.conf to look like this (Don't actually add the "...", it stands for what was there before):
MODULES=(... intel_agp i915)
This is important. If you don't do it like this, the i915 driver will be loaded when the X server launches and things will crash. The i915 module is not autoloaded with our kernel configuration (which is weird, but we can't change it).
3) Remove all "vga=" and "video=" options from your kernel commandline in /boot/grub/menu.lst
If you are using 845G or something like that, and experiencing bad 2D performance (e.g. Slow when scrolling in Firefox) , you can try to install extra/xf86-video-intel-legacy instead of extra/xf86-video-intel.
You probably already have a GUI to do it, but anyway:
xrandr -s 1280x1024
You may add it to the ~/.xinitrc file.
Xorg configuration is relatively straightforward, but to ensure you have smooth compositing effects from Compiz on the Intel 945GM, you will need to add these lines into your Device section:
As the intel driver does not support XAA anymore you should not add the XAA stuff.
Option "DRI" "True" Option "NoDDC" "True" Option "XAANoOffscreenPixmaps" "True" Option "EnablePageFlip" "True" Option "RenderAccel" "True" Option "AccelMethod" "XAA"
And ensure that you have the following somewhere:
Section "Extensions" Option "Composite" "Enable" EndSection
Install the driver:
# pacman -S xf86-video-i810
Edit your Template:Filename file:
Section "Device" Driver "i810" ...
Section "Screen" SubSection "Display" Depth 16 Modes "1400x1050" "1280x1024" "800x600" ...
Install the resolution tool:
# pacman -S 915resolution
Select the modes that you want to overwrite - like 49 and 45 in this case. If your needs differ, adjust accordingly:
915resolution 45 1280 1024 16 915resolution 49 1400 1050 16
Verify your changes:
Restart X again. Remember, you will want to load 915resolution at startup:
- Edit Template:Filename
# Enter the VBIOS mode to patch MODE="49" # Enter the desired resolution RESOLUTION="1400 1050"