screen brightness + external monitor resolution

Just got a new system (Linux 3.1.9-1.4-desktop x86_64, penSUSE 12.1 (x86_64), KDE: 4.7.2 (4.7.2) “release 5”) on a Sony Vaio (Intel(R) Core™ i5-2450M) -
installation of the system went flawlessly but I have some minor problems -

the screen brightness does not change - when I try to change it I can see the on screen indicator changing but the brightness remains the same;

also I can get access to the optimal resolution on an external monitor (Dell FP1703) - the optimals is 1280x1024 but I can only go to 1024x768 - with my previous laptop that had an nvidia card I could just modify the xorg.conf file not with this one

any help is appreciated

I can’t help wrt brightness.

I might be able to point you in the correct direction for the resolution issue. For the resolution issue, to understand better, we need more information.

Please, type the following command to tell us exactly what graphics hardware and possibly what driver:


/sbin/lspci -nnk | grep VGA -A2

and post here the output.

Please for more resolution information, with external monitor plugged in, type the following command:


xrandr

and please to give a better understanding of the details as to what is happening, after your external monitor has been plugged in, open the file /var/log/Xorg.0.log file with a text editor and copy the contents to the suse paste website SUSE Paste and press ‘create’ and then post here the website URL where those contents are located. That log file will have a LOT of useful information.

I may not be able to help, but I think that information will help others who are more knowledgeable than I sort this.

thanks oldcpu - I am currently at work but I will follow your directions and post all info later in the day
Dimitris

Here is the info

xorg.0.log SUSE Paste

/sbin/lspci -nnk | grep VGA -A2
00:02.0 VGA compatible controller [0300]: Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller [8086:0126] (rev 09)
        Subsystem: Sony Corporation Device [104d:908a]
        Kernel driver in use: i915
xrandr
Screen 0: minimum 320 x 200, current 2390 x 768, maximum 8192 x 8192
LVDS1 connected 1366x768+1024+0 (normal left inverted right x axis y axis) 309mm x 174mm
   1366x768       60.0*+
   1024x768       60.0  
   800x600        60.3     56.2  
   640x480        59.9  
VGA1 connected 1024x768+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
   1024x768       60.0* 
   800x600        60.3     56.2  
   848x480        60.0  
   640x480        59.9  
HDMI1 disconnected (normal left inverted right x axis y axis)
DP1 disconnected (normal left inverted right x axis y axis)

hope that helps!!!

When I look at that, I can not see at what point you plugged in your external monitor. It will be called ‘VGA1’ and I do not see it. I note:


    20.968] Current Operating System: Linux linux-j3i6.site 3.1.9-1.4-desktop #1 SMP PREEMPT Fri Jan 27 08:55:10 UTC 2012 (efb5ff4) x86_64
    20.968] Kernel command line: root=/dev/disk/by-id/ata-WDC_WD6400BPVT-55HXZT3_WD-WX21A91V8403-part3 resume=/dev/disk/by-id/ata-WDC_WD6400BPVT-55HXZT3_WD-WX21A91V8403-part4 splash=silent quiet vga=0x362
........
    20.993] (II) LoadModule: "intel"
    20.994] (II) Loading /usr/lib64/xorg/modules/drivers/intel_drv.so
.........
    21.003] (II) intel(0): Creating default Display subsection in Screen section
        "Default Screen Section" for depth/fbbpp 24/32
.....
    21.003] (II) intel(0): Integrated Graphics Chipset: Intel(R) Sandybridge Mobile (GT2+)
    21.003] (--) intel(0): Chipset: "Sandybridge Mobile (GT2+)"
.............
    21.040] (II) intel(0): EDID for output LVDS1
    21.040] (II) intel(0): Manufacturer: LGD  Model: 2e9  Serial#: 0
.........
    21.040] (II) intel(0):  LG Display
    21.040] (II) intel(0):  LP140WH4-TLA1
    21.040] (II) intel(0): EDID (in hex):
    21.040] (II) intel(0):     00ffffffffffff0030e4e90200000000
    21.040] (II) intel(0):     00140103801f11780ab7a59758568f27
    21.040] (II) intel(0):     1f505400000001010101010101010101
    21.040] (II) intel(0):     010101010101581b567e50000e302430
    21.040] (II) intel(0):     350035ae100000190000000000000000
    21.040] (II) intel(0):     00000000000000000000000000fe004c
    21.040] (II) intel(0):     4720446973706c61790a2020000000fe
    21.040] (II) intel(0):     004c503134305748342d544c41310017
    21.040] (II) intel(0): EDID vendor "LGD", prod id 745
    21.040] (II) intel(0): Printing DDC gathered Modelines:
    21.040] (II) intel(0): Modeline "1366x768"x0.0   70.00  1366 1402 1450 1492  768 771 776 782 -hsync -vsync (46.9 kHz)
