Howto – Fix the Intel 954GM resolution problem under Ubuntu

Original Problem:

I have a Commel Mini-ITX express LV677 motherboard that has the Intel 954GM graphics chipset builtin, after I’d installed Ubuntu Linux I was only able to change the resolution between 640×460 and 800×600, other resolutions were not shown. This is what I had to do to fix the problem.

  • Reboot the PC and press the delete key during the POST to get into the BIOS.
  • Select Advanced Chipset Features.
  • Under ** VGA Settings ** change LCD Type from 2 to 11
PEG/Onchip VGA Control [Auto]
On-Chip Frame Buffer Size [8MB]
DVMT Mode [DVMT]
DVMT/FIX Memory Size [128MB]
Boot Display [Auto]
LCD Type [11]
TV Format [Auto]

According to the Commel LV-667 Motherboard User Manual page 26, you can change the Output format to the following. Since I wanted to change my primary and secondery (eventually) display to 1280 x 1024 I selected 11. Press F10 on the keyboard and type Y when prompted to save the BIOS.

The panel type mapping are listed below:

BIOS panel type selection form
Single channel Dual channel
No.

Output format

No.

Output format

1 640 x 480 9 1024 x 768
2 800 x 600 10 1280 x 768
3 1024 x 768 11 1280 x 1024
4 1280 x 768 12 1366 x 768
5 1280 x 1024 13 1400 x 1050 @ 108Mhz
6 1366 x 768 14 1400 x 1050 @ 122Mhz
7 12080 x 800 15 1600 x 1200
8 1600 x 1200    
  • Enable the extra repositories in Synaptic.
  • Using Synaptic, download 915resolution
  • In a console, type sudo 915resolution -l
  • You should get something like this:

[code lang=”bash”]
billy@billy-desktop:~$ sudo 915resolution -l
Password:
Intel 800/900 Series VBIOS Hack : version 0.5.2

Chipset: 945GM
BIOS: TYPE 1
Mode Table Offset: $C0000 + $269
Mode Table Entries: 36

Mode 30 : 640×480, 8 bits/pixel
Mode 32 : 800×600, 8 bits/pixel
Mode 34 : 1024×768, 8 bits/pixel
Mode 38 : 1280×1024, 8 bits/pixel
Mode 3a : 1600×1200, 8 bits/pixel
Mode 3c : 1920×1440, 8 bits/pixel
Mode 41 : 640×480, 16 bits/pixel
Mode 43 : 800×600, 16 bits/pixel
Mode 45 : 1024×768, 16 bits/pixel
Mode 49 : 1280×1024, 16 bits/pixel
Mode 4b : 1600×1200, 16 bits/pixel
Mode 4d : 1920×1440, 16 bits/pixel
Mode 50 : 640×480, 32 bits/pixel
Mode 52 : 800×600, 32 bits/pixel
Mode 54 : 1024×768, 32 bits/pixel
Mode 58 : 1280×1024, 32 bits/pixel
Mode 5a : 1600×1200, 32 bits/pixel
Mode 5c : 1920×1440, 32 bits/pixel
Mode 60 : 3616×769, 8 bits/pixel
Mode 61 : 3616×769, 16 bits/pixel
Mode 62 : 3616×769, 32 bits/pixel
billy@billy-desktop:~$

[/code]

The ideal resolution and colour depth for my Mini-ITX box and monitor are 1280×1024 with a colour depth of 32 bits.

As you can see from the above, it is already listed as Mode 58. However in my case, if that mode is chosen in 915resolution, the system breaks badly. I’m not sure if this is universal, or not.

  • What you need to do is choose a mode which is further up the list and a resolution/depth that you’ll never use (Mode 30 is idea).
  • Type in a terminal the resolution and colour deepth that you want. In my case I want 1280×1024 at 32 bits/pixel. So I type:
  • sudo 915resolution 30 1280 1024 32
  • The program comes back with the confirmatin that the new resolution has been patched to Mode 30, in this case.
  • Now all you have to do is to modify your /etc/default/915resolution file to correspond to the above patch.
  • In a terminal type: sudo gedit /etc/default/915resolution. You should get a screen like the one below:

[code lang=”bash”]
#
# 915resolution default
#
# find free modes by /usr/sbin/915resolution -l
# and set it to MODE or set to ‘MODE=auto’
#
# With ‘auto’ detection, the panel-size will be fetched from the VBE
# BIOS if possible and the highest-numbered mode in each bit-depth
# will be overwritten with the detected panel-size.
MODE=AUTO
#
# and set resolutions for the mode.
#
XRESO=
YRESO=
#
# We can also set the pixel mode.
# Please note that this is optional,
# you can also leave this value blank.
BIT= [/code]

  • Now simply edit this file by changing MODE to the MODE that you selected. In this case it was MODE 30
  • Set XRESO=1280 (Or the Horizontal resolutoin that you selected)
  • Set YRESO=1024 (Again set to whatever you selected earlier)
  • Set BIT=32 (Again to the colour depth you chose previously.)
  • Save the file and re-start.
  • The system should boot-up in the new mode and it should also appear as an optionin the System>Preferences>Screen Resolution menu.

