PDA

View Full Version : [ubuntu] 11.10 - Intel 82945G Graphics Chipset - New Install



kevdog
January 12th, 2012, 05:22 AM
***Please see post for for working solution. Thanks to those that have contributed in particular José Antonio Rey (joseeantonior) located in Launchpad.

I've been away from Ubuntu for several years. I've just installed 11.10 on a new hand-me-down computer. I can't believe the changes from 7.04 to now. I'll keep my opinion regarding the Unity interface for a different topic. Here is my problem.

I'm having problems configuring my graphics card. I'm not alone. The forums a littered with people having problems with the Intel integrated 82945G Graphics chipset, however my problems are compounded with no current xorg.conf file.

Here are my details:

kevdog@MrGiggles:~$ lshw -C display
WARNING: you should run this program as super-user.
*-display:0 UNCLAIMED
description: VGA compatible controller
product: 82945G/GZ Integrated Graphics Controller
vendor: Intel Corporation
physical id: 2
bus info: pci@0000:00:02.0
version: 02
width: 32 bits
clock: 33MHz
capabilities: vga_controller bus_master cap_list
configuration: latency=0
resources: memory:e0400000-e047ffff ioport:10c0(size=8) memory:d0000000-dfffffff memory:e0500000-e053ffff
*-display:1 UNCLAIMED
description: Display controller
product: 82945G/GZ Integrated Graphics Controller
vendor: Intel Corporation
physical id: 2.1
bus info: pci@0000:00:02.1
version: 02
width: 32 bits
clock: 33MHz
capabilities: bus_master cap_list
configuration: latency=0
resources: memory:e0480000-e04fffff
WARNING: output may be incomplete or inaccurate, you should run this program as super-user.

kevdog@MrGiggles:~$ lspci -nn | grep VGA
00:02.0 VGA compatible controller [0300]: Intel Corporation 82945G/GZ Integrated Graphics Controller [8086:2772] (rev 02)

kevdog@MrGiggles:~$ xrandr
xrandr: Failed to get size of gamma for output default
Screen 0: minimum 640 x 480, current 1280 x 1024, maximum 1280 x 1024
default connected 1280x1024+0+0 0mm x 0mm
1280x1024 0.0*
1024x768 0.0
800x600 0.0
640x480 0.0

This card is supposed to use the xserver-xorg-video-intel - X.Org X server -- Intel i8xx, i9xx display driver. I noticed however the device is unclaimed in the lshw statement. I'm guessing its using the generic vesa driver. Because there no longer exists any form of xorg.conf to specificy the driver, how do I resolve this issue, or can I? I realize this integrated graphics chipset is likely old.

Thanks for any suggestions.

carl4926
January 12th, 2012, 05:40 AM
There is no xorg.conf now

Post result of

lspci -nnkJust the top section with the graphics info will do

mikewhatever
January 12th, 2012, 06:01 AM
More precisely, lspci -nnk | grep VGA -A1.
That should show what driver is in use.

kevdog
January 12th, 2012, 05:22 PM
Ok -- I'm posting this here as about a 90% solution. The other 10% is because I can't get all my drivers claimed -- specifically the Display Controller, however the VGA controller works. The following is a workaround for most intel 8xx/9xx chipsets and for newer kernels where there is no explicit xorg.conf file located in /etc/X11.

***References: https://answers.launchpad.net/ubuntu/+source/xserver-xorg-video-intel/+question/180248

***At the end of tutorial is my generated and working xorg.conf file. I've also uploaded my xorg.conf file as xorg.conf.txt. Download file, and remove the .txt extension if you would like to use it as a reference or starting point.


Current Configuration
Ubuntu 11.10
Grub2
kernel version: 3.0.0-14-generic

Current lshw -C display

WARNING: you should run this program as super-user.
*-display:0
description: VGA compatible controller
product: 82945G/GZ Integrated Graphics Controller
vendor: Intel Corporation
physical id: 2
bus info: pci@0000:00:02.0
version: 02
width: 32 bits
clock: 33MHz
capabilities: vga_controller bus_master cap_list rom
configuration: driver=i915 latency=0
resources: irq:16 memory:e0400000-e047ffff ioport:10c0(size=8) memory:d0000000-dfffffff memory:e0500000-e053ffff
*-display:1 UNCLAIMED
description: Display controller
product: 82945G/GZ Integrated Graphics Controller
vendor: Intel Corporation
physical id: 2.1
bus info: pci@0000:00:02.1
version: 02
width: 32 bits
clock: 33MHz
capabilities: bus_master cap_list
configuration: latency=0
resources: memory:e0480000-e04fffff