.........
    21.076] (II) intel(0): Output LVDS1 connected
**    21.076] (II) intel(0): Output VGA1 disconnected**

which indicates VGA1 is still disconnected. Did you plug in the external monitor BEFORE you copied that file ?

ok, thanks. Like the /var/log/Xorg.0.log file, that indicates the Intel driver (i915) is in use, and indicates you have sandbybridge Intel graphics (8086:0126).

That indicates you are obtaining 1366x768 on your laptop screen, but only obtaining 1024x768 on VGA1, your external monitor. It also indicates there are no modelines for a resolution higher than 1024x768 for VGA1 being automatically identified. Thats a puzzle as to why, as I don’t see hints in the /var/log/Xorg.0.log file, which makes me think you obtained that file before plugging in the external monitor ?

Hi there - thanks for the prompt response -
actually it is puzzling to me too! I have the external monitor plugged in (I actually rerun all the commands to see if there is a change, but still the same - it does show as VGA1 disconnected)

I will reboot with the external monitor plugged in and see if that changes things

after rebooting (with the external monitor connected) the log file shows that VGA1 is connected ( SUSE Paste)

everyting else seems the same

You should be able to set the external resolution with the xrandr command.

There are many guides on the web on how to do this. For example:

My understanding is the steps needed are to

  1. create a new mode to VGA1 (your external display)
  2. add the new mode to VGA1
  3. apply the new mode to display both screen devices at once

Before doing that, it would be nice to know what frequency needs to be applied to your external display at 1366x768 mode (assuming that is the resolution you are trying to obtain).

Thats where my knowledge is fuzzy wrt an external display. Normally I would try running


cvt 1366 768

or


gtf 1366 768

but I don’t know how to point those to VGA1 instead of LVDS1 … (my never having tried this myself - I have always had the external mode lines already defined).

Do you have the specifications on this external monitor ?

Hopefully someone else will chime in here …

Well, it has this in addition:


    21.413] (II) intel(0): EDID for output VGA1
    21.413] (II) intel(0): Printing probed modes for output VGA1
    21.413] (II) intel(0): Modeline "1024x768"x60.0   65.00  1024 1048 1184 1344  768 771 777 806 -hsync -vsync (48.4 kHz)
    21.413] (II) intel(0): Modeline "800x600"x60.3   40.00  800 840 968 1056  600 601 605 628 +hsync +vsync (37.9 kHz)
    21.413] (II) intel(0): Modeline "800x600"x56.2   36.00  800 824 896 1024  600 601 603 625 +hsync +vsync (35.2 kHz)
    21.413] (II) intel(0): Modeline "848x480"x60.0   33.75  848 864 976 1088  480 486 494 517 +hsync +vsync (31.0 kHz)
    21.413] (II) intel(0): Modeline "640x480"x59.9   25.18  640 656 752 800  480 489 492 525 -hsync -vsync (31.5 kHz)
.......
    21.449] (II) intel(0): Output VGA1 connected
......
    21.449] (II) intel(0): Output VGA1 using initial mode 1024x768

which indicates to me it is using a generic low resolution EDID for VGA1 … ie it can’t detect the exact monitor device. Do you have any specs on this monitor ?

yes,
the specs are here DELL FP 1703
I will try the xrandr approach -
i will update teh post

Ok I see 1280x1024 is the highest resolution, hence you could see if the gtf and cvs commands give correct modelines (although I would be worried they could give modelines for LVDS1 instead of VGA1) via:


cvt 1280 1024 75

or


cvt 1280 1024 60

or


gtf 1280 1024 75

or


gtf 1280 1024 60

which may produce the modeline spec needed to enter in the xrandr command

An illustration of my limited understanding …

To get the mode line you would type something like:


cvt h-resolution v-resolution v-refresh-rate

ie


cvt 1280 800 60

which may give something like:


# 1280x800 59.81 Hz (CVT 1.02MA) hsync: 49.70 kHz; pclk: 83.50 MHz
Modeline "1280x800_60.00"   83.50  1280 1352 1480 1680  800 803 809 831 -hsync +vsync

then you would apply these commands:


xrandr --newmode <string_returned_by_cvt>
xrandr --addmode <display_device_name> <configuration_name>
xrandr --output <display_device_name> --mode <configuration_name>

example:

ie in a shell, run:


xrandr --newmode "1280x800_60.00"   83.50  1280 1352 1480 1680  800 803 809 831 -hsync +vsync
xrandr --addmode VGA1 1280x800_60.00
xrandr --output LVDS1 --mode 1366x768 --output VGA1 --mode 1280x800_60.00 --same-as LVDS1

or something like that.

You also may need to specify the position.

Thanks oldcpu - you actually understand well what needs to be done; stamostolias send me also some hints - thank you both
here is what I did and worked:

xrandr
Screen 0: minimum 320 x 200, current 2390 x 768, maximum 8192 x 8192
LVDS1 connected 1366x768+1024+0 (normal left inverted right x axis y axis) 309mm x 174mm
   1366x768       60.0*+
   1024x768       60.0  
   800x600        60.3     56.2  
   640x480        59.9  
VGA1 connected 1024x768+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
   1024x768       60.0* 
   800x600        60.3     56.2  
   848x480        60.0  
   640x480        59.9  
HDMI1 disconnected (normal left inverted right x axis y axis)
DP1 disconnected (normal left inverted right x axis y axis)
xrandr | grep maximum
Screen 0: minimum 320 x 200, current 2390 x 768, maximum 8192 x 8192

cvt 1280 1024
# 1280x1024 59.89 Hz (CVT 1.31M4) hsync: 63.67 kHz; pclk: 109.00 MHz
Modeline "1280x1024_60.00"  109.00  1280 1368 1496 1712  1024 1027 1034 1063 -hsync +vsync

xrandr --newmode "1280x1024_60.00"  109.00  1280 1368 1496 1712  1024 1027 1034 1063 -hsync +vsync
xrandr --addmode VGA1 1280x1024_60.00

and then the needed resolution is available through the graphical interface
running again xrandr here is what I get:

xrandr
Screen 0: minimum 320 x 200, current 2646 x 1024, maximum 8192 x 8192
LVDS1 connected 1366x768+1280+0 (normal left inverted right x axis y axis) 309mm x 174mm
   1366x768       60.0*+
   1024x768       60.0  
   800x600        60.3     56.2  
   640x480        59.9  
VGA1 connected 1280x1024+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
   1024x768       60.0  
   800x600        60.3     56.2  
   848x480        60.0  
   640x480        59.9  
   1280x1024_60.00   59.9* 
HDMI1 disconnected (normal left inverted right x axis y axis)
DP1 disconnected (normal left inverted right x axis y axis)

hope now that I do not have to do this every time!
thanks guys

my problem is that now I have to run the newmode…
and addmode commands
everytime I reboot the pc -
is there a way that this becomes the default? (I saw I need to create an xorg.conf file but since there is none now I am not aware of the format)
Dimitris

I found a workaround using a start up script.
I found this start up script (for KDM in archlinux)

I updated it to add the desired resolution for my external monitor:

# This script toggles the extended monitor outputs if something is connected
#

# your notebook monitor
DEFAULT_OUTPUT='LVDS1'

# outputs to toggle if connected
OUTPUTS='VGA1 HDMI1'

# get info from xrandr
XRANDR=`xrandr`

xrandr --newmode "1280x1024_60.00"  109.00  1280 1368 1496 1712  1024 1027 1034 1063 -hsync +vsync
xrandr --addmode VGA1 1280x1024_60.00
xrandr --output VGA1 --mode 1280x1024_60.00

EXECUTE=""

for CURRENT in $OUTPUTS
do
        if  $XRANDR == *$CURRENT\ connected*  ]] # is connected
        then
                if  $XRANDR == *$CURRENT\ connected\ \(* ]] # is disabled
                then
                        EXECUTE+="--output $CURRENT --auto --above $DEFAULT_OUTPUT "
                else
                        EXECUTE+="--output $CURRENT --off "
                fi
        else # make sure disconnected outputs are off 
                EXECUTE+="--output $CURRENT --off "
        fi
done

xrandr --output $DEFAULT_OUTPUT --auto $EXECUTE

added this to .profile

and works fine so far…