#800005 fbset gets 'ioctl FBIOPUT_VSCREENINFO: Invalid argument'

Package:
fbset
Source:
fbset
Description:
framebuffer device maintenance program
Submitter:
Rick Thomas
Date:
2019-12-27 14:24:03 UTC
Severity:
important
#800005#5
Date:
2015-09-25 07:58:01 UTC
From:
To:
Dear Maintainer,

Prior to Jessie, I could use "fbset" toset the screen resolution on my PowerPC Macs.
This was often necessary if the system happened to mis-guess the actual screen
resolution, or the screen was on a KVM switch.

But now, with Jessie, when fbset is used this way does one of two things,
neither of them useful:
    1) It complains that the resolution is not in /etc/fb.modes so is "Unknown".
    2) If the resolution is actually present in /etc/fb.modes, it says
         ioctl FBIOPUT_VSCREENINFO: Invalid argument
In either case it does not change the screen resolution.

The bug may not be in fbset, of course.  It may be in the kernel.

#800005#10
Date:
2015-11-21 21:38:08 UTC
From:
To:
... as this bug is not affecting everyone.

As per definition:
important
    a bug which has a major effect on the usability of a package,
without rendering it completely unusable to everyone.

#800005#15
Date:
2016-06-20 12:57:31 UTC
From:
To:
Dear OP,

Could you please describe exactly what you are doing ? In particular:

- full command line used
- the tail of `dmesg` (eg. diff before and after the `fbset` call).

thx

#800005#22
Date:
2016-06-25 09:20:17 UTC
From:
To:
Logged in as root on the <alt>-F1 console.  Here’s a transcript:

============================== begin transcript =======================
root@bigal:~# dmesg > /tmp/dmesg-out-pre-fbset
root@bigal:~# fbset

mode "1680x1050"
    geometry 1680 1050 1680 1050 32
    timings 0 0 0 0 0 0 0
    accel true
    rgba 8/16,8/8,8/0,0/0
endmode

root@bigal:~# fbset 1680x1050
Unknown video mode `1680x1050'

root@bigal:~# fbset 1600x1200-66
ioctl FBIOPUT_VSCREENINFO: Invalid argument

root@bigal:~# dmesg > /tmp/dmesg-out-post-fbset
root@bigal:~# diff /tmp/dmesg-out-pre-fbset /tmp/dmesg-out-post-fbset

root@bigal:~$ md5sum /tmp/dmesg-out-post-fbset /tmp/dmesg-out-pre-fbset
1c1d0c5ec891847327a6b40b84df4287  /tmp/dmesg-out-post-fbset
1c1d0c5ec891847327a6b40b84df4287  /tmp/dmesg-out-pre-fbset

root@bigal:~$ grep 1680x1050 /etc/fb.modes
root@bigal:~$ grep 1600x1200-66 /etc/fb.modes
mode "1600x1200-66"
============================== end transcript =======================

Interpretation:
1) There are no messages in dmesg output as a result of the above activities.
2) The actual mode in force at the start, “1680x1050”. is not present in /etc/fb.modes
3) Attempting to change to another mode, which *is* in fb.modes, gives the indicated error message.

Does that help any?

Rick

#800005#25
Date:
2016-06-25 09:20:17 UTC
From:
To:
Logged in as root on the <alt>-F1 console.  Here’s a transcript:

============================== begin transcript =======================
root@bigal:~# dmesg > /tmp/dmesg-out-pre-fbset
root@bigal:~# fbset

mode "1680x1050"
    geometry 1680 1050 1680 1050 32
    timings 0 0 0 0 0 0 0
    accel true
    rgba 8/16,8/8,8/0,0/0
endmode

root@bigal:~# fbset 1680x1050
Unknown video mode `1680x1050'

root@bigal:~# fbset 1600x1200-66
ioctl FBIOPUT_VSCREENINFO: Invalid argument

root@bigal:~# dmesg > /tmp/dmesg-out-post-fbset
root@bigal:~# diff /tmp/dmesg-out-pre-fbset /tmp/dmesg-out-post-fbset

root@bigal:~$ md5sum /tmp/dmesg-out-post-fbset /tmp/dmesg-out-pre-fbset
1c1d0c5ec891847327a6b40b84df4287  /tmp/dmesg-out-post-fbset
1c1d0c5ec891847327a6b40b84df4287  /tmp/dmesg-out-pre-fbset

root@bigal:~$ grep 1680x1050 /etc/fb.modes
root@bigal:~$ grep 1600x1200-66 /etc/fb.modes
mode "1600x1200-66"
============================== end transcript =======================

Interpretation:
1) There are no messages in dmesg output as a result of the above activities.
2) The actual mode in force at the start, “1680x1050”. is not present in /etc/fb.modes
3) Attempting to change to another mode, which *is* in fb.modes, gives the indicated error message.

Does that help any?

Rick

#800005#30
Date:
2016-06-26 00:59:04 UTC
From:
To:
For what it’s worth, I get the same behavior on amd64 running stretch.  It’s not just on powerpc.

Rick

#800005#33
Date:
2016-06-26 00:59:04 UTC
From:
To:
For what it’s worth, I get the same behavior on amd64 running stretch.  It’s not just on powerpc.

Rick

#800005#38
Date:
2016-06-30 06:20:12 UTC
From:
To:
#800005#43
Date:
2016-06-30 07:45:26 UTC
From:
To:
Do I understand correctly that I should put “drm.debug=0xe” as a kernel argument at boot time?  Then boot, try running my “fbset” test and send you the entire output of dmesg including all boot messages.  Is this correct?

Further, I guess you would prefer to have this on the amd64 machine in question rather than the original powerpc machine?

What other info should I send?  If I use the amd64 machine, I guess you’d like some hardware configuration info as well?  Please be specific: a verbatim list of shell commands you’d like me to run would be most helpful!

Thanks!
Rick

#800005#48
Date:
2016-06-30 07:50:33 UTC
From:
To:
Hi Rick,

Adding the boot parameter *should* tell us what went wrong in the
fbset command. So yes I do expect you change the boot parameter, run
dmesg before and after the fbset command. I do not care about amd64,
so please do it on the powerpc.

Thanks.

#800005#53
Date:
2016-06-30 20:43:26 UTC
From:
To:
OK… I’ll try to get that done soon.  Enjoy!
#800005#58
Date:
2016-07-03 08:12:34 UTC
From:
To:
Still no help…
On powerpc64 (dual core Mac G5 running Debian 8.5):

#800005#65
Date:
2019-12-27 14:20:13 UTC
From:
To:
Hi Rick,
<snip>

Since the fb device is now emulated by drm it has some limitations, and
one of them is that you can not change the bpp value. fbset reported here
that you have a bpp of 32.

From /etc/fb.modes this mode has a bpp of 8 and so drm rejects the
request with an error of "Invalid argument".

Please add the following in your /etc/fb.modes:

mode "1600x1200-75"
    # D: 202.50 MHz, H: 93.750 kHz, V: 75.00 Hz
    geometry 1600 1200 1600 1200 32
    timings 4938 304 64 46 1 192 3
endmode

and then try "fbset 1600x1200-75". I am hoping that your display will
support this.