Here is how to get the i915 driver or xserver-xorg-video-intel driver to claim the device (I believe this to be applicable to most of the 8xx and 9xx chipsets)

#1 - Find the hsync and vsync values specifically for your monitor
I can't help you where to find these values. I specifically used google typing in the brand and model number of my own particular monitor. I found them this way.

#2 - Have the X server generate a working xorg.conf file
Open a terminal and type "sudo X configure :1" without quotes. This will create a new xorg.conf.new file located within your home directory.

#3 - Edit the generated xorg.conf.new file
In the same terminal, type "gksu gedit xorg.conf.new" without quotes. This will open a text editor with the file that you have just created in there.

#4 - Add HorizSync and VertRefresh statements within the Monitor section(s) or your xorg.conf.new file.
You will see that it is divided in sections. Search for the Monitor section(s), and before the EndSection line of that section(s), add these two lines:
HorizSync 30.0 - 81.0
VertRefresh 56.0 - 75.0

#5 - Replace the HorizSync and VertRefresh values with the values found in step 1.
Please specifically find these values for your monitor. They will vary depending on make/model. For my monitor they were explicitly:
HorizSync 30-82
VertRefresh 50-85

#6 - Optional -- Add the Modes or resolutions your monitor can support to the xorg.conf.new file
I found these values specifically for my monitor on the internet. You may need to consult either the documentation for your specific monitor or use google to find a similar working configuration.

Within each section labeled Monitor add the following (without quotes):
UseModes "Custom modes"

Define a Modes Section listing the refresh rates of your specific monitor:
Example:
Section "Modes"
Identifier "Custom modes"
ModeLine "800x600@56" 36.0 800 824 896 1024 600 601 603 625 +hsync +vsync
ModeLine "800x600@72" 50.0 800 856 976 1040 600 637 643 666 +hsync +vsync
ModeLine "800x600@75" 49.5 800 816 896 1056 600 601 604 625 +hsync +vsync
ModeLine "800x600@85" 56.3 800 832 896 1048 600 601 604 631 +hsync +vsync
ModeLine "800x600@60" 40.0 800 840 968 1056 600 601 605 628 +hsync +vsync
ModeLine "832x624@75" 57.284 832 864 928 1152 624 625 628 667 -vsync -hsync
ModeLine "1024x768@85" 94.5 1024 1072 1168 1376 768 769 772 808 +hsync +vsync
ModeLine "1024x768@75" 78.8 1024 1040 1136 1312 768 769 772 800 +hsync +vsync
ModeLine "1024x768@70" 75.0 1024 1048 1184 1328 768 771 777 806 -vsync -hsync
ModeLine "1024x768@60" 65.0 1024 1048 1184 1344 768 771 777 806 -vsync -hsync
ModeLine "1152x864@75" 108.0 1152 1216 1344 1600 864 865 868 900 +hsync +vsync
ModeLine "1280x1024@75" 135.0 1280 1296 1440 1688 1024 1025 1028 1066 +hsync +vsync
EndSection

#7 - Alter the appropriate Device Sections and change the Driver statement to "intel"
Within my generated xorg.conf.new file I had listed 3 different Device Sections. Each in my case made reference to the intel video vga controller. If you have multiple video cards, you will have additional device sections that make reference to the other video cards. To discover specifically which sections make reference to the intel video card, run the command: lspci -nn | grep VGA and make reference to the PCI bus number reported on the the output. An example is provided:
lspci -nn | grep VGA
00:02.0 VGA compatible controller [0300]: Intel Corporation 82945G/GZ Integrated Graphics Controller [8086:2772] (rev 02)

00.02.0 is the PCI bus number identifier.

Using this PCI bus number identifier, find all the Device Sections that make reference to this number. In my example I am looking within each device section for the line stating: BusID "PCI:0:2:0". Within each of these sections, I changed the Driver to "intel". Here is the example within my file:
Identifier "Card2"
Driver "intel"
BusID "PCI:0:2:0"

#8 - Save and close the file

#9 - Copy the xorg.conf.new file to /etc/X11/xorg.conf as root
The permissions of the xorg.conf file should be root:root rw-,r--,r--
Copy the file via: sudo cp ~/xorg.conf.new /etc/X11/xorg.conf

#10 - Restart PC