A Big thanks to the Ubuntu Forums which I’ve used extensively to source this fix, if your are still having problems with your Intel Graphics chipset, then head over there to source an alternative fix. Below is a copy of my xorg.conf file. Feel free to have a look at it if you think it will help you.

[code lang=”bash”]

# /etc/X11/xorg.conf (xorg X Window System server configuration file)
#
# This file was generated by dexconf, the Debian X Configuration tool, using
# values from the debconf database.
#
# Edit this file with caution, and see the xorg.conf(5) manual page.
# (Type “man xorg.conf” at the shell prompt.)
#
# This file is automatically updated on xserver-xorg package upgrades *only*
# if it has not been modified since the last upgrade of the xserver-xorg
# package.
#
# If you have edited this file but would like it to be automatically updated
# again, run the following command:
# sudo dpkg-reconfigure -phigh xserver-xorg

Section “Files”
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”
# path to defoma fonts
FontPath “/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType”
EndSection

Section “Module”
Load “i2c”
Load “bitmap”
Load “ddc”
Load “dri”
Load “extmod”
Load “freetype”
Load “glx”
Load “int10”
Load “vbe”
EndSection

Section “InputDevice”
Identifier “Generic Keyboard”
Driver “kbd”
Option “CoreKeyboard”
Option “XkbRules” “xorg”
Option “XkbModel” “pc105”
Option “XkbLayout” “gb”
EndSection

Section “InputDevice”
Identifier “Configured Mouse”
Driver “mouse”
Option “CorePointer”
Option “Device” “/dev/input/mice”
Option “Protocol” “ImPS/2”
Option “ZAxisMapping” “4 5”
Option “Emulate3Buttons” “true”
EndSection

Section “InputDevice”
Driver “wacom”
Identifier “stylus”
Option “Device” “/dev/input/wacom”
Option “Type” “stylus”
Option “ForceDevice” “ISDV4” # Tablet PC ONLY
EndSection

Section “InputDevice”
Driver “wacom”
Identifier “eraser”
Option “Device” “/dev/input/wacom”
Option “Type” “eraser”
Option “ForceDevice” “ISDV4” # Tablet PC ONLY
EndSection

Section “InputDevice”
Driver “wacom”
Identifier “cursor”
Option “Device” “/dev/input/wacom”
Option “Type” “cursor”
Option “ForceDevice” “ISDV4” # Tablet PC ONLY
EndSection

Section “Device”
Identifier “Intel Corporation Mobile 945GM/GMS/940GML Express Integrated Graphics Controller”
Driver “i810”
BusID “PCI:0:2:0”
EndSection

Section “Monitor”
Identifier “B101717”
Option “DPMS”
EndSection

Section “Screen”
Identifier “Default Screen”
Device “Intel Corporation Mobile 945GM/GMS/940GML Express Integrated Graphics Controller”
Monitor “B101717”
DefaultDepth 24
SubSection “Display”
Depth 1
Modes “1280×1024” “1152×864” “1024×768” “832×624” “800×600” “720×400” “640×480”
EndSubSection
SubSection “Display”
Depth 4
Modes “1280×1024” “1152×864” “1024×768” “832×624” “800×600” “720×400” “640×480”
EndSubSection
SubSection “Display”
Depth 8
Modes “1280×1024” “1152×864” “1024×768” “832×624” “800×600” “720×400” “640×480”
EndSubSection
SubSection “Display”
Depth 15
Modes “1280×1024” “1152×864” “1024×768” “832×624” “800×600” “720×400” “640×480”
EndSubSection
SubSection “Display”
Depth 16
Modes “1280×1024” “1152×864” “1024×768” “832×624” “800×600” “720×400” “640×480”
EndSubSection
SubSection “Display”
Depth 24
Modes “1280×1024” “1152×864” “1024×768” “832×624” “800×600” “720×400” “640×480”
EndSubSection
EndSection

Section “ServerLayout”
Identifier “Default Layout”
Screen “Default Screen”
InputDevice “Generic Keyboard”
InputDevice “Configured Mouse”
InputDevice “stylus” “SendCoreEvents”
InputDevice “cursor” “SendCoreEvents”
InputDevice “eraser” “SendCoreEvents”
EndSection

Section “DRI”
Mode 0666
EndSection
[/code]

Leave a Reply