***What to do if your computer hangs on boot, getting a blank black screen
This happened to me many times editing the xorg.conf file. One wrong line and the display will not appear. Rule #1 -- Dont panic! Tips for dealing with this problem:
- Reboot and during the boot process hit Alt-F1 -- This will drop you to a terminal shell (tty1). Login, and as root, delete the xorg.conf file (sudo rm /etc/X11/xorg.conf). This will allow you boot back into Ubuntu.
- Usually a blank screen during boot indicates there was an error reading or processing the xorg.conf file. To troubleshoot this problem, examine the /var/log/Xorg.0.log. This usually gives some good tips on what line there was bad information withing the xorg.conf file (such as a typo).
- If you deleted the /etc/X11/xorg.conf file -- make additional changes to the xorg.conf.new file located within your home directory and then copy this file as root back to /etc/X11 (sudo cp ~/xorg.conf.new /etc/X11/xorg.conf).
- Within the terminal shell either pushing Cntl-Alt-Delete or by typing sudo init 6, this will reboot the machine.

Here is my entire user generated xorg.conf file for reference. Please note that if you don't have the same number of Monitor, Screen, or Device Sections, this is OK. You need a minimum of 1 Monitor, 1 Screen and 1 Device section. My additional sections were generated during Step #2, so I kept them unaltered. Please note however that for each Monitor section you need to add the HorizSync and VertRefresh statments and the optional UseModes line. For each Device section that explicity references an Intel video controller, you need to change the Driver line to read "intel"


Section "ServerLayout"
Identifier "X.org Configured"
Screen 0 "Screen0" 0 0
Screen 1 "Screen1" RightOf "Screen0"
Screen 2 "Screen2" RightOf "Screen1"
Screen 3 "Screen3" RightOf "Screen2"
InputDevice "Mouse0" "CorePointer"
InputDevice "Keyboard0" "CoreKeyboard"
EndSection

Section "Files"
ModulePath "/usr/lib/xorg/modules"
FontPath "/usr/share/fonts/X11/misc"
FontPath "/usr/share/fonts/X11/cyrillic"
FontPath "/usr/share/fonts/X11/100dpi/:unscaled"
FontPath "/usr/share/fonts/X11/75dpi/:unscaled"
FontPath "/usr/share/fonts/X11/Type1"
FontPath "/usr/share/fonts/X11/100dpi"
FontPath "/usr/share/fonts/X11/75dpi"
FontPath "/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType"
FontPath "built-ins"
EndSection

Section "Module"
Load "extmod"
Load "dri"
Load "glx"
Load "dbe"
Load "dri2"
Load "record"
EndSection

Section "InputDevice"
Identifier "Keyboard0"
Driver "kbd"
EndSection

Section "InputDevice"
Identifier "Mouse0"
Driver "mouse"
Option "Protocol" "auto"
Option "Device" "/dev/input/mice"
Option "ZAxisMapping" "4 5 6 7"
EndSection

Section "Monitor"
Identifier "Monitor0"
#Identifier "ViewSonic VP171b"
VendorName "ViewSonic"
ModelName "ViewSonic VP171b"
Option "DPMS"
HorizSync 30-82
VertRefresh 50-85
Gamma 1.0
UseModes "Custom modes"
EndSection

Section "Monitor"
Identifier "Monitor1"
#Identifier "ViewSonic VP171b"
VendorName "ViewSonic"
ModelName "ViewSonic VP171b"
Option "DPMS"
HorizSync 30-82
VertRefresh 50-85
Gamma 1.0
UseModes "Custom modes"
EndSection

Section "Monitor"
Identifier "Monitor2"
#Identifier "ViewSonic VP171b"
VendorName "ViewSonic"
ModelName "ViewSonic VP171b"
Option "DPMS"
HorizSync 30-82
VertRefresh 50-85
Gamma 1.0
UseModes "Custom modes"
EndSection

Section "Monitor"
Identifier "Monitor3"
#Identifier "ViewSonic VP171b"
VendorName "ViewSonic"
ModelName "ViewSonic VP171b"
Option "DPMS"
HorizSync 30-82
VertRefresh 50-85
Gamma 1.0
UseModes "Custom modes"
EndSection

Section "Modes"
Identifier "Custom modes"
ModeLine "800x600@56" 36.0 800 824 896 1024 600 601 603 625 +hsync +vsync
ModeLine "800x600@72" 50.0 800 856 976 1040 600 637 643 666 +hsync +vsync
ModeLine "800x600@75" 49.5 800 816 896 1056 600 601 604 625 +hsync +vsync
ModeLine "800x600@85" 56.3 800 832 896 1048 600 601 604 631 +hsync +vsync
ModeLine "800x600@60" 40.0 800 840 968 1056 600 601 605 628 +hsync +vsync
ModeLine "832x624@75" 57.284 832 864 928 1152 624 625 628 667 -vsync -hsync
ModeLine "1024x768@85" 94.5 1024 1072 1168 1376 768 769 772 808 +hsync +vsync
ModeLine "1024x768@75" 78.8 1024 1040 1136 1312 768 769 772 800 +hsync +vsync
ModeLine "1024x768@70" 75.0 1024 1048 1184 1328 768 771 777 806 -vsync -hsync
ModeLine "1024x768@60" 65.0 1024 1048 1184 1344 768 771 777 806 -vsync -hsync
ModeLine "1152x864@75" 108.0 1152 1216 1344 1600 864 865 868 900 +hsync +vsync
ModeLine "1280x1024@75" 135.0 1280 1296 1440 1688 1024 1025 1028 1066 +hsync +vsync
#ModeLine "1280x1024@60" 108.0 1280 1328 1440 1688 1024 1025 1028 1066 +hsync +vsync
#ModeLine "1280x1024" 108 1280 1346 1458 1688 1024 1025 1028 1066 +hsync +vsync
EndSection

Section "Device"
### Available Driver options are:-
### Values: <i>: integer, <f>: float, <bool>: "True"/"False",
### <string>: "String", <freq>: "<f> Hz/kHz/MHz",
### <percent>: "<f>%"
### [arg]: arg optional
#Option "DRI" # [<bool>]
#Option "ColorKey" # <i>
#Option "VideoKey" # <i>
#Option "FallbackDebug" # [<bool>]
#Option "Tiling" # [<bool>]
#Option "LinearFramebuffer" # [<bool>]
#Option "Shadow" # [<bool>]
#Option "SwapbuffersWait" # [<bool>]
#Option "TripleBuffer" # [<bool>]
#Option "XvMC" # [<bool>]
#Option "XvPreferOverlay" # [<bool>]
#Option "DebugFlushBatches" # [<bool>]
#Option "DebugFlushCaches" # [<bool>]
#Option "DebugWait" # [<bool>]
#Option "HotPlug" # [<bool>]
#Option "RelaxedFencing" # [<bool>]
Identifier "Card0"
Driver "intel"
BusID "PCI:0:2:0"
EndSection

Section "Device"
### Available Driver options are:-
### Values: <i>: integer, <f>: float, <bool>: "True"/"False",
### <string>: "String", <freq>: "<f> Hz/kHz/MHz",
### <percent>: "<f>%"
### [arg]: arg optional
#Option "ShadowFB" # [<bool>]
#Option "Rotate" # <str>
#Option "fbdev" # <str>
#Option "debug" # [<bool>]
Identifier "Card1"
Driver "intel"
BusID "PCI:0:2:0"
EndSection

Section "Device"
### Available Driver options are:-
### Values: <i>: integer, <f>: float, <bool>: "True"/"False",
### <string>: "String", <freq>: "<f> Hz/kHz/MHz",
### <percent>: "<f>%"
### [arg]: arg optional
#Option "ShadowFB" # [<bool>]
#Option "DefaultRefresh" # [<bool>]
#Option "ModeSetClearScreen" # [<bool>]
Identifier "Card2"
Driver "intel"
BusID "PCI:0:2:0"
EndSection

Section "Device"
### Available Driver options are:-
### Values: <i>: integer, <f>: float, <bool>: "True"/"False",
### <string>: "String", <freq>: "<f> Hz/kHz/MHz",
### <percent>: "<f>%"
### [arg]: arg optional
#Option "ShadowFB" # [<bool>]
#Option "DefaultRefresh" # [<bool>]
#Option "ModeSetClearScreen" # [<bool>]
Identifier "DisplayController"
Driver "intel"
BusID "PCI:0:2:1"
EndSection

Section "Screen"
Identifier "Screen0"
Device "Card0"
Monitor "Monitor0"
SubSection "Display"
Viewport 0 0
Depth 1
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 4
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 8
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 15
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 16
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 24
EndSubSection
EndSection

Section "Screen"
Identifier "Screen1"
Device "Card1"
Monitor "Monitor1"
SubSection "Display"
Viewport 0 0
Depth 1
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 4
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 8
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 15
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 16
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 24
EndSubSection
EndSection

Section "Screen"
Identifier "Screen2"
Device "Card2"
Monitor "Monitor2"
SubSection "Display"
Viewport 0 0
Depth 1
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 4
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 8
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 15
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 16
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 24
EndSubSection
EndSection

Section "Screen"
Identifier "Screen3"
Device "DisplayController"
Monitor "Monitor3"
SubSection "Display"
Viewport 0 0
Depth 1
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 4
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 8
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 15
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 16
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 24
EndSubSection
EndSection